diff options
author | rtkay123 <dev@kanjala.com> | 2025-08-12 21:05:07 +0200 |
---|---|---|
committer | rtkay123 <dev@kanjala.com> | 2025-08-12 21:05:07 +0200 |
commit | b6924a50c9ec49e1b2b0d286abbbe608410af87d (patch) | |
tree | 9c5cf583fedfbb585985ac829bbdfdadce1571fe /crates/router/src/processor/grpc.rs | |
parent | d75b5fc9c0497f56e6b8602d8ff8991bfaeff18c (diff) | |
download | warden-b6924a50c9ec49e1b2b0d286abbbe608410af87d.tar.bz2 warden-b6924a50c9ec49e1b2b0d286abbbe608410af87d.zip |
feat(router): get config
Diffstat (limited to 'crates/router/src/processor/grpc.rs')
-rw-r--r-- | crates/router/src/processor/grpc.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/crates/router/src/processor/grpc.rs b/crates/router/src/processor/grpc.rs new file mode 100644 index 0000000..344f2a1 --- /dev/null +++ b/crates/router/src/processor/grpc.rs @@ -0,0 +1,27 @@ +pub mod interceptor { + use opentelemetry::global; + use tonic::{ + Status, + service::{Interceptor, interceptor::InterceptedService}, + transport::Channel, + }; + use tracing::Span; + use tracing_opentelemetry::OpenTelemetrySpanExt; + use warden_stack::tracing::telemetry::tonic::injector; + + pub type Intercepted = InterceptedService<Channel, MyInterceptor>; + + #[derive(Clone, Copy)] + pub struct MyInterceptor; + + impl Interceptor for MyInterceptor { + fn call(&mut self, mut request: tonic::Request<()>) -> Result<tonic::Request<()>, Status> { + let cx = Span::current().context(); + global::get_text_map_propagator(|propagator| { + propagator.inject_context(&cx, &mut injector::MetadataMap(request.metadata_mut())) + }); + + Ok(request) + } + } +} |