File tree 3 files changed +13
-4
lines changed
propagator/opentelemetry-propagator-jaeger
src/opentelemetry/propagators/jaeger
3 files changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -6,14 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
7
7
## [ Unreleased] ( https://github.com/open-telemetry/opentelemetry-python/compare/v0.17b0...HEAD )
8
8
9
- =======
10
9
### Added
11
10
- Added ` end_on_exit ` argument to ` start_as_current_span `
12
11
([ #1519 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/1519 )] )
13
12
- Add ` Span.set_attributes ` method to set multiple values with one call
14
13
([ #1520 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/1520 ) )
15
14
- Make sure Resources follow semantic conventions
16
15
([ #1480 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/1480 ) )
16
+ - Allow missing carrier headers to continue without raising AttributeError
17
+ ([ #1545 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/1545 ) )
17
18
18
19
## [ 0.17b0] ( https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.17b0 ) - 2021-01-20
19
20
Original file line number Diff line number Diff line change @@ -45,9 +45,10 @@ def extract(
45
45
46
46
if context is None :
47
47
context = get_current ()
48
- fields = _extract_first_element (
49
- getter .get (carrier , self .TRACE_ID_KEY )
50
- ).split (":" )
48
+ header = getter .get (carrier , self .TRACE_ID_KEY )
49
+ if not header :
50
+ return trace .set_span_in_context (trace .INVALID_SPAN , context )
51
+ fields = _extract_first_element (header ).split (":" )
51
52
52
53
context = self ._extract_baggage (getter , carrier , context )
53
54
if len (fields ) != 4 :
Original file line number Diff line number Diff line change @@ -83,6 +83,13 @@ def test_extract_valid_span(self):
83
83
self .assertEqual (span_context .trace_id , self .trace_id )
84
84
self .assertEqual (span_context .span_id , self .span_id )
85
85
86
+ def test_missing_carrier (self ):
87
+ old_carrier = {}
88
+ ctx = FORMAT .extract (carrier_getter , old_carrier )
89
+ span_context = trace_api .get_current_span (ctx ).get_span_context ()
90
+ self .assertEqual (span_context .trace_id , trace_api .INVALID_TRACE_ID )
91
+ self .assertEqual (span_context .span_id , trace_api .INVALID_SPAN_ID )
92
+
86
93
def test_trace_id (self ):
87
94
old_carrier = {FORMAT .TRACE_ID_KEY : self .serialized_uber_trace_id }
88
95
_ , new_carrier = get_context_new_carrier (old_carrier )
You can’t perform that action at this time.
0 commit comments