10 releases (4 breaking)

0.18.2 Apr 24, 2024
0.18.1 Mar 9, 2024
0.15.4 Feb 24, 2024
0.15.0 Nov 25, 2023
0.12.0-alpha.7 Jun 28, 2023

#589 in Debugging

Download history 203/week @ 2024-01-22 627/week @ 2024-01-29 414/week @ 2024-02-05 661/week @ 2024-02-12 770/week @ 2024-02-19 647/week @ 2024-02-26 881/week @ 2024-03-04 629/week @ 2024-03-11 535/week @ 2024-03-18 291/week @ 2024-03-25 478/week @ 2024-04-01 584/week @ 2024-04-08 454/week @ 2024-04-15 658/week @ 2024-04-22 1407/week @ 2024-04-29 1261/week @ 2024-05-06

3,780 downloads per month

CC0 license

39KB
650 lines

axum-tracing-opentelemetry

crates license crate version

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

Middlewares and tools to integrate tonic + tracing + opentelemetry for client and server.

Really early, missing lot of features, help is welcomed.

  • Read OpenTelemetry header from the incoming requests
  • Start a new trace if no trace is found in the incoming request
  • Trace is attached into tracing's span

For examples, you can look at the examples folder.

Extract of client.rs:

    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::global::shutdown_tracer_provider();

Extract of server.rs:

    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?;

TODO

Changelog - History

CHANGELOG.md

Dependencies

~11MB
~195K SLoC