Skip to content

Commit 8b4c773

Browse files
committed
Replace sdk-trace-base with sdk-trace-node
1 parent bfec4f9 commit 8b4c773

23 files changed

+82
-58
lines changed

packages/node/src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Span as WriteableSpan } from '@opentelemetry/api';
22
import type { Instrumentation } from '@opentelemetry/instrumentation';
3-
import type { ReadableSpan, SpanProcessor } from '@opentelemetry/sdk-trace-base';
3+
import type { ReadableSpan, SpanProcessor } from '@opentelemetry/sdk-trace-node';
44
import type { ClientOptions, Options, SamplingContext, Scope, Span, TracePropagationTargets } from '@sentry/core';
55

66
import type { NodeTransportOptions } from './transports';

packages/node/test/helpers/mockSdkInit.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ProxyTracerProvider, context, propagation, trace } from '@opentelemetry/api';
2-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
2+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
33
import { getClient, getCurrentScope, getGlobalScope, getIsolationScope } from '@sentry/core';
44
import type { NodeClient } from '../../src';
55

@@ -27,7 +27,7 @@ export function mockSdkInit(options?: Partial<NodeClientOptions>) {
2727
});
2828
}
2929

30-
export function cleanupOtel(_provider?: BasicTracerProvider): void {
30+
export function cleanupOtel(_provider?: NodeTracerProvider): void {
3131
const provider = getProvider(_provider);
3232

3333
if (!provider) {
@@ -43,14 +43,14 @@ export function cleanupOtel(_provider?: BasicTracerProvider): void {
4343
propagation.disable();
4444
}
4545

46-
export function getProvider(_provider?: BasicTracerProvider): BasicTracerProvider | undefined {
46+
export function getProvider(_provider?: NodeTracerProvider): NodeTracerProvider | undefined {
4747
let provider = _provider || getClient<NodeClient>()?.traceProvider || trace.getTracerProvider();
4848

4949
if (provider instanceof ProxyTracerProvider) {
5050
provider = provider.getDelegate();
5151
}
5252

53-
if (!(provider instanceof BasicTracerProvider)) {
53+
if (!(provider instanceof NodeTracerProvider)) {
5454
return undefined;
5555
}
5656

packages/node/test/integration/transactions.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TraceFlags, context, trace } from '@opentelemetry/api';
2-
import type { SpanProcessor } from '@opentelemetry/sdk-trace-base';
2+
import type { SpanProcessor } from '@opentelemetry/sdk-trace-node';
33
import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';
44
import { logger } from '@sentry/core';
55
import type { TransactionEvent } from '@sentry/core';

packages/opentelemetry/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@
4646
"@opentelemetry/context-async-hooks": "^2.0.0-dev.0",
4747
"@opentelemetry/core": "^2.0.0-dev.0",
4848
"@opentelemetry/instrumentation": "^0.200.0-dev.0",
49-
"@opentelemetry/sdk-trace-base": "^2.0.0-dev.0",
49+
"@opentelemetry/sdk-trace-node": "^2.0.0-dev.0",
5050
"@opentelemetry/semantic-conventions": "^1.28.0"
5151
},
5252
"devDependencies": {
5353
"@opentelemetry/api": "^1.9.0",
5454
"@opentelemetry/context-async-hooks": "^2.0.0-dev.0",
5555
"@opentelemetry/core": "^2.0.0-dev.0",
5656
"@opentelemetry/instrumentation": "^0.200.0-dev.0",
57-
"@opentelemetry/sdk-trace-base": "^2.0.0-dev.0",
57+
"@opentelemetry/sdk-trace-node": "^2.0.0-dev.0",
5858
"@opentelemetry/semantic-conventions": "^1.30.0"
5959
},
6060
"scripts": {

packages/opentelemetry/src/custom/client.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Tracer } from '@opentelemetry/api';
22
import { trace } from '@opentelemetry/api';
3-
import type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
3+
import type { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
44
import type { Client } from '@sentry/core';
55
import { SDK_VERSION } from '@sentry/core';
66
import type { OpenTelemetryClient as OpenTelemetryClientInterface } from '../types';
@@ -23,7 +23,7 @@ export function wrapClientClass<
2323
>(ClientClass: ClassConstructor): WrappedClassConstructor {
2424
// @ts-expect-error We just assume that this is non-abstract, if you pass in an abstract class this would make it non-abstract
2525
class OpenTelemetryClient extends ClientClass implements OpenTelemetryClientInterface {
26-
public traceProvider: BasicTracerProvider | undefined;
26+
public traceProvider: NodeTracerProvider | undefined;
2727
private _tracer: Tracer | undefined;
2828

2929
public constructor(...args: any[]) {

packages/opentelemetry/src/sampler.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import type { Context, Span, TraceState as TraceStateInterface } from '@opentelemetry/api';
33
import { SpanKind, isSpanContextValid, trace } from '@opentelemetry/api';
44
import { TraceState } from '@opentelemetry/core';
5-
import type { Sampler, SamplingResult } from '@opentelemetry/sdk-trace-base';
6-
import { SamplingDecision } from '@opentelemetry/sdk-trace-base';
5+
import type { Sampler, SamplingResult } from '@opentelemetry/sdk-trace-node';
6+
import { SamplingDecision } from '@opentelemetry/sdk-trace-node';
77
import {
88
ATTR_HTTP_REQUEST_METHOD,
99
ATTR_URL_FULL,

packages/opentelemetry/src/spanExporter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable max-lines */
22
import type { Span } from '@opentelemetry/api';
33
import { SpanKind } from '@opentelemetry/api';
4-
import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';
4+
import type { ReadableSpan } from '@opentelemetry/sdk-trace-node';
55
import { ATTR_HTTP_RESPONSE_STATUS_CODE, SEMATTRS_HTTP_STATUS_CODE } from '@opentelemetry/semantic-conventions';
66
import type {
77
SpanAttributes,

packages/opentelemetry/src/spanProcessor.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Context } from '@opentelemetry/api';
22
import { ROOT_CONTEXT, trace } from '@opentelemetry/api';
3-
import type { ReadableSpan, Span, SpanProcessor as SpanProcessorInterface } from '@opentelemetry/sdk-trace-base';
3+
import type { ReadableSpan, Span, SpanProcessor as SpanProcessorInterface } from '@opentelemetry/sdk-trace-node';
44
import {
55
addChildSpanToSpan,
66
getClient,

packages/opentelemetry/src/types.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import type { Span as WriteableSpan, SpanKind, Tracer } from '@opentelemetry/api';
2-
import type { BasicTracerProvider, ReadableSpan } from '@opentelemetry/sdk-trace-base';
2+
import type { NodeTracerProvider, ReadableSpan } from '@opentelemetry/sdk-trace-node';
33
import type { Scope, Span, StartSpanOptions } from '@sentry/core';
44

55
export interface OpenTelemetryClient {
66
tracer: Tracer;
7-
traceProvider: BasicTracerProvider | undefined;
7+
traceProvider: NodeTracerProvider | undefined;
88
}
99

1010
export interface OpenTelemetrySpanContext extends StartSpanOptions {

packages/opentelemetry/src/utils/getRequestSpanData.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Span } from '@opentelemetry/api';
2-
import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';
2+
import type { ReadableSpan } from '@opentelemetry/sdk-trace-node';
33
import {
44
ATTR_HTTP_REQUEST_METHOD,
55
ATTR_URL_FULL,

packages/opentelemetry/src/utils/groupSpansWithParents.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';
1+
import type { ReadableSpan } from '@opentelemetry/sdk-trace-node';
22
import { SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE } from '../semanticAttributes';
33

44
export interface SpanNode {

packages/opentelemetry/src/utils/spanTypes.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import type {SpanContext, SpanKind, SpanStatus} from '@opentelemetry/api';
2-
import type { ReadableSpan, TimedEvent } from '@opentelemetry/sdk-trace-base';
1+
import type { SpanContext, SpanKind, SpanStatus } from '@opentelemetry/api';
2+
import type { ReadableSpan, TimedEvent } from '@opentelemetry/sdk-trace-node';
33

44
import type { AbstractSpan } from '../types';
55

packages/opentelemetry/test/asyncContextStrategy.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
1+
import type { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
22
import {
33
Scope as ScopeClass,
44
getCurrentScope,
@@ -16,7 +16,7 @@ import { setupOtel } from './helpers/initOtel';
1616
import { cleanupOtel } from './helpers/mockSdkInit';
1717

1818
describe('asyncContextStrategy', () => {
19-
let provider: BasicTracerProvider | undefined;
19+
let provider: NodeTracerProvider | undefined;
2020

2121
beforeEach(() => {
2222
getCurrentScope().clear();
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import type { Context, SpanContext, TimeInput } from '@opentelemetry/api';
1+
import type { SpanContext, TimeInput } from '@opentelemetry/api';
22
import { SpanKind } from '@opentelemetry/api';
3-
import type { Tracer } from '@opentelemetry/sdk-trace-base';
4-
import { Span } from '@opentelemetry/sdk-trace-base';
3+
import type { SpanProcessor } from '@opentelemetry/sdk-trace-node';
4+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
55
import { uuid4 } from '@sentry/core';
66

77
export function createSpan(
@@ -17,24 +17,50 @@ export function createSpan(
1717
traceId?: string;
1818
startTime?: TimeInput;
1919
} = {},
20-
): Span {
21-
const spanProcessor = {
20+
) {
21+
const spanProcessor: SpanProcessor = {
2222
onStart: () => {},
2323
onEnd: () => {},
24+
forceFlush: (() => {}) as () => Promise<void>,
25+
shutdown: (() => {}) as () => Promise<void>,
26+
};
27+
28+
const provider = new NodeTracerProvider({
29+
spanLimits: {},
30+
spanProcessors: [spanProcessor],
31+
});
32+
33+
const tracer = provider.getTracer('test-instrumentation-library');
34+
35+
// const tracer = {
36+
// resource: 'test-resource',
37+
// instrumentationLibrary: 'test-instrumentation-library',
38+
// getSpanLimits: () => ({}),
39+
// getActiveSpanProcessor: () => spanProcessor,
40+
// } as unknown as Tracer;
41+
42+
const tId = traceId || uuid4();
43+
44+
const parentSpanContext: SpanContext = {
45+
spanId: parentSpanId || uuid4(),
46+
traceId: tId,
47+
traceFlags: 0,
2448
};
25-
const tracer = {
26-
resource: 'test-resource',
27-
instrumentationLibrary: 'test-instrumentation-library',
28-
getSpanLimits: () => ({}),
29-
getActiveSpanProcessor: () => spanProcessor,
30-
} as unknown as Tracer;
3149

3250
const spanContext: SpanContext = {
3351
spanId: spanId || uuid4(),
34-
traceId: traceId || uuid4(),
52+
traceId: tId,
3553
traceFlags: 0,
3654
};
3755

38-
// eslint-disable-next-line deprecation/deprecation
39-
return new Span(tracer, {} as Context, name || 'test', spanContext, SpanKind.INTERNAL, parentSpanId, [], startTime);
56+
return tracer.startSpan(
57+
name || 'test',
58+
{
59+
kind: SpanKind.INTERNAL,
60+
links: [],
61+
spanContext,
62+
startTime,
63+
},
64+
parentSpanContext,
65+
);
4066
}

packages/opentelemetry/test/helpers/mockSdkInit.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ProxyTracerProvider, context, propagation, trace } from '@opentelemetry/api';
2-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
2+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
33
import type { ClientOptions, Options } from '@sentry/core';
44
import { getClient } from '@sentry/core';
55

@@ -35,7 +35,7 @@ export function mockSdkInit(options?: Partial<ClientOptions>) {
3535
init({ dsn: PUBLIC_DSN, ...options });
3636
}
3737

38-
export async function cleanupOtel(_provider?: BasicTracerProvider): Promise<void> {
38+
export async function cleanupOtel(_provider?: NodeTracerProvider): Promise<void> {
3939
clearOpenTelemetrySetupCheck();
4040

4141
const provider = getProvider(_provider);
@@ -53,14 +53,14 @@ export async function cleanupOtel(_provider?: BasicTracerProvider): Promise<void
5353
await flush();
5454
}
5555

56-
export function getProvider(_provider?: BasicTracerProvider): BasicTracerProvider | undefined {
56+
export function getProvider(_provider?: NodeTracerProvider): NodeTracerProvider | undefined {
5757
let provider = _provider || getClient<OpenTelemetryClient>()?.traceProvider || trace.getTracerProvider();
5858

5959
if (provider instanceof ProxyTracerProvider) {
6060
provider = provider.getDelegate();
6161
}
6262

63-
if (!(provider instanceof BasicTracerProvider)) {
63+
if (!(provider instanceof NodeTracerProvider)) {
6464
return undefined;
6565
}
6666

packages/opentelemetry/test/integration/transactions.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { SpanContext } from '@opentelemetry/api';
22
import { ROOT_CONTEXT } from '@opentelemetry/api';
33
import { TraceFlags, context, trace } from '@opentelemetry/api';
4-
import type { SpanProcessor } from '@opentelemetry/sdk-trace-base';
4+
import type { SpanProcessor } from '@opentelemetry/sdk-trace-node';
55
import {
66
SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,
77
SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,

packages/opentelemetry/test/sampler.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { SpanKind, context, trace } from '@opentelemetry/api';
22
import { TraceState } from '@opentelemetry/core';
3-
import { SamplingDecision } from '@opentelemetry/sdk-trace-base';
3+
import { SamplingDecision } from '@opentelemetry/sdk-trace-node';
44
import { ATTR_HTTP_REQUEST_METHOD } from '@opentelemetry/semantic-conventions';
55
import { generateSpanId, generateTraceId } from '@sentry/core';
66
import { describe, afterEach, vi, expect, it } from 'vitest';

packages/opentelemetry/test/trace.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import type { Span, TimeInput } from '@opentelemetry/api';
33
import { ROOT_CONTEXT } from '@opentelemetry/api';
44
import { SpanKind } from '@opentelemetry/api';
55
import { TraceFlags, context, trace } from '@opentelemetry/api';
6-
import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';
7-
import { Span as SpanClass } from '@opentelemetry/sdk-trace-base';
6+
import type { ReadableSpan } from '@opentelemetry/sdk-trace-node';
7+
import { Span as SpanClass } from '@opentelemetry/sdk-trace-node';
88
import {
99
SEMANTIC_ATTRIBUTE_SENTRY_OP,
1010
SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,

packages/opentelemetry/test/utils/getActiveSpan.test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { trace } from '@opentelemetry/api';
2-
import type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
2+
import type { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
33
import { getRootSpan } from '@sentry/core';
44
import { describe, afterEach, beforeEach, expect, it } from 'vitest';
55

@@ -9,7 +9,7 @@ import { setupOtel } from '../helpers/initOtel';
99
import { cleanupOtel } from '../helpers/mockSdkInit';
1010

1111
describe('getActiveSpan', () => {
12-
let provider: BasicTracerProvider | undefined;
12+
let provider: NodeTracerProvider | undefined;
1313

1414
beforeEach(() => {
1515
const client = new TestClient(getDefaultTestClientOptions());
@@ -94,7 +94,7 @@ describe('getActiveSpan', () => {
9494
});
9595

9696
describe('getRootSpan', () => {
97-
let provider: BasicTracerProvider | undefined;
97+
let provider: NodeTracerProvider | undefined;
9898

9999
beforeEach(() => {
100100
const client = new TestClient(getDefaultTestClientOptions({ tracesSampleRate: 1 }));

packages/opentelemetry/test/utils/setupCheck.test.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
1+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
22
import { describe, afterEach, beforeEach, expect, it } from 'vitest';
33

44
import { SentrySampler } from '../../src/sampler';
@@ -9,7 +9,7 @@ import { setupOtel } from '../helpers/initOtel';
99
import { cleanupOtel } from '../helpers/mockSdkInit';
1010

1111
describe('openTelemetrySetupCheck', () => {
12-
let provider: BasicTracerProvider | undefined;
12+
let provider: NodeTracerProvider | undefined;
1313

1414
beforeEach(() => {
1515
cleanupOtel(provider);
@@ -34,12 +34,10 @@ describe('openTelemetrySetupCheck', () => {
3434

3535
it('returns partial setup parts', () => {
3636
const client = new TestClient(getDefaultTestClientOptions());
37-
provider = new BasicTracerProvider({
37+
provider = new NodeTracerProvider({
3838
sampler: new SentrySampler(client),
39+
spanProcessors: [new SentrySpanProcessor()],
3940
});
40-
// We want to test this deprecated case also works
41-
// eslint-disable-next-line deprecation/deprecation
42-
provider.addSpanProcessor(new SentrySpanProcessor());
4341

4442
const setup = openTelemetrySetupCheck();
4543
expect(setup).toEqual(['SentrySampler', 'SentrySpanProcessor']);

packages/opentelemetry/test/utils/setupEventContextTrace.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
1+
import type { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
22
import { captureException, setCurrentClient } from '@sentry/core';
33
import { describe, afterEach, beforeEach, expect, it, vi, afterAll } from 'vitest';
44

@@ -13,7 +13,7 @@ const PUBLIC_DSN = 'https://username@domain/123';
1313
describe('setupEventContextTrace', () => {
1414
const beforeSend = vi.fn(() => null);
1515
let client: TestClientInterface;
16-
let provider: BasicTracerProvider | undefined;
16+
let provider: NodeTracerProvider | undefined;
1717

1818
beforeEach(() => {
1919
client = new TestClient(

packages/vercel-edge/src/client.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { ServerRuntimeClientOptions } from '@sentry/core';
22
import { applySdkMetadata } from '@sentry/core';
33
import { ServerRuntimeClient } from '@sentry/core';
44

5-
import type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
5+
import type { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
66
import type { VercelEdgeClientOptions } from './types';
77

88
declare const process: {
@@ -16,7 +16,7 @@ declare const process: {
1616
* @see ServerRuntimeClient for usage documentation.
1717
*/
1818
export class VercelEdgeClient extends ServerRuntimeClient<VercelEdgeClientOptions> {
19-
public traceProvider: BasicTracerProvider | undefined;
19+
public traceProvider: NodeTracerProvider | undefined;
2020

2121
/**
2222
* Creates a new Vercel Edge Runtime SDK instance.

yarn.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -5995,7 +5995,7 @@
59955995
"@opentelemetry/api" "^0.12.0"
59965996
"@opentelemetry/core" "^0.12.0"
59975997

5998-
"@opentelemetry/[email protected]", "@opentelemetry/sdk-trace-base@^2.0.0-dev.0":
5998+
"@opentelemetry/[email protected]":
59995999
version "2.0.0-dev.0"
60006000
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.0.0-dev.0.tgz#320a259ea4332b4d9452e6bd309862c4c2d08e9e"
60016001
integrity sha512-zULpgNZNGS6LM+rI6fw2fraAVvIm3aI/DfcuwxRvPa6Yqf9kR7FQk1EdB8Tf2AJm+UWakGPpRbEhkv1KqPVu2w==

0 commit comments

Comments
 (0)