stackable_telemetry::instrumentation::axum

Struct HeaderInjector

Source
pub struct HeaderInjector<'a>(/* private fields */);
Expand description

Injects the TextMapPropagator to propagate trace parent information in HTTP headers.

This propagation is useful when consumers of the HTTP response want to link up their span data with the data produced in the Tower Layer. A concrete usage example is available in the TraceService::call implementation for TraceService.

This is pretty much a copy-pasted version of the HeaderInjector from the opentelemetry_http crate. However, we cannot use this crate, as it uses an outdated version of the underlying http crate.

Implementations§

Source§

impl<'a> HeaderInjector<'a>

Source

pub fn new(headers: &'a mut HeaderMap) -> Self

Create a new header injecttor from a mutable reference to [HeaderMap].

Source

pub fn inject_context(&mut self, cx: &Context)

Inject the TextMapPropagator into the HTTP headers.

Trait Implementations§

Source§

impl Injector for HeaderInjector<'_>

Source§

fn set(&mut self, key: &str, value: String)

Add a key and value to the underlying data.

Auto Trait Implementations§

§

impl<'a> Freeze for HeaderInjector<'a>

§

impl<'a> RefUnwindSafe for HeaderInjector<'a>

§

impl<'a> Send for HeaderInjector<'a>

§

impl<'a> Sync for HeaderInjector<'a>

§

impl<'a> Unpin for HeaderInjector<'a>

§

impl<'a> !UnwindSafe for HeaderInjector<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T