Struct tracing_opentelemetry::OpenTelemetryLayer[][src]

pub struct OpenTelemetryLayer<S, T> { /* fields omitted */ }
Expand description

An OpenTelemetry propagation layer for use in a project that uses tracing.

Implementations

impl<S, T> OpenTelemetryLayer<S, T> where
    S: Subscriber + for<'span> LookupSpan<'span>,
    T: Tracer + PreSampledTracer + 'static, 
[src]

pub fn new(tracer: T) -> Self[src]

Set the Tracer that this layer will use to produce and track OpenTelemetry Spans.

Examples

use tracing_opentelemetry::OpenTelemetryLayer;
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::Registry;

// Create a jaeger exporter pipeline for a `trace_demo` service.
let tracer = opentelemetry_jaeger::new_pipeline()
    .with_service_name("trace_demo")
    .install_simple()
    .expect("Error initializing Jaeger exporter");

// Create a layer with the configured tracer
let otel_layer = OpenTelemetryLayer::new(tracer);

// Use the tracing subscriber `Registry`, or any other subscriber
// that impls `LookupSpan`
let subscriber = Registry::default().with(otel_layer);

pub fn with_tracer<Tracer>(
    self,
    tracer: Tracer
) -> OpenTelemetryLayer<S, Tracer> where
    Tracer: Tracer + PreSampledTracer + 'static, 
[src]

Set the Tracer that this layer will use to produce and track OpenTelemetry Spans.

Examples

use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::Registry;

// Create a jaeger exporter pipeline for a `trace_demo` service.
let tracer = opentelemetry_jaeger::new_pipeline()
    .with_service_name("trace_demo")
    .install_simple()
    .expect("Error initializing Jaeger exporter");

// Create a layer with the configured tracer
let otel_layer = tracing_opentelemetry::layer().with_tracer(tracer);

// Use the tracing subscriber `Registry`, or any other subscriber
// that impls `LookupSpan`
let subscriber = Registry::default().with(otel_layer);

pub fn with_tracked_inactivity(self, tracked_inactivity: bool) -> Self[src]

Sets whether or not spans metadata should include the busy time (total time for which it was entered), and idle time (total time the span existed but was not entered).

Trait Implementations

impl<S> Default for OpenTelemetryLayer<S, NoopTracer> where
    S: Subscriber + for<'span> LookupSpan<'span>, 
[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

impl<S, T> Layer<S> for OpenTelemetryLayer<S, T> where
    S: Subscriber + for<'span> LookupSpan<'span>,
    T: Tracer + PreSampledTracer + 'static, 
[src]

fn new_span(&self, attrs: &Attributes<'_>, id: &Id, ctx: Context<'_, S>)[src]

Creates an OpenTelemetry Span for the corresponding tracing Span.

fn on_record(&self, id: &Id, values: &Record<'_>, ctx: Context<'_, S>)[src]

Record OpenTelemetry attributes for the given values.

fn on_event(&self, event: &Event<'_>, ctx: Context<'_, S>)[src]

Records OpenTelemetry Event data on event.

Note: an ERROR-level event will also set the OpenTelemetry span status code to Error, signaling that an error has occurred.

fn on_close(&self, id: Id, ctx: Context<'_, S>)[src]

Exports an OpenTelemetry Span on close.

fn on_enter(&self, id: &Id, ctx: Context<'_, S>)[src]

Notifies this layer that a span with the given ID was entered.

fn on_exit(&self, id: &Id, ctx: Context<'_, S>)[src]

Notifies this layer that the span with the given ID was exited.

fn on_follows_from(&self, id: &Id, follows: &Id, ctx: Context<'_, S>)[src]

Notifies this layer that a span with the ID span recorded that it follows from the span with the ID follows. Read more

unsafe fn downcast_raw(&self, id: TypeId) -> Option<*const ()>[src]

fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest[src]

Registers a new callsite with this layer, returning whether or not the layer is interested in being notified about the callsite, similarly to Subscriber::register_callsite. Read more

fn enabled(&self, metadata: &Metadata<'_>, ctx: Context<'_, S>) -> bool[src]

Returns true if this layer is interested in a span or event with the given metadata in the current Context, similarly to Subscriber::enabled. Read more

fn on_id_change(&self, _old: &Id, _new: &Id, _ctx: Context<'_, S>)[src]

Notifies this layer that a span ID has been cloned, and that the subscriber returned a different ID. Read more

fn and_then<L>(self, layer: L) -> Layered<L, Self, S> where
    L: Layer<S>, 
[src]

Composes this layer around the given Layer, returning a Layered struct implementing Layer. Read more

fn with_subscriber(self, inner: S) -> Layered<Self, S, S>[src]

Composes this Layer with the given Subscriber, returning a Layered struct that implements Subscriber. Read more

Auto Trait Implementations

impl<S, T> RefUnwindSafe for OpenTelemetryLayer<S, T> where
    S: RefUnwindSafe,
    T: RefUnwindSafe

impl<S, T> Send for OpenTelemetryLayer<S, T> where
    S: Send,
    T: Send

impl<S, T> Sync for OpenTelemetryLayer<S, T> where
    S: Sync,
    T: Sync

impl<S, T> Unpin for OpenTelemetryLayer<S, T> where
    S: Unpin,
    T: Unpin

impl<S, T> UnwindSafe for OpenTelemetryLayer<S, T> where
    S: UnwindSafe,
    T: UnwindSafe

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> FutureExt for T[src]

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

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

fn with_current_context(self) -> WithContext<Self>[src]

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

impl<T> Instrument for T[src]

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

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

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

Performs the conversion.

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.

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

Performs the conversion.

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

pub fn vzip(self) -> V