pub struct SqsEventExtractor;Expand description
Extractor for SQS message events.
SQS events may carry trace context in two locations:
message_attributes- W3Ctraceparent/tracestateinjected by OTel-instrumented producersattributes(system attributes) -AWSTraceHeaderin X-Ray format set by AWS
This extractor checks both, preferring W3C format when available.
Per OpenTelemetry semantic conventions for messaging systems, this extractor:
- Does NOT set a parent context (returns current context)
- Creates span links for each message’s trace context
This approach is appropriate because messages in a batch may originate from different traces, and the async nature of message queues means span links are more semantically correct than parent-child relationships.
§Example
ⓘ
use opentelemetry_lambda_tower::{OtelTracingLayer, SqsEventExtractor};
let layer = OtelTracingLayer::new(SqsEventExtractor::new());Implementations§
Trait Implementations§
Source§impl Clone for SqsEventExtractor
impl Clone for SqsEventExtractor
Source§fn clone(&self) -> SqsEventExtractor
fn clone(&self) -> SqsEventExtractor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SqsEventExtractor
impl Debug for SqsEventExtractor
Source§impl Default for SqsEventExtractor
impl Default for SqsEventExtractor
Source§fn default() -> SqsEventExtractor
fn default() -> SqsEventExtractor
Returns the “default value” for a type. Read more
Source§impl TraceContextExtractor<SqsEvent> for SqsEventExtractor
impl TraceContextExtractor<SqsEvent> for SqsEventExtractor
Source§fn extract_context(&self, _event: &SqsEvent) -> Context
fn extract_context(&self, _event: &SqsEvent) -> Context
Extracts parent context for creating child spans. Read more
Source§fn extract_links(&self, event: &SqsEvent) -> Vec<Link>
fn extract_links(&self, event: &SqsEvent) -> Vec<Link>
Extracts span links for async message correlation. Read more
Source§fn trigger_type(&self) -> &'static str
fn trigger_type(&self) -> &'static str
Returns the FaaS trigger type for semantic conventions. Read more
Source§impl<T: Serialize + Send + Sync + 'static> TraceContextExtractor<SqsEventObj<T>> for SqsEventExtractor
impl<T: Serialize + Send + Sync + 'static> TraceContextExtractor<SqsEventObj<T>> for SqsEventExtractor
Source§fn extract_context(&self, _event: &SqsEventObj<T>) -> Context
fn extract_context(&self, _event: &SqsEventObj<T>) -> Context
Extracts parent context for creating child spans. Read more
Source§fn extract_links(&self, event: &SqsEventObj<T>) -> Vec<Link>
fn extract_links(&self, event: &SqsEventObj<T>) -> Vec<Link>
Extracts span links for async message correlation. Read more
Source§fn trigger_type(&self) -> &'static str
fn trigger_type(&self) -> &'static str
Returns the FaaS trigger type for semantic conventions. Read more
Source§fn span_name(
&self,
event: &SqsEventObj<T>,
lambda_ctx: &LambdaContext,
) -> String
fn span_name( &self, event: &SqsEventObj<T>, lambda_ctx: &LambdaContext, ) -> String
Generates span name based on event and Lambda context. Read more
Source§fn record_attributes(&self, event: &SqsEventObj<T>, span: &Span)
fn record_attributes(&self, event: &SqsEventObj<T>, span: &Span)
Records event-specific attributes on the span. Read more
Auto Trait Implementations§
impl Freeze for SqsEventExtractor
impl RefUnwindSafe for SqsEventExtractor
impl Send for SqsEventExtractor
impl Sync for SqsEventExtractor
impl Unpin for SqsEventExtractor
impl UnwindSafe for SqsEventExtractor
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