Middlewares and tools to integrate tonic + tracing + opentelemetry for client and server.
Really early, missing lot of features, help is welcomed.
For examples, you can look at the examples folder.
Extract of client.rs
:
```txt let channel = Channel::from_static("http://127.0.0.1:50051") .connect() .await?; //Devskim: ignore DS137138 let channel = ServiceBuilder::new() .layer(OtelGrpcLayer::default()) .service(channel);
let mut client = GreeterClient::new(channel);
//...
opentelemetry_api::global::shutdown_tracer_provider();
```
Extract of server.rs
:
txt
Server::builder()
// create trace for every request including health_service
.layer(server::OtelGrpcLayer::default().filter(filters::reject_healthcheck))
.add_service(health_service)
.add_service(reflection_service)
//.add_service(GreeterServer::new(greeter))
.add_service(GreeterServer::new(greeter))
.serve_with_shutdown(addr, shutdown_signal())
.await?;