fleetforge_telemetry/
otel.rs

1//! Thin wrappers around Opentelemetry primitives so downstream crates do not
2//! depend on the concrete `opentelemetry` crate directly.
3
4use opentelemetry::propagation::TextMapPropagator;
5use opentelemetry::global;
6
7pub use opentelemetry::trace::get_active_span;
8
9pub use opentelemetry::metrics::{Counter, Histogram, Meter};
10pub use opentelemetry::trace::{SpanContext, SpanId, TraceId};
11pub use opentelemetry::{KeyValue, Value};
12
13/// Acquire or create a named [`Meter`].
14pub fn meter(name: &'static str) -> Meter {
15    global::meter(name)
16}
17
18/// Install the provided propagator as the global text map propagator.
19pub fn set_text_map_propagator<P>(propagator: P)
20where
21    P: TextMapPropagator + Send + Sync + 'static,
22{
23    global::set_text_map_propagator(propagator);
24}
25
26/// Shutdown the global tracer provider, flushing any pending spans.
27pub fn shutdown_tracer_provider() {
28    global::shutdown_tracer_provider();
29}