Struct opentelemetry::sdk::propagation::BaggagePropagator [−][src]
pub struct BaggagePropagator { /* fields omitted */ }
This is supported on crate feature
trace
only.Expand description
Propagates name-value pairs in W3C Baggage format.
Baggage is used to annotate telemetry, adding context and
information to metrics, traces, and logs. It is an abstract data type
represented by a set of name-value pairs describing user-defined properties.
Each name in a Baggage
is associated with exactly one value.
Baggage
s are serialized according to the editor’s draft of
the W3C Baggage specification.
Examples
use opentelemetry::{baggage::BaggageExt, Key, propagation::TextMapPropagator}; use opentelemetry::sdk::propagation::BaggagePropagator; use std::collections::HashMap; // Example baggage value passed in externally via http headers let mut headers = HashMap::new(); headers.insert("baggage".to_string(), "user_id=1".to_string()); let propagator = BaggagePropagator::new(); // can extract from any type that impls `Extractor`, usually an HTTP header map let cx = propagator.extract(&headers); // Iterate over extracted name-value pairs for (name, value) in cx.baggage() { // ... } // Add new baggage let cx_with_additions = cx.with_baggage(vec![Key::new("server_id").i64(42)]); // Inject baggage into http request propagator.inject_context(&cx_with_additions, &mut headers); let header_value = headers.get("baggage").expect("header is injected"); assert!(header_value.contains("user_id=1"), "still contains previous name-value"); assert!(header_value.contains("server_id=42"), "contains new name-value pair");
Implementations
Trait Implementations
Returns the “default value” for a type. Read more
Encodes the values of the Context
and injects them into the provided Injector
.
Extracts a Context
with baggage values from a Extractor
.
Returns iter of fields used by TextMapPropagator
Read more