File tree Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Original file line number Diff line number Diff line change @@ -27,9 +27,11 @@ def extract_dd_trace_context(event):
27
27
"""
28
28
global dd_trace_context
29
29
headers = event .get ('headers' , {})
30
- trace_id = headers .get (TraceHeader .TRACE_ID )
31
- parent_id = headers .get (TraceHeader .PARENT_ID )
32
- sampling_priority = headers .get (TraceHeader .SAMPLING_PRIORITY )
30
+ lowercase_headers = {k .lower (): v for k , v in headers .items ()}
31
+
32
+ trace_id = lowercase_headers .get (TraceHeader .TRACE_ID )
33
+ parent_id = lowercase_headers .get (TraceHeader .PARENT_ID )
34
+ sampling_priority = lowercase_headers .get (TraceHeader .SAMPLING_PRIORITY )
33
35
if trace_id and parent_id and sampling_priority :
34
36
dd_trace_context = {
35
37
'trace-id' : trace_id ,
Original file line number Diff line number Diff line change @@ -88,6 +88,23 @@ def test_with_complete_datadog_trace_headers(self):
88
88
XraySubsegment .NAMESPACE
89
89
)
90
90
91
+ def test_with_complete_datadog_trace_headers_with_mixed_casing (self ):
92
+ extract_dd_trace_context ({
93
+ 'headers' : {
94
+ 'X-Datadog-Trace-Id' : '123' ,
95
+ 'X-Datadog-Parent-Id' : '321' ,
96
+ 'X-Datadog-Sampling-Priority' : '1' ,
97
+ }
98
+ })
99
+ self .assertDictEqual (
100
+ get_dd_trace_context (),
101
+ {
102
+ TraceHeader .TRACE_ID : '123' ,
103
+ TraceHeader .PARENT_ID : '65535' ,
104
+ TraceHeader .SAMPLING_PRIORITY : '1' ,
105
+ }
106
+ )
107
+
91
108
92
109
class TestXRayContextConversion (unittest .TestCase ):
93
110
You can’t perform that action at this time.
0 commit comments