[−][src]Struct opentelemetry::sdk::propagation::BaggagePropagator
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
impl BaggagePropagator
[src]
Trait Implementations
impl Debug for BaggagePropagator
[src]
impl Default for BaggagePropagator
[src]
fn default() -> BaggagePropagator
[src]
impl TextMapPropagator for BaggagePropagator
[src]
fn inject_context(&self, cx: &Context, injector: &mut dyn Injector)
[src]
Encodes the values of the Context
and injects them into the provided Injector
.
fn extract_with_context(
&self,
cx: &Context,
extractor: &dyn Extractor
) -> Context
[src]
&self,
cx: &Context,
extractor: &dyn Extractor
) -> Context
Extracts a Context
with baggage values from a Extractor
.
fn fields(&self) -> FieldIter<'_>ⓘ
[src]
fn inject(&self, injector: &mut dyn Injector)
[src]
fn extract(&self, extractor: &dyn Extractor) -> Context
[src]
Auto Trait Implementations
impl RefUnwindSafe for BaggagePropagator
impl Send for BaggagePropagator
impl Sync for BaggagePropagator
impl Unpin for BaggagePropagator
impl UnwindSafe for BaggagePropagator
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,