Module opentelemetry::baggage [−][src]
Expand description
Primitives for sending name-value data across system boundaries.
Main types in this module are:
Baggage
: Baggage is used to annotate telemetry, adding context and information to metrics, traces, and logs.BaggageExt
: Extensions for managingBaggage
in aContext
.
Baggage can be sent between systems using the BaggagePropagator
in
accordance with 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");
Structs
A set of name-value pairs describing user-defined properties.
An optional property set that can be added to Baggage
values.
An iterator over the entries of a Baggage
.
Baggage
name-value pairs with their associated metadata.
Traits
Methods for sorting and retrieving baggage data in a context.