pub struct LambdaSpanProcessor<E>where
E: SpanExporter + Debug,{ /* private fields */ }Expand description
A span processor optimized for AWS Lambda functions.
This processor efficiently manages spans in a Lambda environment:
- Uses a fixed-size ring buffer to prevent memory growth
- Supports synchronous and asynchronous export modes
- Handles graceful shutdown for Lambda termination
§Examples
use lambda_otel_lite::LambdaSpanProcessor;
use otlp_stdout_span_exporter::OtlpStdoutSpanExporter;
let processor = LambdaSpanProcessor::builder()
.exporter(OtlpStdoutSpanExporter::default())
.build();With custom configuration:
use lambda_otel_lite::LambdaSpanProcessor;
use otlp_stdout_span_exporter::OtlpStdoutSpanExporter;
let processor = LambdaSpanProcessor::builder()
.exporter(OtlpStdoutSpanExporter::default())
.max_queue_size(1000)
.max_batch_size(100)
.build();Implementations§
Source§impl<E> LambdaSpanProcessor<E>where
E: SpanExporter + Debug,
impl<E> LambdaSpanProcessor<E>where
E: SpanExporter + Debug,
Sourcepub fn builder() -> LambdaSpanProcessorBuilder<E>
pub fn builder() -> LambdaSpanProcessorBuilder<E>
Creates a new LambdaSpanProcessor with the given exporter and configuration
§Environment Variable Precedence
Configuration values follow this precedence order:
- Environment variables (highest precedence)
- Constructor parameters
- Default values (lowest precedence)
The relevant environment variables are:
LAMBDA_SPAN_PROCESSOR_BATCH_SIZE: Controls the maximum batch sizeLAMBDA_SPAN_PROCESSOR_QUEUE_SIZE: Controls the maximum queue size
Trait Implementations§
Source§impl<E> Debug for LambdaSpanProcessor<E>
impl<E> Debug for LambdaSpanProcessor<E>
Source§impl<E> SpanProcessor for LambdaSpanProcessor<E>where
E: SpanExporter + Debug,
impl<E> SpanProcessor for LambdaSpanProcessor<E>where
E: SpanExporter + Debug,
Source§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.Source§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.
TODO - This method should take reference to SpanDataSource§fn force_flush(&self) -> OTelSdkResult
fn force_flush(&self) -> OTelSdkResult
Force the spans lying in the cache to be exported.
Source§fn shutdown(&self) -> OTelSdkResult
fn shutdown(&self) -> OTelSdkResult
Shuts down the processor. Called when SDK is shut down. This is an
opportunity for processors to do any cleanup required. Read more
Source§fn set_resource(&mut self, resource: &Resource)
fn set_resource(&mut self, resource: &Resource)
Set the resource for the span processor.
Auto Trait Implementations§
impl<E> !Freeze for LambdaSpanProcessor<E>
impl<E> RefUnwindSafe for LambdaSpanProcessor<E>
impl<E> Send for LambdaSpanProcessor<E>
impl<E> Sync for LambdaSpanProcessor<E>
impl<E> Unpin for LambdaSpanProcessor<E>where
E: Unpin,
impl<E> UnwindSafe for LambdaSpanProcessor<E>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request