@@ -1076,6 +1076,15 @@ impl Processor {
10761076 return Some ( sc) ;
10771077 }
10781078
1079+ if let Some ( request_obj) = payload_value. get ( "request" ) {
1080+ if let Some ( request_headers) = request_obj. get ( "headers" ) {
1081+ if let Some ( sc) = propagator. extract ( request_headers) {
1082+ debug ! ( "Extracted trace context from event.request.headers" ) ;
1083+ return Some ( sc) ;
1084+ }
1085+ }
1086+ }
1087+
10791088 if let Some ( payload_headers) = payload_value. get ( "headers" ) {
10801089 if let Some ( sc) = propagator. extract ( payload_headers) {
10811090 debug ! ( "Extracted trace context from event headers" ) ;
@@ -1088,15 +1097,6 @@ impl Processor {
10881097 return Some ( sc) ;
10891098 }
10901099
1091- if let Some ( request_obj) = payload_value. get ( "request" ) {
1092- if let Some ( request_headers) = request_obj. get ( "headers" ) {
1093- if let Some ( sc) = propagator. extract ( request_headers) {
1094- debug ! ( "Extracted trace context from event.request.headers" ) ;
1095- return Some ( sc) ;
1096- }
1097- }
1098- }
1099-
11001100 None
11011101 }
11021102
@@ -1956,8 +1956,8 @@ mod tests {
19561956 assert ! ( result. is_some( ) ) ;
19571957 let context = result. unwrap ( ) ;
19581958 assert_eq ! (
1959- context. trace_id, 333 ,
1960- "Should prioritize event.headers over other sources "
1959+ context. trace_id, 555 ,
1960+ "Should prioritize event.request. headers as service-specific extraction "
19611961 ) ;
19621962 }
19631963
@@ -1988,7 +1988,10 @@ mod tests {
19881988
19891989 let result = Processor :: extract_span_context ( & headers, & payload, propagator) ;
19901990
1991- assert ! ( result. is_some( ) , "Should fallback to event.request.headers" ) ;
1991+ assert ! (
1992+ result. is_some( ) ,
1993+ "Should extract from event.request.headers"
1994+ ) ;
19921995 let context = result. unwrap ( ) ;
19931996 assert_eq ! ( context. trace_id, 7777 ) ;
19941997 assert_eq ! ( context. span_id, 8888 ) ;
0 commit comments