[−][src]Struct opentelemetry::sdk::trace::BatchSpanProcessor
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, util::tokio_interval_stream}; 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, tokio::spawn, tokio::time::sleep, tokio_interval_stream) .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 guard = global::set_tracer_provider(provider); }
Implementations
impl BatchSpanProcessor
[src]
pub fn builder<E, S, SH, SO, I, IO, D, DS>(
exporter: E,
spawn: S,
delay: D,
interval: I
) -> BatchSpanProcessorBuilder<E, S, I, D> where
E: SpanExporter,
S: Fn(BoxFuture<'static, ()>) -> SH,
SH: Future<Output = SO> + Send + Sync + 'static,
I: Fn(Duration) -> IO,
D: Fn(Duration) -> DS + Send + Sync + 'static,
DS: Future<Output = ()> + 'static + Send + Sync,
[src]
exporter: E,
spawn: S,
delay: D,
interval: I
) -> BatchSpanProcessorBuilder<E, S, I, D> where
E: SpanExporter,
S: Fn(BoxFuture<'static, ()>) -> SH,
SH: Future<Output = SO> + Send + Sync + 'static,
I: Fn(Duration) -> IO,
D: Fn(Duration) -> DS + Send + Sync + 'static,
DS: Future<Output = ()> + 'static + Send + Sync,
Create a new batch processor builder
pub fn from_env<E, S, SH, SO, I, IO, D, DS>(
exporter: E,
spawn: S,
interval: I,
delay: D
) -> BatchSpanProcessorBuilder<E, S, I, D> where
E: SpanExporter,
S: Fn(BoxFuture<'static, ()>) -> SH,
SH: Future<Output = SO> + Send + Sync + 'static,
I: Fn(Duration) -> IO,
D: Fn(Duration) -> DS + Send + Sync + 'static,
DS: Future<Output = ()> + 'static + Send + Sync,
[src]
exporter: E,
spawn: S,
interval: I,
delay: D
) -> BatchSpanProcessorBuilder<E, S, I, D> where
E: SpanExporter,
S: Fn(BoxFuture<'static, ()>) -> SH,
SH: Future<Output = SO> + Send + Sync + 'static,
I: Fn(Duration) -> IO,
D: Fn(Duration) -> DS + Send + Sync + 'static,
DS: Future<Output = ()> + 'static + Send + Sync,
Create a new batch processor builder and set the config value based on environment variables.
If the value in environment variables is illegal, will fall back to use default value.
Note that export batch size should be less than or equals to max queue size. If export batch size is larger than max queue size, we will lower to be the same as max queue size
Trait Implementations
impl Debug for BatchSpanProcessor
[src]
impl SpanProcessor for BatchSpanProcessor
[src]
fn on_start(&self, _span: &Span, _cx: &Context)
[src]
fn on_end(&self, span: SpanData)
[src]
fn force_flush(&self) -> TraceResult<()>
[src]
fn shutdown(&mut self) -> TraceResult<()>
[src]
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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
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]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,