File tree 3 files changed +25
-2
lines changed
instrumentation/opentelemetry-instrumentation-wsgi
src/opentelemetry/instrumentation/wsgi
3 files changed +25
-2
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
([ #364 ] ( https://github.com/open-telemetry/opentelemetry-python-contrib/pull/364 ) )
10
10
- ` opentelemetry-propagator-ot-trace ` Do not throw an exception when headers are not present
11
11
([ #378 ] ( https://github.com/open-telemetry/opentelemetry-python-contrib/pull/378 ) )
12
+ - ` opentelemetry-instrumentation-wsgi ` Reimplement ` keys ` method to return actual keys from the carrier instead of an empty list.
13
+ ([ #379 ] ( https://github.com/open-telemetry/opentelemetry-python-contrib/pull/379 ) )
12
14
13
15
### Changed
14
16
- Rename ` IdsGenerator ` to ` IdGenerator `
Original file line number Diff line number Diff line change @@ -66,6 +66,8 @@ def hello():
66
66
from opentelemetry .trace .status import Status , StatusCode
67
67
68
68
_HTTP_VERSION_PREFIX = "HTTP/"
69
+ _CARRIER_KEY_PREFIX = "HTTP_"
70
+ _CARRIER_KEY_PREFIX_LEN = len (_CARRIER_KEY_PREFIX )
69
71
70
72
71
73
class CarrierGetter (DictGetter ):
@@ -89,7 +91,11 @@ def get(
89
91
return None
90
92
91
93
def keys (self , carrier ):
92
- return []
94
+ return [
95
+ key [_CARRIER_KEY_PREFIX_LEN :].lower ().replace ("_" , "-" )
96
+ for key in carrier
97
+ if key .startswith (_CARRIER_KEY_PREFIX )
98
+ ]
93
99
94
100
95
101
carrier_getter = CarrierGetter ()
Original file line number Diff line number Diff line change @@ -22,15 +22,30 @@ def test_get_none(self):
22
22
getter = CarrierGetter ()
23
23
carrier = {}
24
24
val = getter .get (carrier , "test" )
25
+
25
26
self .assertIsNone (val )
26
27
27
- def test_get_ (self ):
28
+ def test_get (self ):
28
29
getter = CarrierGetter ()
29
30
carrier = {"HTTP_TEST_KEY" : "val" }
30
31
val = getter .get (carrier , "test-key" )
32
+
31
33
self .assertEqual (val , ["val" ])
32
34
33
35
def test_keys (self ):
36
+ getter = CarrierGetter ()
37
+ keys = getter .keys (
38
+ {
39
+ "HTTP_TEST_KEY" : "val" ,
40
+ "HTTP_OTHER_KEY" : 42 ,
41
+ "NON_HTTP_KEY" : "val" ,
42
+ }
43
+ )
44
+
45
+ self .assertEqual (keys , ["test-key" , "other-key" ])
46
+
47
+ def test_keys_empty (self ):
34
48
getter = CarrierGetter ()
35
49
keys = getter .keys ({})
50
+
36
51
self .assertEqual (keys , [])
You can’t perform that action at this time.
0 commit comments