Trait SpanProcessor
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) -> Result<(), TraceError>;
fn shutdown(&self) -> Result<(), TraceError>;
// Provided method
fn set_resource(&mut self, _resource: &Resource) { ... }
}
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§
fn on_start(&self, span: &mut Span, cx: &Context)
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.
fn on_end(&self, span: SpanData)
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.
fn force_flush(&self) -> Result<(), TraceError>
fn force_flush(&self) -> Result<(), TraceError>
Force the spans lying in the cache to be exported.
fn shutdown(&self) -> Result<(), TraceError>
fn shutdown(&self) -> Result<(), TraceError>
Shuts down the processor. Called when SDK is shut down. This is an opportunity for processors to do any cleanup required.
Implementation should make sure shutdown can be called multiple times.
Provided Methods§
fn set_resource(&mut self, _resource: &Resource)
fn set_resource(&mut self, _resource: &Resource)
Set the resource for the log processor.