An opentelemetry layer for the [tracing] library.
Currently supports the Jaeger tracer via [rustracing_jaeger]
```rust
extern crate tracing;
use opentelemetry::{api::Provider, sdk}; use tracingopentelemetry::OpentelemetryLayer; use tracingsubscriber::{Layer, Registry};
fn main() { // Create a new tracer let tracer = sdk::Provider::default().gettracer("servicename");
// Create a new tracing layer
let layer = OpentelemetryLayer::with_tracer(tracer);
let subscriber = layer.with_subscriber(Registry::default());
// 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.");
});
} ```
report.rs
example```console
$ docker run -d -p6831:6831/udp -p6832:6832/udp -p16686:16686 jaegertracing/all-in-one:latest
$ cargo run --example report
$ firefox http://localhost:16686/ ```