Trait SpanProcessor

Source
pub trait SpanProcessor:
    Send
    + Sync
    + Debug {
    // Required methods
    fn on_start(&self, span: &mut Span, cx: &Context);
    fn on_end(&self, span: SpanData);
    fn force_flush(&self) -> TraceResult<()>;
    fn shutdown(&mut self) -> TraceResult<()>;
    fn as_any(&self) -> &dyn Any;
}
Available on crate feature trace only.
Expand description

SpanProcessor is an interface which allows hooks for span start and end method invocations. The span processors are invoked only when is_recording is true.

Required Methods§

Source

fn on_start(&self, span: &mut Span, cx: &Context)

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.

Source

fn on_end(&self, span: SpanData)

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.

Source

fn force_flush(&self) -> TraceResult<()>

Force the spans lying in the cache to be exported.

Source

fn shutdown(&mut self) -> TraceResult<()>

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

Source

fn as_any(&self) -> &dyn Any

For casting

Implementors§