blob: 42aa87122fd452b74b45e7e140d1161bebe39a6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
pub mod interceptor {
use opentelemetry::global;
use tonic::{Status, service::Interceptor};
use tracing::Span;
use tracing_opentelemetry::OpenTelemetrySpanExt;
use warden_stack::tracing::telemetry::tonic::extractor;
#[derive(Clone, Copy)]
pub struct MyInterceptor;
impl Interceptor for MyInterceptor {
fn call(&mut self, request: tonic::Request<()>) -> Result<tonic::Request<()>, Status> {
let span = Span::current();
let cx = global::get_text_map_propagator(|propagator| {
propagator.extract(&extractor::MetadataMap(request.metadata()))
});
span.set_parent(cx);
Ok(request)
}
}
}
|