@@ -1062,6 +1062,15 @@ impl Processor {
10621062 return Some ( sc) ;
10631063 }
10641064
1065+ if let Some ( request_obj) = payload_value. get ( "request" ) {
1066+ if let Some ( request_headers) = request_obj. get ( "headers" ) {
1067+ if let Some ( sc) = propagator. extract ( request_headers) {
1068+ debug ! ( "Extracted trace context from event.request.headers" ) ;
1069+ return Some ( sc) ;
1070+ }
1071+ }
1072+ }
1073+
10651074 if let Some ( payload_headers) = payload_value. get ( "headers" ) {
10661075 if let Some ( sc) = propagator. extract ( payload_headers) {
10671076 debug ! ( "Extracted trace context from event headers" ) ;
@@ -1074,15 +1083,6 @@ impl Processor {
10741083 return Some ( sc) ;
10751084 }
10761085
1077- if let Some ( request_obj) = payload_value. get ( "request" ) {
1078- if let Some ( request_headers) = request_obj. get ( "headers" ) {
1079- if let Some ( sc) = propagator. extract ( request_headers) {
1080- debug ! ( "Extracted trace context from event.request.headers" ) ;
1081- return Some ( sc) ;
1082- }
1083- }
1084- }
1085-
10861086 None
10871087 }
10881088
@@ -1942,8 +1942,8 @@ mod tests {
19421942 assert ! ( result. is_some( ) ) ;
19431943 let context = result. unwrap ( ) ;
19441944 assert_eq ! (
1945- context. trace_id, 333 ,
1946- "Should prioritize event.headers over other sources "
1945+ context. trace_id, 555 ,
1946+ "Should prioritize event.request. headers as service-specific extraction "
19471947 ) ;
19481948 }
19491949
@@ -1974,7 +1974,7 @@ mod tests {
19741974
19751975 let result = Processor :: extract_span_context ( & headers, & payload, propagator) ;
19761976
1977- assert ! ( result. is_some( ) , "Should fallback to event.request.headers" ) ;
1977+ assert ! ( result. is_some( ) , "Should extract from event.request.headers" ) ;
19781978 let context = result. unwrap ( ) ;
19791979 assert_eq ! ( context. trace_id, 7777 ) ;
19801980 assert_eq ! ( context. span_id, 8888 ) ;
0 commit comments