File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed
opentelemetry-propagator-gcp
src/opentelemetry/propagators/cloud_trace_propagator Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change 2222from opentelemetry .trace .span import SpanContext , TraceFlags , format_trace_id
2323
2424_TRACE_CONTEXT_HEADER_NAME = "x-cloud-trace-context"
25- _TRACE_CONTEXT_HEADER_FORMAT = r"(?P<trace_id>[0-9a-f]{32})\/(?P<span_id>[\d]{1,20});o=(?P<trace_flags>\d+)"
25+ _TRACE_CONTEXT_HEADER_FORMAT = r"(?P<trace_id>[0-9a-f]{32})\/(?P<span_id>[\d]{1,20})( ;o=(?P<trace_flags>\d+))? "
2626_TRACE_CONTEXT_HEADER_RE = re .compile (_TRACE_CONTEXT_HEADER_FORMAT )
2727_FIELDS = {_TRACE_CONTEXT_HEADER_NAME }
2828
@@ -71,7 +71,7 @@ def extract(
7171
7272 trace_id = match .group ("trace_id" )
7373 span_id = match .group ("span_id" )
74- trace_options = match .group ("trace_flags" )
74+ trace_options = match .group ("trace_flags" ) or "0"
7575
7676 if trace_id == "0" * 32 or int (span_id ) == 0 :
7777 return context
Original file line number Diff line number Diff line change @@ -115,6 +115,13 @@ def test_valid_header(self):
115115 self .assertEqual (new_span_context .trace_flags , TraceFlags (0 ))
116116 self .assertTrue (new_span_context .is_remote )
117117
118+ header = "{}/{}" .format (format_trace_id (self .valid_trace_id ), 345 )
119+ new_span_context = self ._extract_span_context (header )
120+ self .assertEqual (new_span_context .trace_id , self .valid_trace_id )
121+ self .assertEqual (new_span_context .span_id , 345 )
122+ self .assertEqual (new_span_context .trace_flags , TraceFlags (0 ))
123+ self .assertTrue (new_span_context .is_remote )
124+
118125 def test_mixed_case_header_key (self ):
119126 header_value = "{}/{};o=1" .format (
120127 format_trace_id (self .valid_trace_id ), self .valid_span_id
You can’t perform that action at this time.
0 commit comments