Crate eaze_tracing_honeycomb[][src]

This crate provides:

  • A tracing layer, TelemetryLayer, that can be used to publish trace data to
  • Utilities for implementing distributed tracing against the backend

As a tracing layer, TelemetryLayer can be composed with other layers to provide stdout logging, filtering, etc.


pub use tracing_distributed::TelemetryLayer;
pub use tracing_distributed::TraceCtxError;



Telemetry capability that publishes events and spans to


Unique Span identifier.


A Honeycomb Trace ID.



Retrieve the distributed trace context associated with the current span.


Construct a TelemetryLayer that does not publish telemetry to any backend.


Construct a TelemetryLayer that publishes telemetry to using the provided honeycomb config.


Construct a TelemetryLayer that publishes telemetry to using the provided honeycomb config, and sample rate. This function differs from new_honeycomb_telemetry_layer and the sample_rate on the libhoney::Config there in an important way. libhoney samples Event data, which is individual spans on each trace. This means that using the sampling logic in libhoney may result in missing event data or incomplete traces. Calling this function provides trace-level sampling, meaning sampling decisions are based on a modulo of the traceID, and events in a single trace will not be sampled differently. If the trace is sampled, then all spans under it will be sent to honeycomb. If a trace is not sampled, no spans or events under it will be sent. When using this trace-level sampling, the sample_rate parameter on the libhoney::Config should be set to 1, which is the default.


Register the current span as the local root of a distributed trace.