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_batch_exporter(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]

impl SpanProcessor for BatchSpanProcessor[src]

Auto Trait Implementations

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