#tracing #tonic #open-telemetry #client-server

tonic-tracing-opentelemetry

用于集成 tonic + tracing + opentelemetry 的中间件和工具

11 个不稳定版本 (5 个破坏性更新)

0.19.0 2024年6月30日
0.18.1 2024年3月9日
0.15.0 2023年11月25日
0.12.0 2023年7月2日

调试 中排名第 759

Download history 1490/week @ 2024-05-03 1172/week @ 2024-05-10 1133/week @ 2024-05-17 1340/week @ 2024-05-24 1308/week @ 2024-05-31 1057/week @ 2024-06-07 974/week @ 2024-06-14 1110/week @ 2024-06-21 1605/week @ 2024-06-28 1168/week @ 2024-07-05 890/week @ 2024-07-12 1105/week @ 2024-07-19 1511/week @ 2024-07-26 1860/week @ 2024-08-02 1870/week @ 2024-08-09 1849/week @ 2024-08-16

每月下载量 7,428

CC0 许可证

39KB
650

tonic-tracing-opentelemetry

crates license crate version

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

用于客户端和服务器集成 tonic + tracing + opentelemetry 的中间件和工具。

非常早期,缺少许多功能,欢迎提供帮助。

  • 从传入请求中读取OpenTelemetry头信息
  • 如果传入请求中没有找到跟踪,则启动一个新的跟踪
  • 跟踪附加到追踪的span

例如,您可以查看 示例 文件夹。

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();

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

待办事项

变更日志 - 历史

CHANGELOG.md

依赖关系

~12MB
~201K SLoC