pub struct GrpcOtelInterceptor;Available on crate feature
grpc only.Expand description
A gRPC interceptor that injects the current tracing context into the request metadata.
Use this interceptor to make sure that DataDog traces are connected between the services when calling the gRPC service on another server.
§Example
use tonic::transport::{Endpoint, Channel};
use prima_bridge::{GrpcOtelInterceptor, GrpcOtelInterceptedService};
async fn make_grpc_service() -> Result<QuotePreviewServiceClient<GrpcOtelInterceptedService<Channel>>, Box<dyn std::error::Error>> {
let url = "http://...";
let channel = Endpoint::new(url)?.connect().await?;
// QuotePreviewServiceClient is a tonic-generated gRPC client from [https://github.com/primait/es-engine-schema]
Ok(QuotePreviewServiceClient::with_interceptor(channel, GrpcOtelInterceptor))
}Trait Implementations§
Source§impl Clone for GrpcOtelInterceptor
Available on crate feature _any_otel_version only.
impl Clone for GrpcOtelInterceptor
Available on crate feature
_any_otel_version only.Source§fn clone(&self) -> GrpcOtelInterceptor
fn clone(&self) -> GrpcOtelInterceptor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for GrpcOtelInterceptor
impl RefUnwindSafe for GrpcOtelInterceptor
impl Send for GrpcOtelInterceptor
impl Sync for GrpcOtelInterceptor
impl Unpin for GrpcOtelInterceptor
impl UnwindSafe for GrpcOtelInterceptor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.