[−][src]Crate tracing_opentelemetry
Tracing OpenTelemetry
tracing
is a framework for instrumenting Rust programs to collect
structured, event-based diagnostic information. This crate provides a layer
that connects spans from multiple systems into a trace and emits them to
OpenTelemetry-compatible distributed tracing systems for processing and
visualization.
Examples
use opentelemetry::{api::Provider, sdk}; use tracing::{error, span}; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::Registry; // Create a new tracer let tracer = sdk::Provider::default().get_tracer("service_name"); // Create a new OpenTelemetry tracing layer let telemetry = tracing_opentelemetry::layer().with_tracer(tracer); let subscriber = Registry::default().with(telemetry); // Trace executed code tracing::subscriber::with_default(subscriber, || { let root = span!(tracing::Level::TRACE, "app_start", work_units = 2); let _enter = root.enter(); error!("This event will be logged in the root span."); });
Structs
OpenTelemetryLayer | An OpenTelemetry propagation layer for use in a project that uses tracing. |
Traits
OpenTelemetrySpanExt | Utility functions to allow tracing |
Functions
layer | Construct a layer to track spans via OpenTelemetry. |