Struct opentelemetry::sdk::trace::BatchSpanProcessor [−][src]
pub struct BatchSpanProcessor { /* fields omitted */ }
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]
impl BatchSpanProcessor
[src]pub fn builder<E, R>(exporter: E, runtime: R) -> BatchSpanProcessorBuilder<E, R> where
E: SpanExporter,
R: Runtime,
[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 Debug for BatchSpanProcessor
[src]impl SpanProcessor for BatchSpanProcessor
[src]
impl SpanProcessor for BatchSpanProcessor
[src]fn on_start(&self, _span: &Span, _cx: &Context)
[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]
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]
fn force_flush(&self) -> TraceResult<()>
[src]Force the spans lying in the cache to be exported.
fn shutdown(&mut self) -> TraceResult<()>
[src]
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
impl RefUnwindSafe for BatchSpanProcessor
impl Send for BatchSpanProcessor
impl Sync for BatchSpanProcessor
impl Unpin for BatchSpanProcessor
impl UnwindSafe for BatchSpanProcessor
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,