Zipkin: Fix OTLP events to Zipkin annotations translation (#1161)

This commit is contained in:
Owais Lone
2020-09-25 21:31:41 +05:30
committed by alrex
parent ec46ca58d3
commit 6222b2aabe
3 changed files with 27 additions and 13 deletions

View File

@ -4,6 +4,7 @@
- Zipkin exporter now accepts a ``max_tag_value_length`` attribute to customize the
maximum allowed size a tag value can have. ([#1151](https://github.com/open-telemetry/opentelemetry-python/pull/1151))
- Fixed OTLP events to Zipkin annotations translation. ([#1161](https://github.com/open-telemetry/opentelemetry-python/pull/1161))
## Version 0.13b0

View File

@ -237,20 +237,25 @@ class ZipkinSpanExporter(SpanExporter):
tags.update(self._extract_tags_from_dict(span.resource.attributes))
return tags
def _extract_annotations_from_events(
self, events
): # pylint: disable=R0201
return (
[
def _extract_annotations_from_events(self, events):
if not events:
return None
annotations = []
for event in events:
attrs = {}
for key, value in event.attributes.items():
if isinstance(value, str):
value = value[: self.max_tag_value_length]
attrs[key] = value
annotations.append(
{
"timestamp": _nsec_to_usec_round(e.timestamp),
"value": e.name,
"timestamp": _nsec_to_usec_round(event.timestamp),
"value": json.dumps({event.name: attrs}),
}
for e in events
]
if events
else None
)
)
return annotations
def _nsec_to_usec_round(nsec):

View File

@ -223,7 +223,15 @@ class TestZipkinSpanExporter(unittest.TestCase):
"annotations": [
{
"timestamp": event_timestamp // 10 ** 3,
"value": "event0",
"value": json.dumps(
{
"event0": {
"annotation_bool": True,
"annotation_string": "annotation_test",
"key_float": 0.3,
}
}
),
}
],
"debug": True,