[−][src]Struct opentelemetry::sdk::trace::BatchSpanProcessor
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}; 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::delay_for, tokio::time::interval) .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]
pub fn on_start(&self, _span: &Span, _cx: &Context)
[src]
pub fn on_end(&self, span: SpanData)
[src]
pub fn force_flush(&self) -> TraceResult<()>
[src]
pub fn shutdown(&mut self) -> TraceResult<()>
[src]
Auto Trait Implementations
impl RefUnwindSafe for BatchSpanProcessor
[src]
impl Send for BatchSpanProcessor
[src]
impl Sync for BatchSpanProcessor
[src]
impl Unpin for BatchSpanProcessor
[src]
impl UnwindSafe for BatchSpanProcessor
[src]
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> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoRequest<T> for T
[src]
pub fn into_request(self) -> Request<T>
[src]
impl<T> Same<T> for T
type Output = T
Should always be Self
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>,
V: MultiLane<T>,