Expand description
§tracing-datadog
A tracing exporter layer for DataDog, without dependencies on opentelemetry.
- Exporter for
tracingtraces to DataDog APM - (Optional) DataDog-compatible log formatting and APM ↔ log correlation
- (Optional) Distributed tracing support for HTTP requests via W3C Trace Context headers
- (Optional) Container-ID tracking for infrastructure metrics in APM
§Features
http- W3C Trace Context header support
§Usage
To enable both trace data and log collection, use the DataDogTraceLayer layer
in your tracing subscriber:
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
use tracing_datadog::DataDogTraceLayer;
tracing_subscriber::registry()
.with(
DataDogTraceLayer::builder()
.service("my-service")
.env("production")
.version("git sha")
.agent_address("localhost:8126")
.enable_logs(true)
.build()
.expect("failed to build DataDogTraceLayer"),
)
.init();Logs will be emitted to stdout in the DataDog JSON format.
§Span tag semantics
Certain span tags have special meaning in DataDog:
service- can be used to override the service on a per-span basisoperation- maps to DataDog APM operationsresource- maps to DataDog APM resourcesspan.type- defaults tointernal, but can be set towebfor request handlers,httpfor HTTP client requests, or any ofsql,cassandra,memcached,mongodb,elasticsearch,opensearch,redis, ordbfor data store queries.customcan be used for any other type of span.
There are few other semantic conventions, like the ones for errors. This page lists a lot of them.
§Distributed tracing over HTTP
To enable distributed tracing over HTTP, enable the http feature and use
DataDogContext to extract and inject trace context from/into HTTP headers.
See the API documentation for examples.
§Prior Art
Some code has been adopted for the following projects:
See also komoju-datadog for opinionated usage of this library.
Structs§
- Builder
Error - An error that can occur when building a
DataDogTraceLayer. - Data
DogTrace Layer - A
Layerthat sends traces to DataDog. - Data
DogTrace Layer Builder - A builder for
DataDogTraceLayer.