Struct tracing_opentelemetry::OpenTelemetryLayer[][src]

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

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]

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.

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]

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

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

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

impl<T> FutureExt for T[src]

impl<T> Instrument for T[src]

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

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.

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.

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