Skip to content

Commit 807a56d

Browse files
authored
fix: add exported const of NoopSpan instance (open-telemetry#139)
* fix: add exported const of NoopSpan instance * fix: add INVALID_SPAN_CONTEXT as default value * fix: remove instance suffix
1 parent 7b46da2 commit 807a56d

File tree

5 files changed

+19
-17
lines changed

5 files changed

+19
-17
lines changed

packages/opentelemetry-basic-tracer/src/BasicTracer.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
NoopSpan,
2323
randomSpanId,
2424
randomTraceId,
25-
INVALID_SPAN_CONTEXT,
25+
NOOP_SPAN,
2626
ALWAYS_SAMPLER,
2727
} from '@opentelemetry/core';
2828
import { BasicTracerConfig } from '../src/types';
@@ -32,13 +32,11 @@ import { BinaryFormat, HttpTextFormat } from '@opentelemetry/types';
3232
* This class represents a basic tracer.
3333
*/
3434
export class BasicTracer implements types.Tracer {
35-
static defaultSpan = new NoopSpan(INVALID_SPAN_CONTEXT);
36-
37-
private _defaultAttributes: types.Attributes;
38-
private _binaryFormat: types.BinaryFormat;
39-
private _httpTextFormat: types.HttpTextFormat;
40-
private _sampler: types.Sampler;
41-
private _scopeManager: ScopeManager;
35+
private readonly _defaultAttributes: types.Attributes;
36+
private readonly _binaryFormat: types.BinaryFormat;
37+
private readonly _httpTextFormat: types.HttpTextFormat;
38+
private readonly _sampler: types.Sampler;
39+
private readonly _scopeManager: ScopeManager;
4240

4341
/**
4442
* Constructs a new Tracer instance.
@@ -74,7 +72,7 @@ export class BasicTracer implements types.Tracer {
7472
if (!this._sampler.shouldSample(parentSpanContext)) {
7573
// TODO: propagate SpanContext, for more information see
7674
// https://github.com/open-telemetry/opentelemetry-js/pull/99#issuecomment-513325536
77-
return BasicTracer.defaultSpan;
75+
return NOOP_SPAN;
7876
}
7977

8078
// span context

packages/opentelemetry-basic-tracer/test/BasicTracer.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
ALWAYS_SAMPLER,
2323
NEVER_SAMPLER,
2424
NoopLogger,
25+
NOOP_SPAN,
2526
} from '@opentelemetry/core';
2627
import { NoopScopeManager } from '@opentelemetry/scope-base';
2728

@@ -101,7 +102,7 @@ describe('BasicTracer', () => {
101102
scopeManager: new NoopScopeManager(),
102103
});
103104
const span = tracer.startSpan('my-span');
104-
assert.deepStrictEqual(span, BasicTracer.defaultSpan);
105+
assert.deepStrictEqual(span, NOOP_SPAN);
105106
});
106107

107108
// @todo: implement

packages/opentelemetry-core/src/trace/NoopSpan.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@
1616

1717
import * as types from '@opentelemetry/types';
1818
import { SpanContext } from '@opentelemetry/types';
19+
import { INVALID_SPAN_CONTEXT } from '../trace/spancontext-utils';
1920

2021
/**
2122
* The NoopSpan is the default {@link Span} that is used when no Span
22-
* implementation is available. All operations are no-op except context
23+
* implementation is available. All operations are no-op including context
2324
* propagation.
2425
*/
2526
export class NoopSpan implements types.Span {
26-
constructor(private readonly _spanContext: SpanContext) {}
27+
constructor(
28+
private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT
29+
) {}
2730

2831
// Returns a SpanContext.
2932
context(): types.SpanContext {
@@ -68,3 +71,5 @@ export class NoopSpan implements types.Span {
6871
return false;
6972
}
7073
}
74+
75+
export const NOOP_SPAN = new NoopSpan();

packages/opentelemetry-core/src/trace/NoopTracer.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@ import {
2323
} from '@opentelemetry/types';
2424
import { NOOP_HTTP_TEXT_FORMAT } from '../context/propagation/NoopHttpTextFormat';
2525
import { NOOP_BINARY_FORMAT } from '../context/propagation/NoopBinaryFormat';
26-
import { NoopSpan } from './NoopSpan';
27-
import { INVALID_SPAN_CONTEXT } from './spancontext-utils';
28-
29-
export const NOOP_SPAN = new NoopSpan(INVALID_SPAN_CONTEXT);
26+
import { NOOP_SPAN } from './NoopSpan';
3027

3128
/**
3229
* No-op implementations of {@link Tracer}.

packages/opentelemetry-core/test/trace/NoopTracer.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
*/
1616

1717
import * as assert from 'assert';
18-
import { NoopTracer, NOOP_SPAN } from '../../src/trace/NoopTracer';
18+
import { NoopTracer } from '../../src/trace/NoopTracer';
19+
import { NOOP_SPAN } from '../../src/trace/NoopSpan';
1920
import { SpanKind } from '@opentelemetry/types';
2021

2122
describe('NoopTracer', () => {

0 commit comments

Comments
 (0)