tracing-opentelemetry-setup
OpenTelemetry integration for tracing.
The goal of this crate is to provide all-in-one crate to initialize OpenTelemetry integration with tracing
MSRV 1.85
Features
panic- Provides panic hook implementation. Must be enabled via panic modulepropagation- Enables propagation utilitiesmetrics- Enable integration with metricstracing-metrics- Enable metrics usage via tracing-opentelemetryrt-tokio- Tell OpenTelemetry sdk that you use tokio runtime
Grpc features
grpc- Enables tonic based gRPC transportgrpc-compression- Enables tonic based gRPC transport with compressiongrpc-tls- Enables tonic based gRPC transport with TLS
HTTP features
Note that when enabling multiple clients, only one client will be used by default and it is up to opentelemetry-otlp
-
http- Enables http exporter code without specific client as default option. -
http-compression- Enables http transport with compression -
http-tls- Enables http transport with TLS -
http-reqwest-blocking- Enables blocking reqwest client. -
http-reqwest- Enables async reqwest client. -
http-hyper- Enables hyper client.
Usage
Make sure tracing-opentelemetry-setup is installed to your dependencies
use ;
use ;
use SubscriberExt;
let default_attrs = builder.with_attr.finish;
let trace_settings = TraceSettings ;
let destination = Destination ;
let mut otlp = builder.with_header.with_trace.finish;
let registry = registry.with;
otlp.init_tracing_subscriber;
//Do your job then shutdown to make sure you flush everything
otlp.shutdown.expect