diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json index b44b3a62911e..18c8d5cda531 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json @@ -12,11 +12,11 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^2.6.0", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-http": "^0.214.0", - "@opentelemetry/resources": "^2.6.0", - "@opentelemetry/sdk-trace-node": "^2.6.0", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-http": "^0.217.0", + "@opentelemetry/resources": "^2.7.1", + "@opentelemetry/sdk-trace-node": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/node-core": "file:../../packed/sentry-node-core-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json index 8552a7990a2d..73e51c2692ca 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json @@ -12,14 +12,14 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^2.6.0", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-http": "^0.214.0", - "@opentelemetry/resources": "^2.6.0", - "@opentelemetry/sdk-trace-node": "^2.6.0", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-http": "^0.217.0", + "@opentelemetry/resources": "^2.7.1", + "@opentelemetry/sdk-trace-node": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", - "@opentelemetry/sdk-node": "^0.214.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.214.0", + "@opentelemetry/sdk-node": "^0.217.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.217.0", "@sentry/node-core": "file:../../packed/sentry-node-core-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", "@types/express": "4.17.17", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json index dc57fb2568f8..4dd4a23bf904 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json @@ -14,11 +14,11 @@ "@sentry/node-core": "file:../../packed/sentry-node-core-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^2.6.0", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-http": "^0.214.0", - "@opentelemetry/resources": "^2.6.0", - "@opentelemetry/sdk-trace-node": "^2.6.0", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-http": "^0.217.0", + "@opentelemetry/resources": "^2.7.1", + "@opentelemetry/sdk-trace-node": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@types/express": "^4.17.21", "@types/node": "^18.19.1", diff --git a/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json b/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json index 9a1f27147639..02a202a899e0 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json @@ -13,9 +13,9 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.211.0", - "@opentelemetry/sdk-trace-base": "^2.5.1", - "@opentelemetry/sdk-trace-node": "^2.5.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.217.0", + "@opentelemetry/sdk-trace-base": "^2.7.1", + "@opentelemetry/sdk-trace-node": "^2.7.1", "@sentry/node-core": "file:../../packed/sentry-node-core-packed.tgz", "@types/express": "^4.17.21", "@types/node": "^22.0.0", diff --git a/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json b/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json index b26e3981e028..ef3785136779 100644 --- a/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json +++ b/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.0", - "@opentelemetry/sdk-trace-node": "^2.6.0", + "@opentelemetry/sdk-trace-node": "^2.7.1", "@sentry/node": "file:../../packed/sentry-node-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", "@types/express": "4.17.17", diff --git a/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/package.json b/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/package.json index 38badec93335..9c010f483084 100644 --- a/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/package.json +++ b/dev-packages/e2e-tests/test-applications/node-otel-sdk-node/package.json @@ -11,8 +11,8 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/sdk-node": "0.213.0", - "@opentelemetry/exporter-trace-otlp-http": "0.213.0", + "@opentelemetry/sdk-node": "0.217.0", + "@opentelemetry/exporter-trace-otlp-http": "0.217.0", "@sentry/node": "file:../../packed/sentry-node-packed.tgz", "@types/express": "4.17.17", "@types/node": "^18.19.1", diff --git a/dev-packages/e2e-tests/test-applications/node-otel-without-tracing/package.json b/dev-packages/e2e-tests/test-applications/node-otel-without-tracing/package.json index 04a6a80a500c..889188dd5bab 100644 --- a/dev-packages/e2e-tests/test-applications/node-otel-without-tracing/package.json +++ b/dev-packages/e2e-tests/test-applications/node-otel-without-tracing/package.json @@ -12,11 +12,11 @@ }, "dependencies": { "@opentelemetry/api": "1.9.0", - "@opentelemetry/sdk-trace-node": "2.6.1", - "@opentelemetry/exporter-trace-otlp-http": "0.214.0", - "@opentelemetry/instrumentation-undici": "0.24.0", - "@opentelemetry/instrumentation-http": "0.214.0", - "@opentelemetry/instrumentation": "0.214.0", + "@opentelemetry/sdk-trace-node": "2.7.1", + "@opentelemetry/exporter-trace-otlp-http": "0.217.0", + "@opentelemetry/instrumentation-undici": "0.27.0", + "@opentelemetry/instrumentation-http": "0.217.0", + "@opentelemetry/instrumentation": "0.217.0", "@sentry/node": "file:../../packed/sentry-node-packed.tgz", "@types/express": "4.17.17", "@types/node": "^18.19.1", diff --git a/dev-packages/e2e-tests/test-applications/node-otel/package.json b/dev-packages/e2e-tests/test-applications/node-otel/package.json index 274b141ff2a7..986e17100a14 100644 --- a/dev-packages/e2e-tests/test-applications/node-otel/package.json +++ b/dev-packages/e2e-tests/test-applications/node-otel/package.json @@ -11,8 +11,8 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/sdk-node": "0.213.0", - "@opentelemetry/exporter-trace-otlp-http": "0.213.0", + "@opentelemetry/sdk-node": "0.217.0", + "@opentelemetry/exporter-trace-otlp-http": "0.217.0", "@sentry/node": "file:../../packed/sentry-node-packed.tgz", "@types/express": "4.17.17", "@types/node": "^18.19.1", diff --git a/dev-packages/node-core-integration-tests/package.json b/dev-packages/node-core-integration-tests/package.json index 51b64537f4f2..b6a703336c36 100644 --- a/dev-packages/node-core-integration-tests/package.json +++ b/dev-packages/node-core-integration-tests/package.json @@ -27,11 +27,11 @@ "@nestjs/core": "^11", "@nestjs/platform-express": "^11", "@opentelemetry/api": "^1.9.1", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-http": "0.214.0", - "@opentelemetry/resources": "^2.6.1", - "@opentelemetry/sdk-trace-base": "^2.6.1", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-http": "0.217.0", + "@opentelemetry/resources": "^2.7.1", + "@opentelemetry/sdk-trace-base": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/core": "10.52.0", "@sentry/node-core": "10.52.0", diff --git a/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-header-assign/test.ts b/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-header-assign/test.ts index 20f19dccf3ea..d5e65dc5faf0 100644 --- a/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-header-assign/test.ts +++ b/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-header-assign/test.ts @@ -36,12 +36,12 @@ test('Should propagate sentry trace baggage data from an incoming to an outgoing }); expect(response).toBeDefined(); - expect(response).toMatchObject({ - test_data: { - host: 'somewhere.not.sentry', - baggage: 'sentry-release=2.0.0,sentry-environment=myEnv,sentry-sample_rand=0.42', - }, - }); + expect(response?.test_data.host).toBe('somewhere.not.sentry'); + expect(response?.test_data.baggage?.split(',').sort()).toEqual([ + 'sentry-environment=myEnv', + 'sentry-release=2.0.0', + 'sentry-sample_rand=0.42', + ]); }); test('Should not propagate baggage data from an incoming to an outgoing request if sentry-trace is faulty.', async () => { diff --git a/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-other-vendors/test.ts b/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-other-vendors/test.ts index beb118944408..817d15a995f0 100644 --- a/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-other-vendors/test.ts +++ b/dev-packages/node-integration-tests/suites/express/sentry-trace/baggage-other-vendors/test.ts @@ -17,10 +17,13 @@ test('should merge `baggage` header of a third party vendor with the Sentry DSC }); expect(response).toBeDefined(); - expect(response).toMatchObject({ - test_data: { - host: 'somewhere.not.sentry', - baggage: 'other=vendor,foo=bar,third=party,sentry-release=2.0.0,sentry-environment=myEnv,sentry-sample_rand=0.42', - }, - }); + expect(response?.test_data.host).toBe('somewhere.not.sentry'); + expect(response?.test_data.baggage?.split(',').sort()).toEqual([ + 'foo=bar', + 'other=vendor', + 'sentry-environment=myEnv', + 'sentry-release=2.0.0', + 'sentry-sample_rand=0.42', + 'third=party', + ]); }); diff --git a/packages/aws-serverless/package.json b/packages/aws-serverless/package.json index 40b0ad05b68a..0e0b1d2bcdbd 100644 --- a/packages/aws-serverless/package.json +++ b/packages/aws-serverless/package.json @@ -67,8 +67,8 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-aws-sdk": "0.69.0", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-aws-sdk": "0.72.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/core": "10.52.0", "@sentry/node": "10.52.0", diff --git a/packages/core/src/tracing/dynamicSamplingContext.ts b/packages/core/src/tracing/dynamicSamplingContext.ts index 7cf79e53d07b..cf55e695e431 100644 --- a/packages/core/src/tracing/dynamicSamplingContext.ts +++ b/packages/core/src/tracing/dynamicSamplingContext.ts @@ -9,7 +9,7 @@ import { } from '../semanticAttributes'; import type { DynamicSamplingContext } from '../types-hoist/envelope'; import type { Span } from '../types-hoist/span'; -import { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage'; +import { dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage'; import { extractOrgIdFromClient } from '../utils/dsn'; import { hasSpansEnabled } from '../utils/hasSpansEnabled'; import { addNonEnumerableProperty } from '../utils/object'; @@ -88,7 +88,7 @@ export function getDynamicSamplingContextFromSpan(span: Span): Readonly | undefined { + if (!traceState) { + return undefined; + } + + const dsc: Partial = {}; + for (const key of DSC_TRACE_STATE_KEYS) { + const value = traceState.get(`${DSC_TRACE_STATE_PREFIX}${key}`); + if (value) { + try { + dsc[key] = decodeURIComponent(value); + } catch { + dsc[key] = value; + } + } + } + + return Object.keys(dsc).length > 0 ? dsc : undefined; +} diff --git a/packages/core/src/tracing/index.ts b/packages/core/src/tracing/index.ts index 9b56045b37f3..7980ba995882 100644 --- a/packages/core/src/tracing/index.ts +++ b/packages/core/src/tracing/index.ts @@ -20,6 +20,9 @@ export { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope, spanToBaggageHeader, + DSC_TRACE_STATE_PREFIX, + DSC_TRACE_STATE_KEYS, + _getDscFromTraceState, } from './dynamicSamplingContext'; export { setMeasurement, timedEventsToMeasurements } from './measurement'; export { sampleSpan } from './sampling'; diff --git a/packages/core/test/lib/tracing/dynamicSamplingContext.test.ts b/packages/core/test/lib/tracing/dynamicSamplingContext.test.ts index 65fcf5a71c8e..e8d39059bc0f 100644 --- a/packages/core/test/lib/tracing/dynamicSamplingContext.test.ts +++ b/packages/core/test/lib/tracing/dynamicSamplingContext.test.ts @@ -46,11 +46,10 @@ describe('getDynamicSamplingContextFromSpan', () => { traceFlags: 0, traceState: { get(key: string) { - if (key === 'sentry.dsc') { - return 'sentry-environment=myEnv2'; - } else { - return undefined; + if (key === 'sentry-dsc-environment') { + return 'myEnv2'; } + return undefined; }, } as unknown as SpanContextData['traceState'], }; @@ -62,6 +61,36 @@ describe('getDynamicSamplingContextFromSpan', () => { expect(dynamicSamplingContext).toStrictEqual({ environment: 'myEnv2' }); }); + test('decodes encoded DSC values from traceState', () => { + const rootSpan = { + spanContext() { + return { + traceId: '1234', + spanId: '12345', + traceFlags: 0, + traceState: { + get(key: string) { + const entries: Record = { + 'sentry-dsc-environment': 'production', + 'sentry-dsc-transaction': 'GET%20%2Fusers%3Fid%3D1', + 'sentry-dsc-trace_id': 'abc123', + }; + return entries[key]; + }, + } as unknown as SpanContextData['traceState'], + }; + }, + } as Span; + + const dynamicSamplingContext = getDynamicSamplingContextFromSpan(rootSpan); + + expect(dynamicSamplingContext).toStrictEqual({ + environment: 'production', + transaction: 'GET /users?id=1', + trace_id: 'abc123', + }); + }); + test('returns a new DSC, if no DSC was provided during rootSpan creation (via attributes)', () => { const rootSpan = startInactiveSpan({ name: 'tx' }); diff --git a/packages/core/test/lib/utils/traceData.test.ts b/packages/core/test/lib/utils/traceData.test.ts index 6baf7a9d7a40..dc7eee4a02f6 100644 --- a/packages/core/test/lib/utils/traceData.test.ts +++ b/packages/core/test/lib/utils/traceData.test.ts @@ -251,15 +251,15 @@ describe('getTraceData', () => { }); span.spanContext = () => { + const dscEntries: Record = { + 'sentry-dsc-environment': 'test-dev', + 'sentry-dsc-public_key': '456', + 'sentry-dsc-trace_id': '12345678901234567890123456789088', + }; const traceState = { set: () => traceState, unset: () => traceState, - get: (key: string) => { - if (key === 'sentry.dsc') { - return 'sentry-environment=test-dev,sentry-public_key=456,sentry-trace_id=12345678901234567890123456789088'; - } - return undefined; - }, + get: (key: string) => dscEntries[key], serialize: () => '', }; diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index b8c83a88006b..c72a8f189a74 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -45,9 +45,9 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-nestjs-core": "0.60.0", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-nestjs-core": "0.63.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/core": "10.52.0", "@sentry/node": "10.52.0" diff --git a/packages/node-core/package.json b/packages/node-core/package.json index a686c3fc0779..704a2446e0fa 100644 --- a/packages/node-core/package.json +++ b/packages/node-core/package.json @@ -111,10 +111,10 @@ }, "devDependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/exporter-trace-otlp-http": "^0.214.0", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/sdk-trace-base": "^2.6.1", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/exporter-trace-otlp-http": "^0.217.0", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/sdk-trace-base": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@types/node": "^18.19.1" }, diff --git a/packages/node/package.json b/packages/node/package.json index 057b233288df..4d417124ec17 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -66,30 +66,30 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/instrumentation": "^0.214.0", - "@opentelemetry/instrumentation-amqplib": "0.61.0", - "@opentelemetry/instrumentation-connect": "0.57.0", - "@opentelemetry/instrumentation-dataloader": "0.31.0", - "@opentelemetry/instrumentation-fs": "0.33.0", - "@opentelemetry/instrumentation-generic-pool": "0.57.0", - "@opentelemetry/instrumentation-graphql": "0.62.0", - "@opentelemetry/instrumentation-hapi": "0.60.0", - "@opentelemetry/instrumentation-http": "0.214.0", - "@opentelemetry/instrumentation-kafkajs": "0.23.0", - "@opentelemetry/instrumentation-knex": "0.58.0", - "@opentelemetry/instrumentation-koa": "0.62.0", - "@opentelemetry/instrumentation-lru-memoizer": "0.58.0", - "@opentelemetry/instrumentation-mongodb": "0.67.0", - "@opentelemetry/instrumentation-mongoose": "0.60.0", - "@opentelemetry/instrumentation-mysql": "0.60.0", - "@opentelemetry/instrumentation-mysql2": "0.60.0", - "@opentelemetry/instrumentation-pg": "0.66.0", - "@opentelemetry/instrumentation-tedious": "0.33.0", - "@opentelemetry/sdk-trace-base": "^2.6.1", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", + "@opentelemetry/instrumentation-amqplib": "0.64.0", + "@opentelemetry/instrumentation-connect": "0.60.0", + "@opentelemetry/instrumentation-dataloader": "0.34.0", + "@opentelemetry/instrumentation-fs": "0.36.0", + "@opentelemetry/instrumentation-generic-pool": "0.60.0", + "@opentelemetry/instrumentation-graphql": "0.65.0", + "@opentelemetry/instrumentation-hapi": "0.63.0", + "@opentelemetry/instrumentation-http": "0.217.0", + "@opentelemetry/instrumentation-kafkajs": "0.26.0", + "@opentelemetry/instrumentation-knex": "0.61.0", + "@opentelemetry/instrumentation-koa": "0.65.0", + "@opentelemetry/instrumentation-lru-memoizer": "0.61.0", + "@opentelemetry/instrumentation-mongodb": "0.70.0", + "@opentelemetry/instrumentation-mongoose": "0.63.0", + "@opentelemetry/instrumentation-mysql": "0.63.0", + "@opentelemetry/instrumentation-mysql2": "0.63.0", + "@opentelemetry/instrumentation-pg": "0.69.0", + "@opentelemetry/instrumentation-tedious": "0.36.0", + "@opentelemetry/sdk-trace-base": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", - "@prisma/instrumentation": "7.6.0", - "@fastify/otel": "0.18.0", + "@prisma/instrumentation": "7.8.0", + "@fastify/otel": "0.18.1", "@sentry/core": "10.52.0", "@sentry/node-core": "10.52.0", "@sentry/opentelemetry": "10.52.0", diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json index 074f248aa5fd..0ae16a9c9325 100644 --- a/packages/opentelemetry/package.json +++ b/packages/opentelemetry/package.json @@ -75,8 +75,8 @@ }, "devDependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/sdk-trace-base": "^2.6.1", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/sdk-trace-base": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0" }, "scripts": { diff --git a/packages/opentelemetry/src/constants.ts b/packages/opentelemetry/src/constants.ts index 699868e3290a..633e79acd931 100644 --- a/packages/opentelemetry/src/constants.ts +++ b/packages/opentelemetry/src/constants.ts @@ -1,19 +1,24 @@ +import type { TraceState as TraceStateInterface } from '@opentelemetry/api'; import { createContextKey } from '@opentelemetry/api'; +import type { DynamicSamplingContext } from '@sentry/core'; +import { DSC_TRACE_STATE_KEYS, DSC_TRACE_STATE_PREFIX, _getDscFromTraceState } from '@sentry/core'; + +export { DSC_TRACE_STATE_PREFIX as SENTRY_TRACE_STATE_DSC_PREFIX }; +export { _getDscFromTraceState as getDscFromTraceState }; export const SENTRY_TRACE_HEADER = 'sentry-trace'; export const SENTRY_BAGGAGE_HEADER = 'baggage'; -export const SENTRY_TRACE_STATE_DSC = 'sentry.dsc'; -export const SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = 'sentry.sampled_not_recording'; -export const SENTRY_TRACE_STATE_URL = 'sentry.url'; -export const SENTRY_TRACE_STATE_SAMPLE_RAND = 'sentry.sample_rand'; -export const SENTRY_TRACE_STATE_SAMPLE_RATE = 'sentry.sample_rate'; +export const SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = 'sentry-sampled_not_recording'; +export const SENTRY_TRACE_STATE_URL = 'sentry-url'; +export const SENTRY_TRACE_STATE_SAMPLE_RAND = 'sentry-sample_rand'; +export const SENTRY_TRACE_STATE_SAMPLE_RATE = 'sentry-sample_rate'; /** * A flag marking a context as ignored because the span associated with the context * is ignored (`ignoreSpans` filter). */ -export const SENTRY_TRACE_STATE_CHILD_IGNORED = 'sentry.ignored'; +export const SENTRY_TRACE_STATE_CHILD_IGNORED = 'sentry-ignored'; /** * A flag marking a segment span as ignored because it matched the `ignoreSpans` filter. @@ -21,7 +26,21 @@ export const SENTRY_TRACE_STATE_CHILD_IGNORED = 'sentry.ignored'; * by the context manager for re-parenting. Instead, it propagates to child spans so they * can record the correct client report outcome (`ignored` instead of `sample_rate`). */ -export const SENTRY_TRACE_STATE_SEGMENT_IGNORED = 'sentry.segment_ignored'; +export const SENTRY_TRACE_STATE_SEGMENT_IGNORED = 'sentry-segment_ignored'; + +export function _setDscOnTraceState( + traceState: T, + dsc: Partial, +): T { + let ts: TraceStateInterface = traceState; + for (const key of DSC_TRACE_STATE_KEYS) { + const value = dsc[key]; + if (value) { + ts = ts.set(`${DSC_TRACE_STATE_PREFIX}${key}`, encodeURIComponent(value)); + } + } + return ts as T; +} export const SENTRY_SCOPES_CONTEXT_KEY = createContextKey('sentry_scopes'); diff --git a/packages/opentelemetry/src/propagator.ts b/packages/opentelemetry/src/propagator.ts index b8582b37d964..823baa0577b1 100644 --- a/packages/opentelemetry/src/propagator.ts +++ b/packages/opentelemetry/src/propagator.ts @@ -285,7 +285,11 @@ function getCurrentURL(span: Span): string | undefined { // Also look at the traceState, which we may set in the sampler even for unsampled spans const urlTraceState = span.spanContext().traceState?.get(SENTRY_TRACE_STATE_URL); if (urlTraceState) { - return urlTraceState; + try { + return decodeURIComponent(urlTraceState); + } catch { + return urlTraceState; + } } return undefined; diff --git a/packages/opentelemetry/src/sampler.ts b/packages/opentelemetry/src/sampler.ts index 05dc0758458b..e6de049c65ac 100644 --- a/packages/opentelemetry/src/sampler.ts +++ b/packages/opentelemetry/src/sampler.ts @@ -13,7 +13,6 @@ import { import type { Client, SpanAttributes } from '@sentry/core'; import { _INTERNAL_safeMathRandom, - baggageHeaderToDynamicSamplingContext, debug, hasSpansEnabled, hasSpanStreamingEnabled, @@ -24,13 +23,13 @@ import { shouldIgnoreSpan, } from '@sentry/core'; import { - SENTRY_TRACE_STATE_DSC, SENTRY_TRACE_STATE_CHILD_IGNORED, SENTRY_TRACE_STATE_SAMPLE_RAND, SENTRY_TRACE_STATE_SAMPLE_RATE, SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, SENTRY_TRACE_STATE_SEGMENT_IGNORED, SENTRY_TRACE_STATE_URL, + getDscFromTraceState, } from './constants'; import { DEBUG_BUILD } from './debug-build'; import { getScopesFromContext } from './utils/contextData'; @@ -185,8 +184,7 @@ export class SentrySampler implements Sampler { const { isolationScope } = getScopesFromContext(context) ?? {}; - const dscString = parentContext?.traceState ? parentContext.traceState.get(SENTRY_TRACE_STATE_DSC) : undefined; - const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined; + const dsc = getDscFromTraceState(parentContext?.traceState); const sampleRand = parseSampleRate(dsc?.sample_rand) ?? _INTERNAL_safeMathRandom(); @@ -335,7 +333,7 @@ function getBaseTraceState(context: Context, spanAttributes: SpanAttributes): Tr // eslint-disable-next-line deprecation/deprecation const url = spanAttributes[SEMATTRS_HTTP_URL] || spanAttributes[ATTR_URL_FULL]; if (url && typeof url === 'string') { - traceState = traceState.set(SENTRY_TRACE_STATE_URL, url); + traceState = traceState.set(SENTRY_TRACE_STATE_URL, encodeURIComponent(url)); } return traceState; diff --git a/packages/opentelemetry/src/utils/getSamplingDecision.ts b/packages/opentelemetry/src/utils/getSamplingDecision.ts index 216b5249224e..148809e52ba2 100644 --- a/packages/opentelemetry/src/utils/getSamplingDecision.ts +++ b/packages/opentelemetry/src/utils/getSamplingDecision.ts @@ -1,7 +1,6 @@ import type { SpanContext } from '@opentelemetry/api'; import { TraceFlags } from '@opentelemetry/api'; -import { baggageHeaderToDynamicSamplingContext } from '@sentry/core'; -import { SENTRY_TRACE_STATE_DSC, SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING } from '../constants'; +import { getDscFromTraceState, SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING } from '../constants'; /** * OpenTelemetry only knows about SAMPLED or NONE decision, @@ -28,8 +27,7 @@ export function getSamplingDecision(spanContext: SpanContext): boolean | undefin } // Fall back to DSC as a last resort, that may also contain `sampled`... - const dscString = traceState ? traceState.get(SENTRY_TRACE_STATE_DSC) : undefined; - const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined; + const dsc = getDscFromTraceState(traceState); if (dsc?.sampled === 'true') { return true; diff --git a/packages/opentelemetry/src/utils/makeTraceState.ts b/packages/opentelemetry/src/utils/makeTraceState.ts index 5d7d6248de56..c3eafbade936 100644 --- a/packages/opentelemetry/src/utils/makeTraceState.ts +++ b/packages/opentelemetry/src/utils/makeTraceState.ts @@ -1,7 +1,6 @@ import { TraceState } from '@opentelemetry/core'; import type { DynamicSamplingContext } from '@sentry/core'; -import { dynamicSamplingContextToSentryBaggageHeader } from '@sentry/core'; -import { SENTRY_TRACE_STATE_DSC, SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING } from '../constants'; +import { SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, _setDscOnTraceState } from '../constants'; /** * Generate a TraceState for the given data. @@ -13,12 +12,9 @@ export function makeTraceState({ dsc?: Partial; sampled?: boolean; }): TraceState { - // We store the DSC as OTEL trace state on the span context - const dscString = dsc ? dynamicSamplingContextToSentryBaggageHeader(dsc) : undefined; - const traceStateBase = new TraceState(); - const traceStateWithDsc = dscString ? traceStateBase.set(SENTRY_TRACE_STATE_DSC, dscString) : traceStateBase; + const traceStateWithDsc = dsc ? _setDscOnTraceState(traceStateBase, dsc) : traceStateBase; // We also specifically want to store if this is sampled to be not recording, // or unsampled (=could be either sampled or not) diff --git a/packages/opentelemetry/test/integration/transactions.test.ts b/packages/opentelemetry/test/integration/transactions.test.ts index 570df4a86aa8..41bd2e284f47 100644 --- a/packages/opentelemetry/test/integration/transactions.test.ts +++ b/packages/opentelemetry/test/integration/transactions.test.ts @@ -13,7 +13,7 @@ import { withIsolationScope, } from '@sentry/core'; import { afterEach, describe, expect, it, vi } from 'vitest'; -import { SENTRY_TRACE_STATE_DSC } from '../../src/constants'; +import { SENTRY_TRACE_STATE_DSC_PREFIX, _setDscOnTraceState } from '../../src/constants'; import { startInactiveSpan, startSpan } from '../../src/trace'; import { makeTraceState } from '../../src/utils/makeTraceState'; import { cleanupOtel, getSpanProcessor, mockSdkInit } from '../helpers/mockSdkInit'; @@ -746,14 +746,21 @@ describe('Integration | Transactions', () => { const traceId = 'd4cda95b652f4a1592b449d5929fda1b'; const parentSpanId = '6e0c63257de34c92'; - const dscString = `sentry-transaction=other-transaction,sentry-environment=other,sentry-release=8.0.0,sentry-public_key=public,sentry-trace_id=${traceId},sentry-sampled=true`; + const dsc = { + transaction: 'other-transaction', + environment: 'other', + release: '8.0.0', + public_key: 'public', + trace_id: traceId, + sampled: 'true', + }; const spanContext: SpanContext = { traceId, spanId: parentSpanId, isRemote: true, traceFlags: TraceFlags.SAMPLED, - traceState: new TraceState().set(SENTRY_TRACE_STATE_DSC, dscString), + traceState: _setDscOnTraceState(new TraceState(), dsc), }; mockSdkInit({ @@ -776,16 +783,17 @@ describe('Integration | Transactions', () => { }, }, span => { - expect(span.spanContext().traceState?.get(SENTRY_TRACE_STATE_DSC)).toEqual(dscString); + expect(span.spanContext().traceState?.get(`${SENTRY_TRACE_STATE_DSC_PREFIX}environment`)).toBe('other'); + expect(span.spanContext().traceState?.get(`${SENTRY_TRACE_STATE_DSC_PREFIX}public_key`)).toBe('public'); const subSpan = startInactiveSpan({ name: 'inner span 1' }); - expect(subSpan.spanContext().traceState?.get(SENTRY_TRACE_STATE_DSC)).toEqual(dscString); + expect(subSpan.spanContext().traceState?.get(`${SENTRY_TRACE_STATE_DSC_PREFIX}environment`)).toBe('other'); subSpan.end(); startSpan({ name: 'inner span 2' }, subSpan => { - expect(subSpan.spanContext().traceState?.get(SENTRY_TRACE_STATE_DSC)).toEqual(dscString); + expect(subSpan.spanContext().traceState?.get(`${SENTRY_TRACE_STATE_DSC_PREFIX}environment`)).toBe('other'); }); }, ); diff --git a/packages/opentelemetry/test/sampler.test.ts b/packages/opentelemetry/test/sampler.test.ts index 55c3cff8ac32..2ae7e5876d16 100644 --- a/packages/opentelemetry/test/sampler.test.ts +++ b/packages/opentelemetry/test/sampler.test.ts @@ -37,8 +37,8 @@ describe('SentrySampler', () => { attributes: { 'sentry.sample_rate': 0 }, }), ); - expect(actual.traceState?.get('sentry.sampled_not_recording')).toBe('1'); - expect(actual.traceState?.get('sentry.sample_rand')).toEqual(expect.any(String)); + expect(actual.traceState?.get('sentry-sampled_not_recording')).toBe('1'); + expect(actual.traceState?.get('sentry-sample_rand')).toEqual(expect.any(String)); expect(spyOnDroppedEvent).toHaveBeenCalledTimes(1); expect(spyOnDroppedEvent).toHaveBeenCalledWith('sample_rate', 'transaction'); diff --git a/packages/opentelemetry/test/utils/traceStateHelpers.test.ts b/packages/opentelemetry/test/utils/traceStateHelpers.test.ts new file mode 100644 index 000000000000..88e817d7167f --- /dev/null +++ b/packages/opentelemetry/test/utils/traceStateHelpers.test.ts @@ -0,0 +1,96 @@ +import { context, defaultTextMapSetter, ROOT_CONTEXT, trace, TraceFlags } from '@opentelemetry/api'; +import { TraceState } from '@opentelemetry/core'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { + getDscFromTraceState, + SENTRY_BAGGAGE_HEADER, + SENTRY_TRACE_HEADER, + SENTRY_TRACE_STATE_URL, + _setDscOnTraceState, +} from '../../src/constants'; +import { SentryPropagator } from '../../src/propagator'; +import { cleanupOtel, mockSdkInit } from '../helpers/mockSdkInit'; + +describe('traceState DSC helpers', () => { + it('round-trips DSC values with special characters', () => { + const dsc = { + environment: 'production', + transaction: 'GET /users?id=1&name=foo,bar', + trace_id: 'abc123', + }; + + const ts = _setDscOnTraceState(new TraceState(), dsc); + const result = getDscFromTraceState(ts); + + expect(result).toEqual(dsc); + }); + + it('round-trips DSC values with equals signs', () => { + const dsc = { + transaction: 'GET /api?foo=bar', + environment: 'staging', + }; + + const ts = _setDscOnTraceState(new TraceState(), dsc); + const result = getDscFromTraceState(ts); + + expect(result).toEqual(dsc); + }); + + it('returns undefined for empty traceState', () => { + const result = getDscFromTraceState(new TraceState()); + expect(result).toBeUndefined(); + }); + + it('returns undefined for undefined traceState', () => { + const result = getDscFromTraceState(undefined); + expect(result).toBeUndefined(); + }); + + it('handles invalid percent encoding gracefully', () => { + const ts = { + get: (key: string) => { + if (key === 'sentry-dsc-environment') { + return 'bad%value%'; + } + return undefined; + }, + }; + + const result = getDscFromTraceState(ts); + expect(result).toEqual({ environment: 'bad%value%' }); + }); +}); + +describe('traceState URL encoding', () => { + beforeEach(() => { + mockSdkInit({ tracesSampleRate: 1 }); + }); + + afterEach(async () => { + await cleanupOtel(); + }); + + it('does not throw when URL tracestate has invalid percent encoding', () => { + const propagator = new SentryPropagator(); + const carrier: Record = {}; + + const traceState = new TraceState().set(SENTRY_TRACE_STATE_URL, 'bad%url'); + const spanContext = { + traceId: 'd4cda95b652f4a1592b449d5929fda1b', + spanId: '6e0c63257de34c92', + traceFlags: TraceFlags.SAMPLED, + traceState, + }; + + const ctx = trace.setSpanContext(ROOT_CONTEXT, spanContext); + + context.with(ctx, () => { + trace.getTracer('test').startActiveSpan('test', _span => { + expect(() => propagator.inject(context.active(), carrier, defaultTextMapSetter)).not.toThrow(); + expect(carrier[SENTRY_TRACE_HEADER]).toBeDefined(); + expect(carrier[SENTRY_BAGGAGE_HEADER]).toBeDefined(); + }); + }); + }); +}); diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 19b76c1c8c73..e61dffb96945 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/instrumentation": "^0.214.0", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/instrumentation": "^0.217.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/browser": "10.52.0", "@sentry/cli": "^2.58.5", diff --git a/packages/remix/package.json b/packages/remix/package.json index 6ca31101f661..f65f84ef6fe3 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -65,7 +65,7 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/instrumentation": "^0.214.0", + "@opentelemetry/instrumentation": "^0.217.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@remix-run/router": "^1.23.2", "@sentry/cli": "^2.58.5", diff --git a/packages/vercel-edge/package.json b/packages/vercel-edge/package.json index 7182dc4f7f8c..c6c04b080947 100644 --- a/packages/vercel-edge/package.json +++ b/packages/vercel-edge/package.json @@ -40,13 +40,13 @@ }, "dependencies": { "@opentelemetry/api": "^1.9.1", - "@opentelemetry/resources": "^2.6.1", + "@opentelemetry/resources": "^2.7.1", "@sentry/core": "10.52.0" }, "devDependencies": { "@edge-runtime/types": "4.0.0", - "@opentelemetry/core": "^2.6.1", - "@opentelemetry/sdk-trace-base": "^2.6.1", + "@opentelemetry/core": "^2.7.1", + "@opentelemetry/sdk-trace-base": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@sentry/opentelemetry": "10.52.0" }, diff --git a/yarn.lock b/yarn.lock index 78e5b0b5d356..8c31d5fd42f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4446,13 +4446,13 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== -"@fastify/otel@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@fastify/otel/-/otel-0.18.0.tgz#d21814af7c97579856698e03aae0581beb3e734b" - integrity sha512-3TASCATfw+ctICSb4ymrv7iCm0qJ0N9CarB+CZ7zIJ7KqNbwI5JjyDL1/sxoC0ccTO1Zyd1iQ+oqncPg5FJXaA== +"@fastify/otel@0.18.1": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@fastify/otel/-/otel-0.18.1.tgz#8af40e01c4da86731875a6bb20bc4fa8dab2260d" + integrity sha512-7TYQXrOBRwCuTiwQm/2qCPO37af011934clxBj6F7KyF9a2a9MB+aSrWv8vMVp5N8rZC1AQ4pUp8uDs5Z40UPQ== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.212.0" + "@opentelemetry/instrumentation" "^0.214.0" "@opentelemetry/semantic-conventions" "^1.28.0" minimatch "^10.2.4" @@ -6153,13 +6153,6 @@ dependencies: "@opentelemetry/api" "^1.3.0" -"@opentelemetry/api-logs@0.212.0": - version "0.212.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.212.0.tgz#ec66a0951b84b1f082e13fd8a027b9f9d65a3f7a" - integrity sha512-TEEVrLbNROUkYY51sBJGk7lO/OLjuepch8+hmpM6ffMJQ2z/KVCjdHuCFX6fJj8OkJP2zckPjrJzQtXU3IAsFg== - dependencies: - "@opentelemetry/api" "^1.3.0" - "@opentelemetry/api-logs@0.214.0": version "0.214.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.214.0.tgz#74a54ad7b166c6fa30a0df811954c0f5a435deee" @@ -6167,6 +6160,13 @@ dependencies: "@opentelemetry/api" "^1.3.0" +"@opentelemetry/api-logs@0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.217.0.tgz#7e57733e3791460fe7d572fd84cafe6d7b71de18" + integrity sha512-Cdq0jW2lknrNfrAm92MyEAvpe2cRsKjdnQLHUL6xRA4IVUnsWx6P65E7NcUO0Y+L4w1Aee5iV8FvjSwd+lrs9A== + dependencies: + "@opentelemetry/api" "^1.3.0" + "@opentelemetry/api@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" @@ -6177,202 +6177,202 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.1.tgz#c1b0346de336ba55af2d5a7970882037baedec05" integrity sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q== -"@opentelemetry/core@2.6.1", "@opentelemetry/core@^2.0.0", "@opentelemetry/core@^2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-2.6.1.tgz#a59d22a9ae3be80bb41b280bbbe1fe9fbdb6c2a5" - integrity sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g== +"@opentelemetry/core@2.7.1", "@opentelemetry/core@^2.0.0", "@opentelemetry/core@^2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-2.7.1.tgz#162bfab46d6ff4da1bef240ea52e23a926b0fdbc" + integrity sha512-QAqIj32AtK6+pEVNG7EOVxHdE06RP+FM5qpiEJ4RtDcFIqKUZHYhl7/7UY5efhwmwNAg7j8QbJVBLxMerc0+gw== dependencies: "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/exporter-trace-otlp-http@^0.214.0": - version "0.214.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.214.0.tgz#2a140d0bafa8690f29ed7f76bf27e3daa607da92" - integrity sha512-kIN8nTBMgV2hXzV/a20BCFilPZdAIMYYJGSgfMMRm/Xa+07y5hRDS2Vm12A/z8Cdu3Sq++ZvJfElokX2rkgGgw== +"@opentelemetry/exporter-trace-otlp-http@^0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.217.0.tgz#daee24d91a4942330d62dd72e6d9264d49ab03bb" + integrity sha512-38YQoqtYjglz2GV94LGUN/djLvxtvGIQO68o6qAFPVshjmwSdX1F2i0c7vn3lEl1L5B/YqjB/bgKXaVx7KO+RQ== dependencies: - "@opentelemetry/core" "2.6.1" - "@opentelemetry/otlp-exporter-base" "0.214.0" - "@opentelemetry/otlp-transformer" "0.214.0" - "@opentelemetry/resources" "2.6.1" - "@opentelemetry/sdk-trace-base" "2.6.1" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/otlp-exporter-base" "0.217.0" + "@opentelemetry/otlp-transformer" "0.217.0" + "@opentelemetry/resources" "2.7.1" + "@opentelemetry/sdk-trace-base" "2.7.1" -"@opentelemetry/instrumentation-amqplib@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.61.0.tgz#e9d52f56dfc4cb8a26837f31c1832af18859f1f2" - integrity sha512-mCKoyTGfRNisge4br0NpOFSy2Z1NnEW8hbCJdUDdJFHrPqVzc4IIBPA/vX0U+LUcQqrQvJX+HMIU0dbDRe0i0Q== +"@opentelemetry/instrumentation-amqplib@0.64.0": + version "0.64.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.64.0.tgz#cfd80a7174642d84ad96b6e0168b0a62df771365" + integrity sha512-yiTkjF7bSGp25UmhIYqKkbxyxDDD8w3fFf0KHkpc0m+8DsEXqmuu5a5buERSoeoT7wGgUSCuFcsm+BwlKetK4w== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.0" -"@opentelemetry/instrumentation-aws-sdk@0.69.0": - version "0.69.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.69.0.tgz#461de2337b1931c195f0d284760206a657bdee06" - integrity sha512-JfSp3anFL5Lx/ysQSa4MnKxvSsXSnYpgQ831Y+yNs5wJZcJC4tB+YpnKH+bU5oFdKEF59FpI6Gn5Wg2vjVpR2A== +"@opentelemetry/instrumentation-aws-sdk@0.72.0": + version "0.72.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.72.0.tgz#9207d77efdb17f9664a6f9930425ee8f45806fae" + integrity sha512-E274IgU5FWknUEu4KYh1pF5jZTRHyrZcoRE8z2BMQZ1ywgE0cldi8hIGcmSbS+0yKynHCxigpr4iYowaJFWs0w== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.34.0" -"@opentelemetry/instrumentation-connect@0.57.0": - version "0.57.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.57.0.tgz#66b58af135ef6d52ad546cb440b808a149118296" - integrity sha512-FMEBChnI4FLN5TE9DHwfH7QpNir1JzXno1uz/TAucVdLCyrG0jTrKIcNHt/i30A0M2AunNBCkcd8Ei26dIPKdg== +"@opentelemetry/instrumentation-connect@0.60.0": + version "0.60.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.60.0.tgz#77df3d245321653294e3a01aaeac657ccc4ef7c0" + integrity sha512-55YFP5ae2tuivf2EENGVN+woYHmGZdmcU1BVCyMZQ0BRJCNLJ35+ouJSUKlMmF/zTv1gvdFXkTuC7c3/E3HRoQ== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.27.0" "@types/connect" "3.4.38" -"@opentelemetry/instrumentation-dataloader@0.31.0": - version "0.31.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.31.0.tgz#43bfbe09f99e84eb0d8b6e9f914c2e51a45e6d95" - integrity sha512-f654tZFQXS5YeLDNb9KySrwtg7SnqZN119FauD7acBoTzuLduaiGTNz88ixcVSOOMGZ+EjJu/RFtx5klObC95g== +"@opentelemetry/instrumentation-dataloader@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.34.0.tgz#c438ba649729eacb1454a9883770df7ab22875a8" + integrity sha512-Pq49BecX5HE5betSxutz/wtWIIZTgrPO32ZSxEk6nYJ1H/LWkQAsR/fSd2LZ2fdw2kLbkqCnw2rjOB5T9yESNw== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" -"@opentelemetry/instrumentation-fs@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.33.0.tgz#75f2ccf653b772801b398cc2ad0974e8785f2e3d" - integrity sha512-sCZWXGalQ01wr3tAhSR9ucqFJ0phidpAle6/17HVjD6gN8FLmZMK/8sKxdXYHy3PbnlV1P4zeiSVFNKpbFMNLA== +"@opentelemetry/instrumentation-fs@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.36.0.tgz#8f422c248d0f141302c27d7b856a817157783a0e" + integrity sha512-W7MhFtkZR4bnPi3GYivsH6RqwdtzTqkhZEJZ3YKuadncFhvNgEz6F/ZGkaNwuP/QbdcMhu9/lTDa+uJqzu4Mjg== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" -"@opentelemetry/instrumentation-generic-pool@0.57.0": - version "0.57.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.57.0.tgz#4220a2fc1974b40a989171a9b5f3d1eeab92683f" - integrity sha512-orhmlaK+ZIW9hKU+nHTbXrCSXZcH83AescTqmpamHRobRmYSQwRbD0a1odc0yAzuzOtxYiHiXAnpnIpaSSY7Ow== +"@opentelemetry/instrumentation-generic-pool@0.60.0": + version "0.60.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.60.0.tgz#65b69c90509e59ad707f2e64a38da426f4fdf147" + integrity sha512-W7NXzadxYr73yUuXQC7V/rfrzWGRhopeWiVXaNc6fZzq/ocTE4D+MZqunyC9vlbmY6GABofIuxxziesNtebMJQ== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" -"@opentelemetry/instrumentation-graphql@0.62.0": - version "0.62.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.62.0.tgz#dc2fc92c6be331c4f95b62a40983c8aedb8f9bf9" - integrity sha512-3YNuLVPUxafXkH1jBAbGsKNsP3XVzcFDhCDCE3OqBwCwShlqQbLMRMFh1T/d5jaVZiGVmSsfof+ICKD2iOV8xg== +"@opentelemetry/instrumentation-graphql@0.65.0": + version "0.65.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.65.0.tgz#92a86c1a34e2840d4f8bc145295f7143e079dc48" + integrity sha512-Qj1R0+ltveYtXpUTI606O6mEKWqWPYv+9v5j6G8ypFf2sZHW9L4Z8NEuCxPufhIJhW6HsKGeEzP0B3QB8ZZntQ== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" -"@opentelemetry/instrumentation-hapi@0.60.0": - version "0.60.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.60.0.tgz#ad1ba65a32347351c310ac0f194fe66b8e9d9e7d" - integrity sha512-aNljZKYrEa7obLAxd1bCEDxF7kzCLGXTuTJZ8lMR9rIVEjmuKBXN1gfqpm/OB//Zc2zP4iIve1jBp7sr3mQV6w== +"@opentelemetry/instrumentation-hapi@0.63.0": + version "0.63.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.63.0.tgz#4ae10fd8daddabb028059d75107601d5115c026e" + integrity sha512-8WlkrIkwtMP77PS7WXSwrPJY3yv1FUgDvNwje0KoZH8Dx7jxu5mEwn36fGnLCYkiUmJeMYhKydpShjY0XGs/8g== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.27.0" -"@opentelemetry/instrumentation-http@0.214.0": - version "0.214.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.214.0.tgz#d4a31a638b798e191f4f556c257a4d3c97d65ba0" - integrity sha512-FlkDhZDRjDJDcO2LcSCtjRpkal1NJ8y0fBqBhTvfAR3JSYY2jAIj1kSS5IjmEBt4c3aWv+u/lqLuoCDrrKCSKg== +"@opentelemetry/instrumentation-http@0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.217.0.tgz#75b6255e3faba6d20712d09b596b31b2a2d28570" + integrity sha512-B88Y7k5A9a60pHUboFoeJlgVwXq2T0rsZKj6dTwzSMKSOsNXR4Jz5ovwprVn3kHLAZrkyLEjQtBJ34DYHs1U4Q== dependencies: - "@opentelemetry/core" "2.6.1" - "@opentelemetry/instrumentation" "0.214.0" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/instrumentation" "0.217.0" "@opentelemetry/semantic-conventions" "^1.29.0" forwarded-parse "2.1.2" -"@opentelemetry/instrumentation-kafkajs@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.23.0.tgz#6b7d449d88d674ddc295a0d0cf2156f0f7d5889f" - integrity sha512-4K+nVo+zI+aDz0Z85SObwbdixIbzS9moIuKJaYsdlzcHYnKOPtB7ya8r8Ezivy/GVIBHiKJVq4tv+BEkgOMLaQ== +"@opentelemetry/instrumentation-kafkajs@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.26.0.tgz#4cac30bd1f2c1c14439e316aa754193a1d18bb60" + integrity sha512-tukLaQ1bHYc3exhjEydkOdy2n4nklTOYN+vhJT2GgL19FZtz3Z9sdnslTsaoiBq5mXQII6nP9O+0wLIEimIK/g== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.30.0" -"@opentelemetry/instrumentation-knex@0.58.0": - version "0.58.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.58.0.tgz#48878fe40bc48834d6b4c4148433c84524a2558a" - integrity sha512-Hc/o8fSsaWxZ8r1Yw4rNDLwTpUopTf4X32y4W6UhlHmW8Wizz8wfhgOKIelSeqFVTKBBPIDUOsQWuIMxBmu8Bw== +"@opentelemetry/instrumentation-knex@0.61.0": + version "0.61.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.61.0.tgz#b433d156fdb6cfde9e98ea7cc95c5f877fd42f03" + integrity sha512-gpSLnEhkKS65okAmne1NKiwXXQ/7Zh8AhMP5eNIVJjacyso73fEnYFT6yOlRxUPF0eZbJAAGIVPGMTGjaPCF+A== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.1" -"@opentelemetry/instrumentation-koa@0.62.0": - version "0.62.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.62.0.tgz#65fdf96c1b1ffb382167cd3b7a244631afd0cc1f" - integrity sha512-uVip0VuGUQXZ+vFxkKxAUNq8qNl+VFlyHDh/U6IQ8COOEDfbEchdaHnpFrMYF3psZRUuoSIgb7xOeXj00RdwDA== +"@opentelemetry/instrumentation-koa@0.65.0": + version "0.65.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.65.0.tgz#b3b514e2b506f9be78a178307e833e52deb1a7c7" + integrity sha512-3GgDktABVRmu25LLtIiCE62gZ5qKAo8d2z4WoBS+roQK/SlbJw4i5IlGWuzeCz/y6XgSmKR3yguPCY8c5nvI7A== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.36.0" -"@opentelemetry/instrumentation-lru-memoizer@0.58.0": - version "0.58.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.58.0.tgz#7c730a0cb963e8ac5f3d11023518050e5f124a6a" - integrity sha512-6grM3TdMyHzlGY1cUA+mwoPueB1F3dYKgKtZIH6jOFXqfHAByyLTc+6PFjGM9tKh52CFBJaDwodNlL/Td39z7Q== +"@opentelemetry/instrumentation-lru-memoizer@0.61.0": + version "0.61.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.61.0.tgz#6d7a1fd39870935569b90c10832fe913ad8d8de9" + integrity sha512-p2oA8PDPTUE0wxRpeGmkr7B8M0aL+zkcX3jv3Ce+Z9zjYaEyWfOxpPiXQjZIGn0WTIo1ZPvyQi+3ZYui+Nmzsw== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" -"@opentelemetry/instrumentation-mongodb@0.67.0": - version "0.67.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.67.0.tgz#ac45611586e363e2d96c735d50f97556dd33c37e" - integrity sha512-1WJp5N1lYfHq2IhECOTewFs5Tf2NfUOwQRqs/rZdXKTezArMlucxgzAaqcgp3A3YREXopXTpXHsxZTGHjNhMdQ== +"@opentelemetry/instrumentation-mongodb@0.70.0": + version "0.70.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.70.0.tgz#a2559d26d85799a628389044fee17c2cf8093931" + integrity sha512-9DeBe6SiOkguL5uRyj20ma0I1lXgW0EYc9mUnABlMzbxYC3b7sczUFSj37eWaLzZNzTVQNr+U8UZZP2LvlZ+vw== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.0" -"@opentelemetry/instrumentation-mongoose@0.60.0": - version "0.60.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.60.0.tgz#9481a90d3f75d66244d7f63709529cb7f2823103" - integrity sha512-8BahAZpKsOoc+lrZGb7Ofn4g3z8qtp5IxDfvAVpKXsEheQN7ONMH5djT5ihy6yf8yyeQJGS0gXFfpEAEeEHqQg== +"@opentelemetry/instrumentation-mongoose@0.63.0": + version "0.63.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.63.0.tgz#bbefd6d0addbf8f4cd3a7018bdc5b4f7637cfb56" + integrity sha512-UsttKQ02fp+FlEw+fQLUVqXLzoxSBpqdzOpKM4DVY8Jy4/53skDnVVDODk9CyUAzD3WSmlglf3Cnl7T5awwV+A== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.0" -"@opentelemetry/instrumentation-mysql2@0.60.0": - version "0.60.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.60.0.tgz#10eddc3f933a80f11e334ae31c67e9d1156373ca" - integrity sha512-m/5d3bxQALllCzezYDk/6vajh0tj5OijMMvOZGr+qN1NMXm1dzMNwyJ0gNZW7Fo3YFRyj/jJMxIw+W7d525dlw== +"@opentelemetry/instrumentation-mysql2@0.63.0": + version "0.63.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.63.0.tgz#65c522eeb95efcba1346e025748d4e1147ba33ba" + integrity sha512-tQ8K4PbDUNKoCmCXcUtugidGXGqefG60S6sYH7BcOMvHZ40e3+zzMxI1GbkIEypCYNrtYJqxcQZlMO9guxJcdw== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.0" "@opentelemetry/sql-common" "^0.41.2" -"@opentelemetry/instrumentation-mysql@0.60.0": - version "0.60.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.60.0.tgz#e8e13b60f8d8fe8d0f4941f200ae3e4a4e5e4a3c" - integrity sha512-08pO8GFPEIz2zquKDGteBZDNmwketdgH8hTe9rVYgW9kCJXq1Psj3wPQGx+VaX4ZJKCfPeoLMYup9+cxHvZyVQ== +"@opentelemetry/instrumentation-mysql@0.63.0": + version "0.63.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.63.0.tgz#f2867cef880ad3b4593fb2d3f4f29b78363a8652" + integrity sha512-IFzZiZtLgQEzK74OHT921n1ARRUyRWWe/5oa5nezuwQF4XzLEXIqTP+vthrZ4QJc1qIkRLgPROVDcjz20gEKew== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.0" "@types/mysql" "2.15.27" -"@opentelemetry/instrumentation-nestjs-core@0.60.0": - version "0.60.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.60.0.tgz#60a34a8a3af7e3ab4cd7e46c783c99ff2430f2fb" - integrity sha512-BZqFAoD+frnwjpb0/T4kEEQMhl2YykZch4n2MMLKAVTzTehTBBV2hZxvFF629ipS+WOGBKjCjz1dycU9QNIckQ== +"@opentelemetry/instrumentation-nestjs-core@0.63.0": + version "0.63.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.63.0.tgz#f3044183d9041cc48ad1206b2f006489d8a5b547" + integrity sha512-uw27m1wSx4AjC+9qfKHlY4IZDQxB9+YR42jJoS5wZcAzhTD95vW8JKIt8oqfcCMBlzTk7LBlaO0J7PTdAVTWkA== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.30.0" -"@opentelemetry/instrumentation-pg@0.66.0": - version "0.66.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.66.0.tgz#78d16b50dc4c5d851015823611a46243d63a88fb" - integrity sha512-KxfLGXBb7k2ueaPJfq2GXBDXBly8P+SpR/4Mj410hhNgmQF3sCqwXvUBQxZQkDAmsdBAoenM+yV1LhtsMRamcA== +"@opentelemetry/instrumentation-pg@0.69.0": + version "0.69.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.69.0.tgz#3d4e29585d2acfddf719bb5db89cfd75de6c47d6" + integrity sha512-5tHz2AOyuYaWJePxybooIHPlV8v1EPBwrgFlfuuGXBV/EFnnQME+KEPJ9u9e3oe2aKd0gi8CEkTzZ61VwuWo5g== dependencies: "@opentelemetry/core" "^2.0.0" - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.34.0" "@opentelemetry/sql-common" "^0.41.2" "@types/pg" "8.15.6" "@types/pg-pool" "2.0.7" -"@opentelemetry/instrumentation-tedious@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.33.0.tgz#00f6698f8afae1b350bf0c463a59eeae3c8d25d7" - integrity sha512-Q6WQwAD01MMTub31GlejoiFACYNw26J426wyjvU7by7fDIr2nZXNW4vhTGs7i7F0TnXBO3xN688g1tdUgYwJ5w== +"@opentelemetry/instrumentation-tedious@0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.36.0.tgz#6302176240453ce34a24dc036f9dfa54e0af0838" + integrity sha512-CP4el0m8YFGUAfzcAnzT2+kvlvs3EKeMFdhF43c4cgMPvZrKHl/9G9H81sgXciZZrw1avBQDQ/dlqLN1vFK6HQ== dependencies: - "@opentelemetry/instrumentation" "^0.214.0" + "@opentelemetry/instrumentation" "^0.217.0" "@opentelemetry/semantic-conventions" "^1.33.0" "@types/tedious" "^4.0.14" -"@opentelemetry/instrumentation@0.214.0", "@opentelemetry/instrumentation@^0.214.0": - version "0.214.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.214.0.tgz#2649e8a29a8c4748bc583d35281c80632f046e25" - integrity sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w== +"@opentelemetry/instrumentation@0.217.0", "@opentelemetry/instrumentation@^0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.217.0.tgz#4cdea86df763cfd842e26b41535dd9f1ba407595" + integrity sha512-24ucQMjz7Y34Kw3trbxL2ZrssbtgWnR+Clpaa+YdeWuuyH3Cvk23Q03PcQvqiZrDvt8AmQmjgg9v6Y9PHoxG7w== dependencies: - "@opentelemetry/api-logs" "0.214.0" + "@opentelemetry/api-logs" "0.217.0" import-in-the-middle "^3.0.0" require-in-the-middle "^8.0.0" @@ -6385,69 +6385,69 @@ import-in-the-middle "^2.0.0" require-in-the-middle "^8.0.0" -"@opentelemetry/instrumentation@^0.212.0": - version "0.212.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.212.0.tgz#238b6e3e2131217ff4acfe7e8e7b6ce1f0ac0ba0" - integrity sha512-IyXmpNnifNouMOe0I/gX7ENfv2ZCNdYTF0FpCsoBcpbIHzk81Ww9rQTYTnvghszCg7qGrIhNvWC8dhEifgX9Jg== +"@opentelemetry/instrumentation@^0.214.0": + version "0.214.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.214.0.tgz#2649e8a29a8c4748bc583d35281c80632f046e25" + integrity sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w== dependencies: - "@opentelemetry/api-logs" "0.212.0" - import-in-the-middle "^2.0.6" + "@opentelemetry/api-logs" "0.214.0" + import-in-the-middle "^3.0.0" require-in-the-middle "^8.0.0" -"@opentelemetry/otlp-exporter-base@0.214.0": - version "0.214.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.214.0.tgz#97d63666d56e92391e6a9840959ff68c5c5a90f6" - integrity sha512-u1Gdv0/E9wP+apqWf7Wv2npXmgJtxsW2XL0TEv9FZloTZRuMBKmu8cYVXwS4Hm3q/f/3FuCnPTgiwYvIqRSpRg== +"@opentelemetry/otlp-exporter-base@0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.217.0.tgz#1ff98bf4614b3a5715212ca66b7b9e1be5bcb32a" + integrity sha512-eYfqnB3UhKu/5frhd1R6+FprKygbhkomuaceMXDyzxbfXB9tKgZOVmjaJ02CkLA6Tdzumxl+e2H+vo2a8jiMPQ== dependencies: - "@opentelemetry/core" "2.6.1" - "@opentelemetry/otlp-transformer" "0.214.0" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/otlp-transformer" "0.217.0" -"@opentelemetry/otlp-transformer@0.214.0": - version "0.214.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.214.0.tgz#c3dca1101364cb819090356f51979f503e6c5330" - integrity sha512-DSaYcuBRh6uozfsWN3R8HsN0yDhCuWP7tOFdkUOVaWD1KVJg8m4qiLUsg/tNhTLS9HUYUcwNpwL2eroLtsZZ/w== +"@opentelemetry/otlp-transformer@0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.217.0.tgz#b31ff24acd81cfc0b7fefc5d123ab8b3537a3556" + integrity sha512-MKK8UHKFUOGAvbZRWh90MhwHG+Fxm6OROBdjKPCF+HQobjuJ/Kuf8Chs8CR45X1aqotxrMj7OxTdsXe8sXuGVA== dependencies: - "@opentelemetry/api-logs" "0.214.0" - "@opentelemetry/core" "2.6.1" - "@opentelemetry/resources" "2.6.1" - "@opentelemetry/sdk-logs" "0.214.0" - "@opentelemetry/sdk-metrics" "2.6.1" - "@opentelemetry/sdk-trace-base" "2.6.1" - protobufjs "^7.0.0" - -"@opentelemetry/resources@2.6.1", "@opentelemetry/resources@^2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-2.6.1.tgz#e1b02772c5f65c0e074d59e4743188f7575e97c7" - integrity sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA== + "@opentelemetry/api-logs" "0.217.0" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/resources" "2.7.1" + "@opentelemetry/sdk-logs" "0.217.0" + "@opentelemetry/sdk-metrics" "2.7.1" + "@opentelemetry/sdk-trace-base" "2.7.1" + protobufjs "8.0.1" + +"@opentelemetry/resources@2.7.1", "@opentelemetry/resources@^2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-2.7.1.tgz#3b2a9179f6119bb1f2cddefe41ba9b2855504a5d" + integrity sha512-DeT6KKolmC4e/dRQvMQ/RwlnzhaqeiFOXY5ngoOPJ07GgVVKxZOg9EcrNZb5aTzUn+iCrJldAgOfQm1O/QfPAQ== dependencies: - "@opentelemetry/core" "2.6.1" + "@opentelemetry/core" "2.7.1" "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/sdk-logs@0.214.0": - version "0.214.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.214.0.tgz#3d887ef93d8d65f1230a68900209b8a9e8e03c76" - integrity sha512-zf6acnScjhsaBUU22zXZ/sLWim1dfhUAbGXdMmHmNG3LfBnQ3DKsOCITb2IZwoUsNNMTogqFKBnlIPPftUgGwA== +"@opentelemetry/sdk-logs@0.217.0": + version "0.217.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.217.0.tgz#a01ae00658cf5bf79212e6006ea8b6ec1d985eb8" + integrity sha512-BB+PcHItcZDL63dPMW+mJvwN9rk37wuIDjRxbVlg6pPDvDR/7GL7UJHbGsllgoggOoTimsKgENaWPoGch/oE1A== dependencies: - "@opentelemetry/api-logs" "0.214.0" - "@opentelemetry/core" "2.6.1" - "@opentelemetry/resources" "2.6.1" + "@opentelemetry/api-logs" "0.217.0" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/resources" "2.7.1" "@opentelemetry/semantic-conventions" "^1.29.0" -"@opentelemetry/sdk-metrics@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-2.6.1.tgz#9cdc9e636ec31399f228f23d9663beda5e63ee56" - integrity sha512-9t9hJHX15meBy2NmTJxL+NJfXmnausR2xUDvE19XQce0Qi/GBtDGamU8nS1RMbdgDmhgpm3VaOu2+fiS/SfTpQ== +"@opentelemetry/sdk-metrics@2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-2.7.1.tgz#b713f69dd67933ecc9c61357f1d452cdc9f4e281" + integrity sha512-MpDJdkiFDs3Pm1RHO3KByuZbuBdJEXEAkiC0+yJdsZGVCdf1RpHR6n+LHDcS7ffmfrt5kVCzJSCfm4z2C7v0uQ== dependencies: - "@opentelemetry/core" "2.6.1" - "@opentelemetry/resources" "2.6.1" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/resources" "2.7.1" -"@opentelemetry/sdk-trace-base@2.6.1", "@opentelemetry/sdk-trace-base@^2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.6.1.tgz#ed353062be4c28a0649247ad369654020c29bfce" - integrity sha512-r86ut4T1e8vNwB35CqCcKd45yzqH6/6Wzvpk2/cZB8PsPLlZFTvrh8yfOS3CYZYcUmAx4hHTZJ8AO8Dj8nrdhw== +"@opentelemetry/sdk-trace-base@2.7.1", "@opentelemetry/sdk-trace-base@^2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.7.1.tgz#9160c3af9ef2219c26563abd136e22fb7d19b34f" + integrity sha512-NAYIlsF8MPUsKqJMiDQJTMPOmlbawC1Iz/omMLygZ1C9am8fTKYjTaI+OZM+WTY3t3Glo0wnOg/6/pac6RGPPw== dependencies: - "@opentelemetry/core" "2.6.1" - "@opentelemetry/resources" "2.6.1" + "@opentelemetry/core" "2.7.1" + "@opentelemetry/resources" "2.7.1" "@opentelemetry/semantic-conventions" "^1.29.0" "@opentelemetry/semantic-conventions@^1.27.0", "@opentelemetry/semantic-conventions@^1.28.0", "@opentelemetry/semantic-conventions@^1.29.0", "@opentelemetry/semantic-conventions@^1.30.0", "@opentelemetry/semantic-conventions@^1.33.0", "@opentelemetry/semantic-conventions@^1.33.1", "@opentelemetry/semantic-conventions@^1.34.0", "@opentelemetry/semantic-conventions@^1.36.0", "@opentelemetry/semantic-conventions@^1.40.0": @@ -6986,10 +6986,10 @@ dependencies: "@prisma/debug" "6.15.0" -"@prisma/instrumentation@7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@prisma/instrumentation/-/instrumentation-7.6.0.tgz#22a4ea3e9d8cdc57cbaa0e26ccf10cb8db854549" - integrity sha512-ZPW2gRiwpPzEfgeZgaekhqXrbW+Y2RJKHVqUmlhZhKzRNCcvR6DykzylDrynpArKKRQtLxoZy36fK7U0p3pdgQ== +"@prisma/instrumentation@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@prisma/instrumentation/-/instrumentation-7.8.0.tgz#521f0e6504af025e746450c935025eac254aec45" + integrity sha512-15aMqRqQtEMxSSVGNKP7wnFkDjm83tiIJmxioHvxl7xeKTRpvMTN2EbpRGJ9PvAYWn/mnqHdw4br/s49juZ87w== dependencies: "@opentelemetry/instrumentation" "^0.207.0" @@ -19217,7 +19217,7 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-in-the-middle@^2.0.0, import-in-the-middle@^2.0.6: +import-in-the-middle@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz#1972337bfe020d05f6b5e020c13334567436324f" integrity sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw== @@ -25551,10 +25551,10 @@ property-information@^7.0.0: resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== -protobufjs@^7.0.0: - version "7.5.5" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.5.5.tgz#b7089ca4410374c75150baf277353ef76db69f96" - integrity sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg== +protobufjs@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-8.0.1.tgz#c1781abf9a73812cbd483b32138ac59948223806" + integrity sha512-NWWCCscLjs+cOKF/s/XVNFRW7Yih0fdH+9brffR5NZCy8k42yRdl5KlWKMVXuI1vfCoy4o1z80XR/W/QUb3V3w== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -28493,7 +28493,6 @@ stylus@0.59.0, stylus@^0.59.0: sucrase@^3.27.0, sucrase@^3.35.0, sucrase@getsentry/sucrase#es2020-polyfills: version "3.36.0" - uid fd682f6129e507c00bb4e6319cc5d6b767e36061 resolved "https://codeload.github.com/getsentry/sucrase/tar.gz/fd682f6129e507c00bb4e6319cc5d6b767e36061" dependencies: "@jridgewell/gen-mapping" "^0.3.2"