#datadog #middleware #hyper #axum #open-telemetry

dd-trace-layer

发送 Datadog 追踪的中间件

2 个版本

0.0.2 2023年6月23日
0.0.1 2022年10月7日

#28 in #datadog

MIT 许可证

13KB
160 代码行数(不含注释)

dd-trace-layer

dd-trace-layer 是一个用于发送 Datadog 追踪信息的中间件。它基于 TowerOpenTelemetry Rust

使用方法

可以在 hyperaxum 等中使用。请参考 示例

use dd_trace_layer::{init, ApiVersion, DDTraceLayer};
use hyper::{server::Server, Body, Error, Request, Response};
use std::net::SocketAddr;
use tower::{make::Shared, ServiceBuilder};

#[tokio::main]
async fn main() {
    init("service_name", "https://127.0.0.1:8126", ApiVersion::Version05);

    let service = ServiceBuilder::new()
        .layer(DDTraceLayer::new("operation_name".to_string()))
        .service_fn(hello_world);

    let addr = SocketAddr::from(([127, 0, 0, 1], 8080));
    Server::bind(&addr)
        .serve(Shared::new(service))
        .await
        .expect("server error");
}

async fn hello_world(_: Request<Body>) -> Result<Response<Body>, Error> {
    Ok(Response::new(Body::from("Hello, World!")))
}

贡献

  1. 分支
  2. 创建功能分支
  3. 提交您的更改
  4. 将本地更改合并到主分支
  5. 使用 cargo test 命令运行测试套件,并确认通过
  6. 运行 cargo fmtcargo clippy
  7. 创建新的 Pull Request

依赖

~9–25MB
~340K SLoC