Skip to content

Commit cd39fc1

Browse files
authored
Update Jaeger exporter status code (#1488)
1 parent eb7125d commit cd39fc1

File tree

5 files changed

+52
-49
lines changed

5 files changed

+52
-49
lines changed

Diff for: CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4444
- `opentelemetry-exporter-otlp` Headers are now passed in as tuple as metadata, instead of a
4545
string, which was incorrect.
4646
([#1507](https://github.com/open-telemetry/opentelemetry-python/pull/1507))
47+
- `opentelemetry-exporter-jaeger` Updated Jaeger exporter status code tag
48+
([#1488](https://github.com/open-telemetry/opentelemetry-python/pull/1488))
4749

4850
## [0.16b1](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.16b1) - 2020-11-26
4951
### Added

Diff for: exporter/opentelemetry-exporter-jaeger/src/opentelemetry/exporter/jaeger/translate/protobuf.py

+18-10
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
VERSION_KEY,
2525
Translator,
2626
)
27-
from opentelemetry.sdk.trace import Span
27+
from opentelemetry.sdk.trace import Span, StatusCode
2828
from opentelemetry.util import types
2929

3030
# pylint: disable=no-member,too-many-locals,no-self-use
@@ -190,16 +190,24 @@ def _extract_tags(self, span: Span) -> Sequence[model_pb2.KeyValue]:
190190
if key_value:
191191
translated.append(key_value)
192192

193-
code = _get_long_key_value(
194-
"status.code", span.status.status_code.value
195-
)
196-
message = _get_string_key_value(
197-
"status.message", span.status.description
198-
)
199-
kind = _get_string_key_value(
200-
"span.kind", OTLP_JAEGER_SPAN_KIND[span.kind]
193+
status = span.status
194+
if status.status_code is not StatusCode.UNSET:
195+
translated.append(
196+
_get_string_key_value(
197+
"otel.status_code", status.status_code.name
198+
)
199+
)
200+
if status.description is not None:
201+
translated.append(
202+
_get_string_key_value(
203+
"otel.status_description", status.description
204+
)
205+
)
206+
translated.append(
207+
_get_string_key_value(
208+
"span.kind", OTLP_JAEGER_SPAN_KIND[span.kind]
209+
)
201210
)
202-
translated.extend([code, message, kind])
203211

204212
# Instrumentation info KeyValues
205213
if span.instrumentation_info:

Diff for: exporter/opentelemetry-exporter-jaeger/src/opentelemetry/exporter/jaeger/translate/thrift.py

+16-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
_convert_int_to_i64,
2424
_nsec_to_usec_round,
2525
)
26-
from opentelemetry.sdk.trace import Span
26+
from opentelemetry.sdk.trace import Span, StatusCode
2727
from opentelemetry.util import types
2828

2929

@@ -120,10 +120,21 @@ def _extract_tags(self, span: Span) -> Sequence[TCollector.Tag]:
120120
if tag:
121121
translated.append(tag)
122122

123-
code = _get_long_tag("status.code", span.status.status_code.value)
124-
message = _get_string_tag("status.message", span.status.description)
125-
kind = _get_string_tag("span.kind", OTLP_JAEGER_SPAN_KIND[span.kind])
126-
translated.extend([code, message, kind])
123+
status = span.status
124+
if status.status_code is not StatusCode.UNSET:
125+
translated.append(
126+
_get_string_tag("otel.status_code", status.status_code.name)
127+
)
128+
if status.description is not None:
129+
translated.append(
130+
_get_string_tag(
131+
"otel.status_description", status.description
132+
)
133+
)
134+
135+
translated.append(
136+
_get_string_tag("span.kind", OTLP_JAEGER_SPAN_KIND[span.kind])
137+
)
127138

128139
# Instrumentation info tags
129140
if span.instrumentation_info:

Diff for: exporter/opentelemetry-exporter-jaeger/tests/test_jaeger_exporter_thrift.py

+8-16
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,6 @@ def test_translate_to_jaeger(self):
221221
)
222222

223223
default_tags = [
224-
jaeger.Tag(
225-
key="status.code",
226-
vType=jaeger.TagType.LONG,
227-
vLong=StatusCode.UNSET.value,
228-
),
229-
jaeger.Tag(
230-
key="status.message", vType=jaeger.TagType.STRING, vStr=None
231-
),
232224
jaeger.Tag(
233225
key="span.kind", vType=jaeger.TagType.STRING, vStr="internal",
234226
),
@@ -316,12 +308,12 @@ def test_translate_to_jaeger(self):
316308
vStr="some_resource",
317309
),
318310
jaeger.Tag(
319-
key="status.code",
320-
vType=jaeger.TagType.LONG,
321-
vLong=StatusCode.ERROR.value,
311+
key="otel.status_code",
312+
vType=jaeger.TagType.STRING,
313+
vStr="ERROR",
322314
),
323315
jaeger.Tag(
324-
key="status.message",
316+
key="otel.status_description",
325317
vType=jaeger.TagType.STRING,
326318
vStr="Example description",
327319
),
@@ -392,12 +384,12 @@ def test_translate_to_jaeger(self):
392384
flags=0,
393385
tags=[
394386
jaeger.Tag(
395-
key="status.code",
396-
vType=jaeger.TagType.LONG,
397-
vLong=StatusCode.OK.value,
387+
key="otel.status_code",
388+
vType=jaeger.TagType.STRING,
389+
vStr="OK",
398390
),
399391
jaeger.Tag(
400-
key="status.message",
392+
key="otel.status_description",
401393
vType=jaeger.TagType.STRING,
402394
vStr="Example description",
403395
),

Diff for: exporter/opentelemetry-exporter-jaeger/tests/test_jarget_exporter_protobuf.py

+8-18
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,6 @@ def test_translate_to_jaeger(self):
140140
)
141141

142142
default_tags = [
143-
model_pb2.KeyValue(
144-
key="status.code",
145-
v_type=model_pb2.ValueType.INT64,
146-
v_int64=StatusCode.UNSET.value,
147-
),
148-
model_pb2.KeyValue(
149-
key="status.message",
150-
v_type=model_pb2.ValueType.STRING,
151-
v_str=None,
152-
),
153143
model_pb2.KeyValue(
154144
key="span.kind",
155145
v_type=model_pb2.ValueType.STRING,
@@ -269,12 +259,12 @@ def test_translate_to_jaeger(self):
269259
v_str="some_resource",
270260
),
271261
model_pb2.KeyValue(
272-
key="status.code",
273-
v_type=model_pb2.ValueType.INT64,
274-
v_int64=StatusCode.ERROR.value,
262+
key="otel.status_code",
263+
v_type=model_pb2.ValueType.STRING,
264+
v_str="ERROR",
275265
),
276266
model_pb2.KeyValue(
277-
key="status.message",
267+
key="otel.status_description",
278268
v_type=model_pb2.ValueType.STRING,
279269
v_str="Example description",
280270
),
@@ -353,12 +343,12 @@ def test_translate_to_jaeger(self):
353343
flags=0,
354344
tags=[
355345
model_pb2.KeyValue(
356-
key="status.code",
357-
v_type=model_pb2.ValueType.INT64,
358-
v_int64=StatusCode.OK.value,
346+
key="otel.status_code",
347+
v_type=model_pb2.ValueType.STRING,
348+
v_str="OK",
359349
),
360350
model_pb2.KeyValue(
361-
key="status.message",
351+
key="otel.status_description",
362352
v_type=model_pb2.ValueType.STRING,
363353
v_str="Example description",
364354
),

0 commit comments

Comments
 (0)