From 6cb4e1cc94e3201c115068ea0e2ca87c1caaa37f Mon Sep 17 00:00:00 2001 From: Daniel Dyla Date: Tue, 28 Jan 2020 10:13:24 -0500 Subject: [PATCH 1/2] fix: left pad jaeger trace ids --- .../src/transform.ts | 5 ++-- .../test/transform.test.ts | 26 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/packages/opentelemetry-exporter-jaeger/src/transform.ts b/packages/opentelemetry-exporter-jaeger/src/transform.ts index 01451b9e961..996ba7aced1 100644 --- a/packages/opentelemetry-exporter-jaeger/src/transform.ts +++ b/packages/opentelemetry-exporter-jaeger/src/transform.ts @@ -40,8 +40,9 @@ const DEFAULT_FLAGS = 0x1; * @param span Span to be translated */ export function spanToThrift(span: ReadableSpan): ThriftSpan { - const traceIdHigh = span.spanContext.traceId.slice(0, 16); - const traceIdLow = span.spanContext.traceId.slice(16); + const traceId = span.spanContext.traceId.padStart(32, '0'); + const traceIdHigh = traceId.slice(0, 16); + const traceIdLow = traceId.slice(16); const parentSpan = span.parentSpanId ? Utils.encodeInt64(span.parentSpanId) : ThriftUtils.emptyBuffer; diff --git a/packages/opentelemetry-exporter-jaeger/test/transform.test.ts b/packages/opentelemetry-exporter-jaeger/test/transform.test.ts index bce206264e9..3fcba5f37e9 100644 --- a/packages/opentelemetry-exporter-jaeger/test/transform.test.ts +++ b/packages/opentelemetry-exporter-jaeger/test/transform.test.ts @@ -219,5 +219,31 @@ describe('transform', () => { assert.strictEqual(ref1.spanId.toString('hex'), '3e0c63257de34c92'); assert.strictEqual(ref1.refType, ThriftReferenceType.CHILD_OF); }); + + it('should left pad trace ids', () => { + const readableSpan: ReadableSpan = { + name: 'my-span1', + kind: types.SpanKind.CLIENT, + spanContext: { + traceId: '92b449d5929fda1b', + spanId: '6e0c63257de34c92', + }, + startTime: [1566156729, 709], + endTime: [1566156731, 709], + status: { + code: types.CanonicalCode.DATA_LOSS, + message: 'data loss', + }, + attributes: {}, + links: [], + events: [], + duration: [32, 800000000], + }; + + const thriftSpan = spanToThrift(readableSpan); + + assert.strictEqual(thriftSpan.traceIdLow.toString('hex'), '92b449d5929fda1b'); + assert.strictEqual(thriftSpan.traceIdHigh.toString('hex'), '0000000000000000'); + }); }); }); From 70537200a14bef579f8af0ff9605b18752151eea Mon Sep 17 00:00:00 2001 From: Daniel Dyla Date: Wed, 29 Jan 2020 09:01:20 -0500 Subject: [PATCH 2/2] chore: lint --- .../test/transform.test.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/opentelemetry-exporter-jaeger/test/transform.test.ts b/packages/opentelemetry-exporter-jaeger/test/transform.test.ts index 3fcba5f37e9..3dac58ecc98 100644 --- a/packages/opentelemetry-exporter-jaeger/test/transform.test.ts +++ b/packages/opentelemetry-exporter-jaeger/test/transform.test.ts @@ -242,8 +242,14 @@ describe('transform', () => { const thriftSpan = spanToThrift(readableSpan); - assert.strictEqual(thriftSpan.traceIdLow.toString('hex'), '92b449d5929fda1b'); - assert.strictEqual(thriftSpan.traceIdHigh.toString('hex'), '0000000000000000'); + assert.strictEqual( + thriftSpan.traceIdLow.toString('hex'), + '92b449d5929fda1b' + ); + assert.strictEqual( + thriftSpan.traceIdHigh.toString('hex'), + '0000000000000000' + ); }); }); });