[][src]Struct opentelemetry::sdk::propagation::BaggagePropagator

pub struct BaggagePropagator { /* fields omitted */ }
This is supported on crate feature trace only.

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. Baggages 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

impl BaggagePropagator[src]

pub fn new() -> Self[src]

Construct a new baggage propagator.

Trait Implementations

impl Debug for BaggagePropagator[src]

impl Default for BaggagePropagator[src]

impl TextMapPropagator for BaggagePropagator[src]

pub fn inject_context(&self, cx: &Context, injector: &mut dyn Injector)[src]

Encodes the values of the Context and injects them into the provided Injector.

pub fn extract_with_context(
    &self,
    cx: &Context,
    extractor: &dyn Extractor
) -> Context
[src]

Extracts a Context with baggage values from a Extractor.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoRequest<T> for T[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,