From 4f2a64ae98a566e5bfed91ba54b8e3c10dd1c591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= <18708370+Flarna@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:08:56 +0100 Subject: [PATCH] fix: add parentContext to onStart Add parentContext argument to onStart in SpanProcessors to allow to use it in a subclass without complains by typescript. --- .../src/export/BatchSpanProcessorBase.ts | 4 +-- .../src/export/SimpleSpanProcessor.ts | 4 +-- .../export/BatchSpanProcessorBase.test.ts | 34 +++++++++---------- .../common/export/SimpleSpanProcessor.test.ts | 8 ++--- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/packages/opentelemetry-sdk-trace-base/src/export/BatchSpanProcessorBase.ts b/packages/opentelemetry-sdk-trace-base/src/export/BatchSpanProcessorBase.ts index 1c32c83d894..e6417d84afc 100644 --- a/packages/opentelemetry-sdk-trace-base/src/export/BatchSpanProcessorBase.ts +++ b/packages/opentelemetry-sdk-trace-base/src/export/BatchSpanProcessorBase.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { context, TraceFlags } from '@opentelemetry/api'; +import { context, Context, TraceFlags } from '@opentelemetry/api'; import { BindOnceFuture, ExportResultCode, @@ -73,7 +73,7 @@ export abstract class BatchSpanProcessorBase implements } // does nothing. - onStart(_span: Span): void {} + onStart(_span: Span, _parentContext: Context): void {} onEnd(span: ReadableSpan): void { if (this._shutdownOnce.isCalled) { diff --git a/packages/opentelemetry-sdk-trace-base/src/export/SimpleSpanProcessor.ts b/packages/opentelemetry-sdk-trace-base/src/export/SimpleSpanProcessor.ts index c87b8648259..c775bdf6d4c 100644 --- a/packages/opentelemetry-sdk-trace-base/src/export/SimpleSpanProcessor.ts +++ b/packages/opentelemetry-sdk-trace-base/src/export/SimpleSpanProcessor.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { context, TraceFlags } from '@opentelemetry/api'; +import { context, Context, TraceFlags } from '@opentelemetry/api'; import { ExportResultCode, globalErrorHandler, @@ -45,7 +45,7 @@ export class SimpleSpanProcessor implements SpanProcessor { } // does nothing. - onStart(_span: Span): void {} + onStart(_span: Span, _parentContext: Context): void {} onEnd(span: ReadableSpan): void { if (this._shutdownOnce.isCalled) { diff --git a/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts index 42a7aa3fd5f..817b5bc3763 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { diag } from '@opentelemetry/api'; +import { diag, ROOT_CONTEXT } from '@opentelemetry/api'; import { AlwaysOnSampler, ExportResultCode, @@ -131,14 +131,14 @@ describe('BatchSpanProcessorBase', () => { const span = createSampledSpan(`${name}_0`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); assert.strictEqual(processor['_finishedSpans'].length, 1); await processor.forceFlush(); assert.strictEqual(exporter.getFinishedSpans().length, 1); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); assert.strictEqual(processor['_finishedSpans'].length, 1); @@ -147,7 +147,7 @@ describe('BatchSpanProcessorBase', () => { assert.strictEqual(spy.args.length, 2); assert.strictEqual(exporter.getFinishedSpans().length, 0); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); assert.strictEqual(spy.args.length, 2); assert.strictEqual(processor['_finishedSpans'].length, 0); @@ -160,7 +160,7 @@ describe('BatchSpanProcessorBase', () => { const span = createUnsampledSpan(`${name}_0`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); await processor.forceFlush(); @@ -174,14 +174,14 @@ describe('BatchSpanProcessorBase', () => { const processor = new BatchSpanProcessor(exporter, defaultBufferConfig); for (let i = 0; i < defaultBufferConfig.maxExportBatchSize; i++) { const span = createSampledSpan(`${name}_${i}`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); assert.strictEqual(exporter.getFinishedSpans().length, 0); processor.onEnd(span); assert.strictEqual(exporter.getFinishedSpans().length, 0); } const span = createSampledSpan(`${name}_6`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); setTimeout(async () => { @@ -199,7 +199,7 @@ describe('BatchSpanProcessorBase', () => { const processor = new BatchSpanProcessor(exporter, defaultBufferConfig); for (let i = 0; i < defaultBufferConfig.maxExportBatchSize; i++) { const span = createSampledSpan(`${name}_${i}`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); assert.strictEqual(exporter.getFinishedSpans().length, 0); } @@ -218,7 +218,7 @@ describe('BatchSpanProcessorBase', () => { const processor = new BatchSpanProcessor(exporter, defaultBufferConfig); for (let i = 0; i < defaultBufferConfig.maxExportBatchSize; i++) { const span = createSampledSpan(`${name}_${i}`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); } assert.strictEqual(exporter.getFinishedSpans().length, 0); @@ -238,7 +238,7 @@ describe('BatchSpanProcessorBase', () => { // start but do not end spans for (let i = 0; i < defaultBufferConfig.maxExportBatchSize; i++) { const span = tracer.startSpan('spanName'); - processor.onStart(span as Span); + processor.onStart(span as Span, ROOT_CONTEXT); } setTimeout(() => { @@ -266,11 +266,11 @@ describe('BatchSpanProcessorBase', () => { const totalSpans = defaultBufferConfig.maxExportBatchSize * 2; for (let i = 0; i < totalSpans; i++) { const span = createSampledSpan(`${name}_${i}`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); } const span = createSampledSpan(`${name}_last`); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); clock.tick(defaultBufferConfig.scheduledDelayMillis + 10); @@ -326,7 +326,7 @@ describe('BatchSpanProcessorBase', () => { it('should call an async callback when flushing is complete', done => { const span = createSampledSpan('test'); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); processor.forceFlush().then(() => { assert.strictEqual(exporter.getFinishedSpans().length, 1); @@ -343,7 +343,7 @@ describe('BatchSpanProcessorBase', () => { }, 0); }); const span = createSampledSpan('test'); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); processor.shutdown().then(() => { @@ -367,7 +367,7 @@ describe('BatchSpanProcessorBase', () => { for (let i = 0; i < defaultBufferConfig.maxExportBatchSize; i++) { const span = createSampledSpan('test'); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); } @@ -402,7 +402,7 @@ describe('BatchSpanProcessorBase', () => { const processor = new BatchSpanProcessor(testTracingExporter); const span = createSampledSpan('test'); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); processor.forceFlush().then(() => { @@ -429,7 +429,7 @@ describe('BatchSpanProcessorBase', () => { it('should drop spans', () => { const span = createSampledSpan('test'); for (let i = 0, j = 20; i < j; i++) { - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); } assert.equal(processor['_finishedSpans'].length, 6); diff --git a/packages/opentelemetry-sdk-trace-base/test/common/export/SimpleSpanProcessor.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/export/SimpleSpanProcessor.test.ts index 52fd2979ce5..b127502ad8a 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/export/SimpleSpanProcessor.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/export/SimpleSpanProcessor.test.ts @@ -68,7 +68,7 @@ describe('SimpleSpanProcessor', () => { spanContext, SpanKind.CLIENT ); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); assert.strictEqual(exporter.getFinishedSpans().length, 0); processor.onEnd(span); @@ -92,7 +92,7 @@ describe('SimpleSpanProcessor', () => { spanContext, SpanKind.CLIENT ); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); assert.strictEqual(exporter.getFinishedSpans().length, 0); processor.onEnd(span); @@ -117,7 +117,7 @@ describe('SimpleSpanProcessor', () => { spanContext, SpanKind.CLIENT ); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); sinon.stub(exporter, 'export').callsFake((_, callback) => { setTimeout(() => { @@ -195,7 +195,7 @@ describe('SimpleSpanProcessor', () => { SpanKind.CLIENT ); - processor.onStart(span); + processor.onStart(span, ROOT_CONTEXT); processor.onEnd(span); const exporterCreatedSpans = testTracingExporter.getExporterCreatedSpans();