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§
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
.
source§fn fields(&self) -> FieldIter<'_>
fn fields(&self) -> FieldIter<'_>
Returns iter of fields used by
TextMapPropagator
Auto Trait Implementations§
impl Freeze for BaggagePropagator
impl RefUnwindSafe for BaggagePropagator
impl Send for BaggagePropagator
impl Sync for BaggagePropagator
impl Unpin for BaggagePropagator
impl UnwindSafe for BaggagePropagator
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more