diff --git a/packages/node/src/sdk/initOtel.ts b/packages/node/src/sdk/initOtel.ts index 27423a3d033a..5cd50e2711c1 100644 --- a/packages/node/src/sdk/initOtel.ts +++ b/packages/node/src/sdk/initOtel.ts @@ -1,5 +1,5 @@ import moduleModule from 'module'; -import { DiagLogLevel, diag } from '@opentelemetry/api'; +import { DiagLogLevel, context, diag, propagation, trace } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; import type { SpanProcessor } from '@opentelemetry/sdk-trace-base'; import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'; @@ -127,11 +127,10 @@ export function setupOtel(client: NodeClient, options: AdditionalOpenTelemetryOp ], }); - // Initialize the provider - provider.register({ - propagator: new SentryPropagator(), - contextManager: new SentryContextManager(), - }); + // Register as globals + trace.setGlobalTracerProvider(provider); + propagation.setGlobalPropagator(new SentryPropagator()); + context.setGlobalContextManager(new SentryContextManager()); return provider; } diff --git a/packages/opentelemetry/README.md b/packages/opentelemetry/README.md index bc4266c85ce0..86a644f5c467 100644 --- a/packages/opentelemetry/README.md +++ b/packages/opentelemetry/README.md @@ -60,6 +60,7 @@ import { setOpenTelemetryContextAsyncContextStrategy, } from '@sentry/opentelemetry'; import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks'; +import { context, propagation, trace } from '@opentelemetry/api'; function setupSentry() { Sentry.init({ @@ -77,10 +78,9 @@ function setupSentry() { const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager); // Initialize the provider - provider.register({ - propagator: new SentryPropagator(), - contextManager: new SentryContextManager(), - }); + trace.setGlobalTracerProvider(provider); + propagation.setGlobalPropagator(new SentryPropagator()); + context.setGlobalContextManager(new SentryContextManager()); setOpenTelemetryContextAsyncContextStrategy(); } diff --git a/packages/opentelemetry/test/helpers/initOtel.ts b/packages/opentelemetry/test/helpers/initOtel.ts index 18e7f1e3d867..121ca0181892 100644 --- a/packages/opentelemetry/test/helpers/initOtel.ts +++ b/packages/opentelemetry/test/helpers/initOtel.ts @@ -1,4 +1,4 @@ -import { DiagLogLevel, diag } from '@opentelemetry/api'; +import { DiagLogLevel, context, diag, propagation, trace } from '@opentelemetry/api'; import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks'; import { Resource } from '@opentelemetry/resources'; import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'; @@ -69,11 +69,9 @@ export function setupOtel(client: TestClientInterface): BasicTracerProvider { // We use a custom context manager to keep context in sync with sentry scope const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager); - // Initialize the provider - provider.register({ - propagator: new SentryPropagator(), - contextManager: new SentryContextManager(), - }); + trace.setGlobalTracerProvider(provider); + propagation.setGlobalPropagator(new SentryPropagator()); + context.setGlobalContextManager(new SentryContextManager()); return provider; } diff --git a/packages/vercel-edge/src/sdk.ts b/packages/vercel-edge/src/sdk.ts index efb3a8dfcd0c..8c3939d26cba 100644 --- a/packages/vercel-edge/src/sdk.ts +++ b/packages/vercel-edge/src/sdk.ts @@ -1,4 +1,4 @@ -import { DiagLogLevel, diag } from '@opentelemetry/api'; +import { DiagLogLevel, context, diag, propagation, trace } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'; import { @@ -171,11 +171,9 @@ export function setupOtel(client: VercelEdgeClient): void { const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager); - // Initialize the provider - provider.register({ - propagator: new SentryPropagator(), - contextManager: new SentryContextManager(), - }); + trace.setGlobalTracerProvider(provider); + propagation.setGlobalPropagator(new SentryPropagator()); + context.setGlobalContextManager(new SentryContextManager()); client.traceProvider = provider; }