Skip to content

Commit daff102

Browse files
authored
fix(jaeger-exporter): export SpanKind as Tag (open-telemetry#596)
1 parent 811d7a6 commit daff102

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
import { Link, CanonicalCode } from '@opentelemetry/types';
17+
import { Link, CanonicalCode, SpanKind } from '@opentelemetry/types';
1818
import { ReadableSpan } from '@opentelemetry/tracing';
1919
import {
2020
hrTimeToMilliseconds,
@@ -59,6 +59,11 @@ export function spanToThrift(span: ReadableSpan): ThriftSpan {
5959
if (span.status.code !== CanonicalCode.OK) {
6060
tags.push({ key: 'error', value: true });
6161
}
62+
63+
if (span.kind !== undefined) {
64+
tags.push({ key: 'span.kind', value: SpanKind[span.kind] });
65+
}
66+
6267
const spanTags: ThriftTag[] = ThriftUtils.getThriftTags(tags);
6368

6469
const logs = span.events.map(

packages/opentelemetry-exporter-jaeger/test/transform.test.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ describe('transform', () => {
9090
thriftSpan.startTime,
9191
Utils.encodeInt64(hrTimeToMicroseconds(readableSpan.startTime))
9292
);
93-
assert.strictEqual(thriftSpan.tags.length, 5);
94-
const [tag1, tag2, tag3, tag4, tag5] = thriftSpan.tags;
93+
assert.strictEqual(thriftSpan.tags.length, 6);
94+
const [tag1, tag2, tag3, tag4, tag5, tag6] = thriftSpan.tags;
9595
assert.strictEqual(tag1.key, 'testBool');
9696
assert.strictEqual(tag1.vType, 'BOOL');
9797
assert.strictEqual(tag1.vBool, true);
@@ -107,6 +107,9 @@ describe('transform', () => {
107107
assert.strictEqual(tag5.key, 'status.name');
108108
assert.strictEqual(tag5.vType, 'STRING');
109109
assert.strictEqual(tag5.vStr, 'OK');
110+
assert.strictEqual(tag6.key, 'span.kind');
111+
assert.strictEqual(tag6.vType, 'STRING');
112+
assert.strictEqual(tag6.vStr, 'INTERNAL');
110113
assert.strictEqual(thriftSpan.references.length, 0);
111114

112115
assert.strictEqual(thriftSpan.logs.length, 1);
@@ -157,8 +160,8 @@ describe('transform', () => {
157160
assert.deepStrictEqual(thriftSpan.parentSpanId, ThriftUtils.emptyBuffer);
158161
assert.deepStrictEqual(thriftSpan.flags, 1);
159162
assert.strictEqual(thriftSpan.references.length, 0);
160-
assert.strictEqual(thriftSpan.tags.length, 4);
161-
const [tag1, tag2, tag3, tag4] = thriftSpan.tags;
163+
assert.strictEqual(thriftSpan.tags.length, 5);
164+
const [tag1, tag2, tag3, tag4, tag5] = thriftSpan.tags;
162165
assert.strictEqual(tag1.key, 'status.code');
163166
assert.strictEqual(tag1.vType, 'DOUBLE');
164167
assert.strictEqual(tag1.vDouble, 15);
@@ -171,6 +174,9 @@ describe('transform', () => {
171174
assert.strictEqual(tag4.key, 'error');
172175
assert.strictEqual(tag4.vType, 'BOOL');
173176
assert.strictEqual(tag4.vBool, true);
177+
assert.strictEqual(tag5.key, 'span.kind');
178+
assert.strictEqual(tag5.vType, 'STRING');
179+
assert.strictEqual(tag5.vStr, 'CLIENT');
174180
assert.strictEqual(thriftSpan.logs.length, 0);
175181
});
176182

0 commit comments

Comments
 (0)