Struct opentelemetry::sdk::propagation::BaggagePropagator
source · [−]pub struct BaggagePropagator { /* private fields */ }
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
sourceimpl Debug for BaggagePropagator
impl Debug for BaggagePropagator
sourceimpl Default for BaggagePropagator
impl Default for BaggagePropagator
sourcefn default() -> BaggagePropagator
fn default() -> BaggagePropagator
Returns the “default value” for a type. Read more
sourceimpl TextMapPropagator for BaggagePropagator
impl TextMapPropagator for BaggagePropagator
sourcefn 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
.
sourcefn 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
.
sourcefn fields(&self) -> FieldIter<'_>ⓘNotable traits for FieldIter<'a>impl<'a> Iterator for FieldIter<'a> type Item = &'a str;
fn fields(&self) -> FieldIter<'_>ⓘNotable traits for FieldIter<'a>impl<'a> Iterator for FieldIter<'a> type Item = &'a str;
Returns iter of fields used by
TextMapPropagator
Read moreAuto Trait Implementations
impl RefUnwindSafe for BaggagePropagator
impl Send for BaggagePropagator
impl Sync for BaggagePropagator
impl Unpin for BaggagePropagator
impl UnwindSafe for BaggagePropagator
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more