Skip to content

Commit 54bb500

Browse files
authored
chore(deps): replace deprecated OpenTelemetry trace SDK packages with @opentelemetry/sdk-trace (#9421)
@opentelemetry/sdk-trace-base and @opentelemetry/sdk-trace-node are deprecated in favor of @opentelemetry/sdk-trace. Import the trace SDK from @opentelemetry/sdk-trace 2.10.0, matching the installed core and resources 2.10.0 and staying on @opentelemetry/api 1.9.x so the global API stays shared with the Trigger.dev runtime. BatchSpanProcessor and SimpleSpanProcessor take an options object with the exporter, and BasicTracerProvider is TracerProvider. Every batch option is set explicitly, so the dropped OTEL_BSP_* environment fallbacks change nothing.
1 parent 80be6e3 commit 54bb500

8 files changed

Lines changed: 17 additions & 27 deletions

File tree

‎apps/sim/app/api/copilot/chat/stream/route.test.ts‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import { trace } from '@opentelemetry/api'
2-
import {
3-
BasicTracerProvider,
4-
InMemorySpanExporter,
5-
SimpleSpanProcessor,
6-
} from '@opentelemetry/sdk-trace-base'
2+
import { InMemorySpanExporter, SimpleSpanProcessor, TracerProvider } from '@opentelemetry/sdk-trace'
73
import { authMockFns } from '@sim/testing'
84
import { NextRequest } from 'next/server'
95
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
@@ -209,7 +205,7 @@ describe('copilot chat stream replay route', () => {
209205
it('ends a still-running replay at its cap without a terminal so the client re-attaches', async () => {
210206
const exporter = new InMemorySpanExporter()
211207
trace.setGlobalTracerProvider(
212-
new BasicTracerProvider({ spanProcessors: [new SimpleSpanProcessor(exporter)] })
208+
new TracerProvider({ spanProcessors: [new SimpleSpanProcessor({ exporter })] })
213209
)
214210
vi.useFakeTimers()
215211
getLatestRunForStream.mockResolvedValue({

‎apps/sim/instrumentation-node.ts‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type {
1111
SamplingResult,
1212
Span,
1313
SpanProcessor,
14-
} from '@opentelemetry/sdk-trace-base'
14+
} from '@opentelemetry/sdk-trace'
1515
import { createLogger } from '@sim/logger'
1616
import { TraceAttr } from '@/lib/mothership/generated/trace-attributes-v1'
1717
import { env } from './lib/core/config/env'
@@ -181,9 +181,8 @@ async function initializeOpenTelemetry() {
181181
const { PeriodicExportingMetricReader } = await import('@opentelemetry/sdk-metrics')
182182
const { OTLPLogExporter } = await import('@opentelemetry/exporter-logs-otlp-http')
183183
const { BatchLogRecordProcessor } = await import('@opentelemetry/sdk-logs')
184-
const { BatchSpanProcessor } = await import('@opentelemetry/sdk-trace-node')
185-
const { TraceIdRatioBasedSampler, SamplingDecision } = await import(
186-
'@opentelemetry/sdk-trace-base'
184+
const { BatchSpanProcessor, TraceIdRatioBasedSampler, SamplingDecision } = await import(
185+
'@opentelemetry/sdk-trace'
187186
)
188187

189188
// Drops Next framework spans, inherits SAMPLED from business
@@ -255,7 +254,8 @@ async function initializeOpenTelemetry() {
255254
})
256255
}
257256

258-
const batchProcessor = new BatchSpanProcessor(exporter, {
257+
const batchProcessor = new BatchSpanProcessor({
258+
exporter,
259259
maxQueueSize: telemetryConfig.batchSettings.maxQueueSize,
260260
maxExportBatchSize: telemetryConfig.batchSettings.maxExportBatchSize,
261261
scheduledDelayMillis: telemetryConfig.batchSettings.scheduledDelayMillis,

‎apps/sim/lib/mothership/observability/timing.test.ts‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import { context, SpanStatusCode, trace } from '@opentelemetry/api'
22
import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks'
3-
import {
4-
BasicTracerProvider,
5-
InMemorySpanExporter,
6-
SimpleSpanProcessor,
7-
} from '@opentelemetry/sdk-trace-base'
3+
import { InMemorySpanExporter, SimpleSpanProcessor, TracerProvider } from '@opentelemetry/sdk-trace'
84
import { dbChainMockFns } from '@sim/testing/mocks/database.mock'
95
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
106
import { createTracedCliTransport } from '@/lib/mothership/agent-cli/traced-transport'
@@ -17,7 +13,7 @@ const transaction = dbChainMockFns.transaction
1713

1814
describe('Mothership boundary timing', () => {
1915
const exporter = new InMemorySpanExporter()
20-
const provider = new BasicTracerProvider({ spanProcessors: [new SimpleSpanProcessor(exporter)] })
16+
const provider = new TracerProvider({ spanProcessors: [new SimpleSpanProcessor({ exporter })] })
2117
const manager = new AsyncLocalStorageContextManager()
2218

2319
beforeAll(() => {

‎apps/sim/lib/mothership/request/lifecycle/headless.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { propagation, trace } from '@opentelemetry/api'
22
import { W3CTraceContextPropagator } from '@opentelemetry/core'
3-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'
3+
import { TracerProvider } from '@opentelemetry/sdk-trace'
44
import { beforeEach, describe, expect, it, vi } from 'vitest'
55
import type { OrchestratorResult } from '@/lib/mothership/request/types'
66

@@ -27,7 +27,7 @@ function createLifecycleResult(overrides?: Partial<OrchestratorResult>): Orchest
2727

2828
describe('runHeadlessCopilotLifecycle', () => {
2929
beforeEach(() => {
30-
trace.setGlobalTracerProvider(new BasicTracerProvider())
30+
trace.setGlobalTracerProvider(new TracerProvider())
3131
propagation.setGlobalPropagator(new W3CTraceContextPropagator())
3232
})
3333

‎apps/sim/lib/mothership/request/lifecycle/start.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { propagation, trace } from '@opentelemetry/api'
22
import { W3CTraceContextPropagator } from '@opentelemetry/core'
3-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'
3+
import { TracerProvider } from '@opentelemetry/sdk-trace'
44
import { dbChainMockFns, resetDbChainMock, resetEnvFlagsMock, setEnvFlags } from '@sim/testing'
55
import {
66
billingAttributionMock,
@@ -187,7 +187,7 @@ describe('createSSEStream terminal error handling', () => {
187187
},
188188
})
189189
)
190-
trace.setGlobalTracerProvider(new BasicTracerProvider())
190+
trace.setGlobalTracerProvider(new TracerProvider())
191191
propagation.setGlobalPropagator(new W3CTraceContextPropagator())
192192
vi.stubGlobal(
193193
'fetch',

‎apps/sim/lib/mothership/request/session/replay-budget.integration.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ vi.mock('@/lib/mothership/request/lifecycle/run', () => ({
132132
}))
133133

134134
import { trace } from '@opentelemetry/api'
135-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base'
135+
import { TracerProvider } from '@opentelemetry/sdk-trace'
136136
import { db } from '@sim/db'
137137
import { copilotChats, copilotRuns, permissions, user, workflow, workspace } from '@sim/db/schema'
138138
import { generateId } from '@sim/utils/id'
@@ -513,7 +513,7 @@ describe.runIf(Boolean(redisUrl))('a turn whose stream exhausts its replay budge
513513
beforeAll(() => {
514514
trace.disable()
515515
trace.setGlobalTracerProvider(
516-
new BasicTracerProvider({
516+
new TracerProvider({
517517
spanProcessors: [
518518
{
519519
onStart: () => {},

‎apps/sim/package.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,7 @@
115115
"@opentelemetry/sdk-logs": "0.221.0",
116116
"@opentelemetry/sdk-metrics": "2.10.0",
117117
"@opentelemetry/sdk-node": "0.221.0",
118-
"@opentelemetry/sdk-trace-base": "2.10.0",
119-
"@opentelemetry/sdk-trace-node": "2.10.0",
118+
"@opentelemetry/sdk-trace": "2.10.0",
120119
"@opentelemetry/semantic-conventions": "^1.32.0",
121120
"@radix-ui/react-avatar": "1.3.1",
122121
"@radix-ui/react-checkbox": "1.4.1",

‎bun.lock‎

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)