1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! # Tracing OpenTelemetry
//!
//! An opentelemetry layer for the [tracing] library.
//!
//! [tracing]: https://github.com/tokio-rs/tracing
//!
//! ```rust,no_run
//! #[macro_use]
//! extern crate tracing;
//!
//! use opentelemetry::{api::Provider, sdk};
//! use tracing_opentelemetry::OpentelemetryLayer;
//! use tracing_subscriber::{Layer, Registry};
//!
//! fn main() {
//!     // Create a new tracer
//!     let tracer = sdk::Provider::default().get_tracer("service_name");
//!
//!     // 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.");
//!     });
//! }
//! ```
#![deny(unreachable_pub)]
#![cfg_attr(test, deny(warnings))]

/// Implementation of the trace::Layer as a source of OpenTelemetry data.
mod layer;

pub use layer::OpentelemetryLayer;