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 - 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)) 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 ## Version 0.13b0

View File

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

View File

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