Skip to content

Commit 8d43324

Browse files
t2t2vmarchaud
andauthored
fix(exporter-zipkin): correct status tags names (#2519)
Co-authored-by: Valentin Marchaud <[email protected]>
1 parent 0c7f1c3 commit 8d43324

File tree

5 files changed

+23
-25
lines changed

5 files changed

+23
-25
lines changed

packages/opentelemetry-exporter-zipkin/src/transform.ts

+10-8
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ const ZIPKIN_SPAN_KIND_MAPPING = {
2929
[api.SpanKind.INTERNAL]: undefined,
3030
};
3131

32-
export const defaultStatusCodeTagName = 'ot.status_code';
33-
export const defaultStatusDescriptionTagName = 'ot.status_description';
32+
export const defaultStatusCodeTagName = 'otel.status_code';
33+
export const defaultStatusErrorTagName = 'error';
3434

3535
/**
3636
* Translate OpenTelemetry ReadableSpan to ZipkinSpan format
@@ -40,7 +40,7 @@ export function toZipkinSpan(
4040
span: ReadableSpan,
4141
serviceName: string,
4242
statusCodeTagName: string,
43-
statusDescriptionTagName: string
43+
statusErrorTagName: string
4444
): zipkinTypes.Span {
4545
const zipkinSpan: zipkinTypes.Span = {
4646
traceId: span.spanContext().traceId,
@@ -55,7 +55,7 @@ export function toZipkinSpan(
5555
span.attributes,
5656
span.status,
5757
statusCodeTagName,
58-
statusDescriptionTagName,
58+
statusErrorTagName,
5959
span.resource
6060
),
6161
annotations: span.events.length
@@ -71,16 +71,18 @@ export function _toZipkinTags(
7171
attributes: api.SpanAttributes,
7272
status: api.SpanStatus,
7373
statusCodeTagName: string,
74-
statusDescriptionTagName: string,
74+
statusErrorTagName: string,
7575
resource: Resource
7676
): zipkinTypes.Tags {
7777
const tags: { [key: string]: string } = {};
7878
for (const key of Object.keys(attributes)) {
7979
tags[key] = String(attributes[key]);
8080
}
81-
tags[statusCodeTagName] = String(api.SpanStatusCode[status.code]);
82-
if (status.message) {
83-
tags[statusDescriptionTagName] = status.message;
81+
if (status.code !== api.SpanStatusCode.UNSET) {
82+
tags[statusCodeTagName] = String(api.SpanStatusCode[status.code]);
83+
}
84+
if (status.code === api.SpanStatusCode.ERROR && status.message) {
85+
tags[statusErrorTagName] = status.message;
8486
}
8587

8688
Object.keys(resource.attributes).forEach(

packages/opentelemetry-exporter-zipkin/src/zipkin.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import * as zipkinTypes from './types';
2222
import {
2323
toZipkinSpan,
2424
defaultStatusCodeTagName,
25-
defaultStatusDescriptionTagName,
25+
defaultStatusErrorTagName,
2626
} from './transform';
2727
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
2828
import { prepareGetHeaders } from './utils';
@@ -47,7 +47,7 @@ export class ZipkinExporter implements SpanExporter {
4747
this._serviceName = config.serviceName;
4848
this._statusCodeTagName = config.statusCodeTagName || defaultStatusCodeTagName;
4949
this._statusDescriptionTagName =
50-
config.statusDescriptionTagName || defaultStatusDescriptionTagName;
50+
config.statusDescriptionTagName || defaultStatusErrorTagName;
5151
this._isShutdown = false;
5252
if (typeof config.getExportRequestHeaders === 'function') {
5353
this._getHeaders = prepareGetHeaders(config.getExportRequestHeaders);

packages/opentelemetry-exporter-zipkin/test/common/transform.test.ts

+8-12
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import * as assert from 'assert';
2626
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
2727
import {
2828
defaultStatusCodeTagName,
29-
defaultStatusDescriptionTagName,
29+
defaultStatusErrorTagName,
3030
toZipkinSpan,
3131
_toZipkinAnnotations,
3232
_toZipkinTags,
@@ -79,7 +79,7 @@ describe('transform', () => {
7979
span,
8080
'my-service',
8181
defaultStatusCodeTagName,
82-
defaultStatusDescriptionTagName
82+
defaultStatusErrorTagName
8383
);
8484
assert.deepStrictEqual(zipkinSpan, {
8585
kind: 'SERVER',
@@ -101,7 +101,6 @@ describe('transform', () => {
101101
tags: {
102102
key1: 'value1',
103103
key2: 'value2',
104-
[defaultStatusCodeTagName]: 'UNSET',
105104
[SemanticResourceAttributes.SERVICE_NAME]: 'zipkin-test',
106105
'telemetry.sdk.language': language,
107106
'telemetry.sdk.name': 'opentelemetry',
@@ -125,7 +124,7 @@ describe('transform', () => {
125124
span,
126125
'my-service',
127126
defaultStatusCodeTagName,
128-
defaultStatusDescriptionTagName
127+
defaultStatusErrorTagName
129128
);
130129
assert.deepStrictEqual(zipkinSpan, {
131130
kind: 'SERVER',
@@ -140,7 +139,6 @@ describe('transform', () => {
140139
name: span.name,
141140
parentId: undefined,
142141
tags: {
143-
[defaultStatusCodeTagName]: 'UNSET',
144142
[SemanticResourceAttributes.SERVICE_NAME]: 'zipkin-test',
145143
'telemetry.sdk.language': language,
146144
'telemetry.sdk.name': 'opentelemetry',
@@ -174,7 +172,7 @@ describe('transform', () => {
174172
span,
175173
'my-service',
176174
defaultStatusCodeTagName,
177-
defaultStatusDescriptionTagName
175+
defaultStatusErrorTagName
178176
);
179177
assert.deepStrictEqual(zipkinSpan, {
180178
kind: item.zipkin,
@@ -189,7 +187,6 @@ describe('transform', () => {
189187
name: span.name,
190188
parentId: undefined,
191189
tags: {
192-
[defaultStatusCodeTagName]: 'UNSET',
193190
[SemanticResourceAttributes.SERVICE_NAME]: 'zipkin-test',
194191
'telemetry.sdk.language': language,
195192
'telemetry.sdk.name': 'opentelemetry',
@@ -220,14 +217,13 @@ describe('transform', () => {
220217
span.attributes,
221218
span.status,
222219
defaultStatusCodeTagName,
223-
defaultStatusDescriptionTagName,
220+
defaultStatusErrorTagName,
224221
DUMMY_RESOURCE
225222
);
226223

227224
assert.deepStrictEqual(tags, {
228225
key1: 'value1',
229226
key2: 'value2',
230-
[defaultStatusCodeTagName]: 'UNSET',
231227
cost: '112.12',
232228
service: 'ui',
233229
version: '1',
@@ -255,7 +251,7 @@ describe('transform', () => {
255251
span.attributes,
256252
span.status,
257253
defaultStatusCodeTagName,
258-
defaultStatusDescriptionTagName,
254+
defaultStatusErrorTagName,
259255
Resource.empty().merge(
260256
new Resource({
261257
[SemanticResourceAttributes.SERVICE_NAME]: 'zipkin-test',
@@ -292,7 +288,7 @@ describe('transform', () => {
292288
span.attributes,
293289
span.status,
294290
defaultStatusCodeTagName,
295-
defaultStatusDescriptionTagName,
291+
defaultStatusErrorTagName,
296292
Resource.empty().merge(
297293
new Resource({
298294
[SemanticResourceAttributes.SERVICE_NAME]: 'zipkin-test',
@@ -304,7 +300,7 @@ describe('transform', () => {
304300
key1: 'value1',
305301
key2: 'value2',
306302
[defaultStatusCodeTagName]: 'ERROR',
307-
[defaultStatusDescriptionTagName]: status.message,
303+
[defaultStatusErrorTagName]: status.message,
308304
[SemanticResourceAttributes.SERVICE_NAME]: 'zipkin-test',
309305
});
310306
});

packages/opentelemetry-exporter-zipkin/test/helper.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export function ensureSpanIsCorrect(span: Span) {
7171
localEndpoint: { serviceName: 'OpenTelemetry Service' },
7272
tags: {
7373
component: 'foo',
74-
'ot.status_code': 'OK',
74+
'otel.status_code': 'OK',
7575
service: 'ui',
7676
version: '1',
7777
cost: '112.12',

packages/opentelemetry-exporter-zipkin/test/node/zipkin.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ describe('Zipkin Exporter - node', () => {
215215
tags: {
216216
key1: 'value1',
217217
key2: 'value2',
218-
'ot.status_code': 'OK',
218+
'otel.status_code': 'OK',
219219
},
220220
timestamp: startTime * MICROS_PER_SECS,
221221
traceId: span1.spanContext().traceId,
@@ -230,7 +230,7 @@ describe('Zipkin Exporter - node', () => {
230230
},
231231
name: span2.name,
232232
tags: {
233-
'ot.status_code': 'OK',
233+
'otel.status_code': 'OK',
234234
},
235235
timestamp: hrTimeToMicroseconds([startTime, 0]),
236236
traceId: span2.spanContext().traceId,

0 commit comments

Comments
 (0)