dd-trace-layer
is a middleware for sending Datadog's trace. It's based on Tower and OpenTelemetry Rust.
This can be used in hyper
or axum
, etc. See examples.
```rust use ddtracelayer::{init, ApiVersion, DDTraceLayer}; use hyper::{server::Server, Body, Error, Request, Response}; use std::net::SocketAddr; use tower::{make::Shared, ServiceBuilder};
async fn main() { init("service_name", "http://localhost: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 helloworld(: Request
) -> Resultcargo test
command and confirm that it passescargo fmt
and pass cargo clippy