Skip to content

Commit e31c4bb

Browse files
authored
ext/jaeger: Fixing the serialization of a tuple element by coercing it into a string (open-telemetry#865)
Could not serialize attribute aws.region to tag when exporting via jaeger Serialize tuple type values by coercing them into a string, since Jaeger does not support tuple types.
1 parent b085f37 commit e31c4bb

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

ext/opentelemetry-ext-jaeger/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Released 2020-05-27
88

99
- Transform resource to tags when exporting
1010
([#645](https://github.com/open-telemetry/opentelemetry-python/pull/645))
11+
- ext/boto: Could not serialize attribute aws.region to tag when exporting via jaeger
12+
Serialize tuple type values by coercing them into a string, since Jaeger does not
13+
support tuple types.
14+
([#865](https://github.com/open-telemetry/opentelemetry-python/pull/865))
1115

1216
## 0.6b0
1317

ext/opentelemetry-ext-jaeger/src/opentelemetry/ext/jaeger/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ def _convert_attribute_to_tag(key, attr):
314314
return jaeger.Tag(key=key, vLong=attr, vType=jaeger.TagType.LONG)
315315
if isinstance(attr, float):
316316
return jaeger.Tag(key=key, vDouble=attr, vType=jaeger.TagType.DOUBLE)
317+
if isinstance(attr, tuple):
318+
return jaeger.Tag(key=key, vStr=str(attr), vType=jaeger.TagType.STRING)
317319
logger.warning("Could not serialize attribute %s:%r to tag", key, attr)
318320
return None
319321

ext/opentelemetry-ext-jaeger/tests/test_jaeger_exporter.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ def test_translate_to_jaeger(self):
200200
otel_spans[0].set_attribute("key_bool", False)
201201
otel_spans[0].set_attribute("key_string", "hello_world")
202202
otel_spans[0].set_attribute("key_float", 111.22)
203+
otel_spans[0].set_attribute("key_tuple", ("tuple_element",))
203204
otel_spans[0].resource = Resource(
204205
labels={"key_resource": "some_resource"}
205206
)
@@ -241,6 +242,11 @@ def test_translate_to_jaeger(self):
241242
vType=jaeger.TagType.DOUBLE,
242243
vDouble=111.22,
243244
),
245+
jaeger.Tag(
246+
key="key_tuple",
247+
vType=jaeger.TagType.STRING,
248+
vStr="('tuple_element',)",
249+
),
244250
jaeger.Tag(
245251
key="key_resource",
246252
vType=jaeger.TagType.STRING,

0 commit comments

Comments
 (0)