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