tracing-distributed
This crate provides:
TelemetryLayer
, a generic tracing layer that handles publishing spans and events to arbitrary backends- Utilities for implementing distributed tracing for arbitrary backends
As a tracing layer, TelemetryLayer
can be composed with other layers to provide stdout logging, filtering, etc.
This crate is primarily intended to be used by people implementing their own backends. A concrete implementation using honeycomb.io as a backend is available at (TODO: link to tracing-honeycomb).
Implementation note
TelemetryLayer
relies on an instance of the Telemetry
trait. Implementors of this this trait must provide three associated types:
TraceId
, a globally unique identifier that associates spans and events with a distributed traceSpanId
, an identifier that uniquely identifies spans within a traceVisitor
, a type that is used to record values associated with a given span or event.