Struct opentelemetry::sdk::trace::BatchSpanProcessor[][src]

pub struct BatchSpanProcessor { /* fields omitted */ }
This is supported on crate feature trace only.

A SpanProcessor that asynchronously buffers finished spans and reports them at a preconfigured interval.

Examples

This processor can be configured with an executor of your choice to batch and upload spans asynchronously when they end. If you have added a library like tokio or async-std, you can pass in their respective spawn and interval functions to have batching performed in those contexts.

use futures::{stream};
use opentelemetry::{trace as apitrace, sdk::trace as sdktrace, global, runtime};
use std::time::Duration;

#[tokio::main]
async fn main() {
    // Configure your preferred exporter
    let exporter = apitrace::NoopSpanExporter::new();

    // Then build a batch processor. You can use whichever executor you have available, for
    // example if you are using `async-std` instead of `tokio` you can replace the spawn and
    // interval functions with `async_std::task::spawn` and `async_std::stream::interval`.
    let batch = sdktrace::BatchSpanProcessor::builder(exporter, runtime::Tokio)
        .with_max_queue_size(4096)
        .build();

    // Then use the `with_batch_exporter` method to have the provider export spans in batches.
    let provider = sdktrace::TracerProvider::builder()
        .with_span_processor(batch)
        .build();

    let _ = global::set_tracer_provider(provider);
}

Implementations

impl BatchSpanProcessor[src]

pub fn builder<E, R>(exporter: E, runtime: R) -> BatchSpanProcessorBuilder<E, R> where
    E: SpanExporter,
    R: Runtime
[src]

Create a new batch processor builder

Trait Implementations

impl Debug for BatchSpanProcessor[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl SpanProcessor for BatchSpanProcessor[src]

fn on_start(&self, _span: &Span, _cx: &Context)[src]

on_start is called when a Span is started. This method is called synchronously on the thread that started the span, therefore it should not block or throw exceptions. Read more

fn on_end(&self, span: SpanData)[src]

on_end is called after a Span is ended (i.e., the end timestamp is already set). This method is called synchronously within the Span::end API, therefore it should not block or throw an exception. Read more

fn force_flush(&self) -> TraceResult<()>[src]

Force the spans lying in the cache to be exported.

fn shutdown(&mut self) -> TraceResult<()>[src]

Shuts down the processor. Called when SDK is shut down. This is an opportunity for processors to do any cleanup required. Read more

Auto Trait Implementations

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, 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