Struct opentelemetry::sdk::propagation::BaggagePropagator
source · pub struct BaggagePropagator { /* private fields */ }
Available 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_api::{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§
source§impl BaggagePropagator
impl BaggagePropagator
sourcepub fn new() -> BaggagePropagator
pub fn new() -> BaggagePropagator
Construct a new baggage propagator.
Trait Implementations§
source§impl Debug for BaggagePropagator
impl Debug for BaggagePropagator
source§impl Default for BaggagePropagator
impl Default for BaggagePropagator
source§fn default() -> BaggagePropagator
fn default() -> BaggagePropagator
Returns the “default value” for a type. Read more
source§impl TextMapPropagator for BaggagePropagator
impl TextMapPropagator for BaggagePropagator
source§fn inject_context(&self, cx: &Context, injector: &mut dyn Injector)
fn inject_context(&self, cx: &Context, injector: &mut dyn Injector)
Encodes the values of the Context
and injects them into the provided Injector
.
source§fn extract_with_context(
&self,
cx: &Context,
extractor: &dyn Extractor
) -> Context
fn extract_with_context( &self, cx: &Context, extractor: &dyn Extractor ) -> Context
Extracts a Context
with baggage values from a Extractor
.