Tracing OpenTelemetry
Utilities for adding OpenTelemetry interoperability to tracing
.
Overview
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.
The crate provides the following types:
OpenTelemetryLayer
adds OpenTelemetry context to alltracing
spans.OpenTelemetrySpanExt
allows OpenTelemetry parent trace information to be injected and extracted from atracing
span.
Examples
Basic Usage
use ;
use ;
use SubscriberExt;
use Registry;
Visualization example
# Run a supported collector like jaeger in the background
$ docker run -d -p6831:6831/udp -p6832:6832/udp -p16686:16686 jaegertracing/all-in-one:latest
# Run example to produce spans (from parent examples directory)
$ cargo run --example opentelemetry
# View spans (see the image below)
$ firefox http://localhost:16686/
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tracing by you, shall be licensed as MIT, without any additional terms or conditions.