diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/middleware.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/middleware.test.ts index 69fe5a8670c8..2dd20e173d98 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/middleware.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/middleware.test.ts @@ -78,7 +78,6 @@ test('Should trace outgoing fetch requests inside middleware and create breadcru span_id: expect.any(String), start_timestamp: expect.any(Number), status: 'ok', - tags: { 'http.status_code': '200' }, timestamp: expect.any(Number), trace_id: expect.any(String), }, diff --git a/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/propagation.test.ts b/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/propagation.test.ts index cbb2c889edec..8a2174b0185a 100644 --- a/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/propagation.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/propagation.test.ts @@ -3,11 +3,6 @@ import { Span } from '@sentry/types'; import axios from 'axios'; import { waitForTransaction } from '../event-proxy-server'; -const authToken = process.env.E2E_TEST_AUTH_TOKEN; -const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG; -const sentryTestProject = process.env.E2E_TEST_SENTRY_TEST_PROJECT; -const EVENT_POLLING_TIMEOUT = 90_000; - test('Propagates trace for outgoing http requests', async ({ baseURL }) => { const inboundTransactionPromise = waitForTransaction('node-experimental-fastify-app', transactionEvent => { return ( @@ -55,56 +50,38 @@ test('Propagates trace for outgoing http requests', async ({ baseURL }) => { ]), ); - expect(outboundTransaction).toEqual( - expect.objectContaining({ - contexts: expect.objectContaining({ - trace: { - data: { - url: 'http://localhost:3030/test-outgoing-http', - 'otel.kind': 'SERVER', - 'http.response.status_code': 200, - 'sentry.op': 'http.server', - 'sentry.origin': 'auto.http.otel.http', - 'sentry.source': 'route', - }, - op: 'http.server', - span_id: expect.any(String), - status: 'ok', - tags: { - 'http.status_code': '200', - }, - trace_id: traceId, - origin: 'auto.http.otel.http', - }, - }), - }), - ); + expect(outboundTransaction.contexts?.trace).toEqual({ + data: { + url: 'http://localhost:3030/test-outgoing-http', + 'otel.kind': 'SERVER', + 'http.response.status_code': 200, + 'sentry.op': 'http.server', + 'sentry.origin': 'auto.http.otel.http', + 'sentry.source': 'route', + }, + op: 'http.server', + span_id: expect.any(String), + status: 'ok', + trace_id: traceId, + origin: 'auto.http.otel.http', + }); - expect(inboundTransaction).toEqual( - expect.objectContaining({ - contexts: expect.objectContaining({ - trace: { - data: { - url: 'http://localhost:3030/test-inbound-headers', - 'otel.kind': 'SERVER', - 'http.response.status_code': 200, - 'sentry.op': 'http.server', - 'sentry.origin': 'auto.http.otel.http', - 'sentry.source': 'route', - }, - op: 'http.server', - parent_span_id: outgoingHttpSpanId, - span_id: expect.any(String), - status: 'ok', - tags: { - 'http.status_code': '200', - }, - trace_id: traceId, - origin: 'auto.http.otel.http', - }, - }), - }), - ); + expect(inboundTransaction.contexts?.trace).toEqual({ + data: { + url: 'http://localhost:3030/test-inbound-headers', + 'otel.kind': 'SERVER', + 'http.response.status_code': 200, + 'sentry.op': 'http.server', + 'sentry.origin': 'auto.http.otel.http', + 'sentry.source': 'route', + }, + op: 'http.server', + parent_span_id: outgoingHttpSpanId, + span_id: expect.any(String), + status: 'ok', + trace_id: traceId, + origin: 'auto.http.otel.http', + }); }); test('Propagates trace for outgoing fetch requests', async ({ baseURL }) => { @@ -154,54 +131,36 @@ test('Propagates trace for outgoing fetch requests', async ({ baseURL }) => { ]), ); - expect(outboundTransaction).toEqual( - expect.objectContaining({ - contexts: expect.objectContaining({ - trace: { - data: { - url: 'http://localhost:3030/test-outgoing-fetch', - 'otel.kind': 'SERVER', - 'http.response.status_code': 200, - 'sentry.op': 'http.server', - 'sentry.origin': 'auto.http.otel.http', - 'sentry.source': 'route', - }, - op: 'http.server', - span_id: expect.any(String), - status: 'ok', - tags: { - 'http.status_code': '200', - }, - trace_id: traceId, - origin: 'auto.http.otel.http', - }, - }), - }), - ); + expect(outboundTransaction.contexts?.trace).toEqual({ + data: { + url: 'http://localhost:3030/test-outgoing-fetch', + 'otel.kind': 'SERVER', + 'http.response.status_code': 200, + 'sentry.op': 'http.server', + 'sentry.origin': 'auto.http.otel.http', + 'sentry.source': 'route', + }, + op: 'http.server', + span_id: expect.any(String), + status: 'ok', + trace_id: traceId, + origin: 'auto.http.otel.http', + }); - expect(inboundTransaction).toEqual( - expect.objectContaining({ - contexts: expect.objectContaining({ - trace: { - data: { - url: 'http://localhost:3030/test-inbound-headers', - 'otel.kind': 'SERVER', - 'http.response.status_code': 200, - 'sentry.op': 'http.server', - 'sentry.origin': 'auto.http.otel.http', - 'sentry.source': 'route', - }, - op: 'http.server', - parent_span_id: outgoingHttpSpanId, - span_id: expect.any(String), - status: 'ok', - tags: { - 'http.status_code': '200', - }, - trace_id: traceId, - origin: 'auto.http.otel.http', - }, - }), + expect(inboundTransaction.contexts?.trace).toEqual({ + data: expect.objectContaining({ + url: 'http://localhost:3030/test-inbound-headers', + 'otel.kind': 'SERVER', + 'http.response.status_code': 200, + 'sentry.op': 'http.server', + 'sentry.origin': 'auto.http.otel.http', + 'sentry.source': 'route', }), - ); + op: 'http.server', + parent_span_id: outgoingHttpSpanId, + span_id: expect.any(String), + status: 'ok', + trace_id: traceId, + origin: 'auto.http.otel.http', + }); }); diff --git a/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/transactions.test.ts index 0429adca8623..0cb468f6361e 100644 --- a/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-experimental-fastify-app/tests/transactions.test.ts @@ -20,29 +20,24 @@ test('Sends an API route transaction', async ({ baseURL }) => { const transactionEvent = await pageloadTransactionEventPromise; const transactionEventId = transactionEvent.event_id; + expect(transactionEvent.contexts?.trace).toEqual({ + data: { + url: 'http://localhost:3030/test-transaction', + 'otel.kind': 'SERVER', + 'http.response.status_code': 200, + 'sentry.op': 'http.server', + 'sentry.origin': 'auto.http.otel.http', + 'sentry.source': 'route', + }, + op: 'http.server', + span_id: expect.any(String), + status: 'ok', + trace_id: expect.any(String), + origin: 'auto.http.otel.http', + }); + expect(transactionEvent).toEqual( expect.objectContaining({ - contexts: expect.objectContaining({ - trace: { - data: { - url: 'http://localhost:3030/test-transaction', - 'otel.kind': 'SERVER', - 'http.response.status_code': 200, - 'sentry.op': 'http.server', - 'sentry.origin': 'auto.http.otel.http', - 'sentry.source': 'route', - }, - op: 'http.server', - span_id: expect.any(String), - status: 'ok', - tags: { - 'http.status_code': '200', - }, - trace_id: expect.any(String), - origin: 'auto.http.otel.http', - }, - }), - spans: [ { data: { @@ -90,9 +85,6 @@ test('Sends an API route transaction', async ({ baseURL }) => { origin: 'manual', }, ], - tags: { - 'http.status_code': '200', - }, transaction: 'GET /test-transaction', type: 'transaction', transaction_info: { diff --git a/dev-packages/e2e-tests/test-applications/sveltekit/test/performance.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit/test/performance.test.ts index e0d3d16df1ab..9982678da122 100644 --- a/dev-packages/e2e-tests/test-applications/sveltekit/test/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/sveltekit/test/performance.test.ts @@ -22,9 +22,6 @@ test('sends a pageload transaction', async ({ page }) => { origin: 'auto.pageload.sveltekit', }, }, - tags: { - 'routing.instrumentation': '@sentry/sveltekit', - }, }); }); diff --git a/dev-packages/node-integration-tests/suites/express/tracing-experimental/test.ts b/dev-packages/node-integration-tests/suites/express/tracing-experimental/test.ts index ca3ff93435c8..337a1166ee64 100644 --- a/dev-packages/node-integration-tests/suites/express/tracing-experimental/test.ts +++ b/dev-packages/node-integration-tests/suites/express/tracing-experimental/test.ts @@ -21,9 +21,6 @@ describe('express tracing experimental', () => { }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, spans: expect.arrayContaining([ @@ -61,9 +58,6 @@ describe('express tracing experimental', () => { }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, }, @@ -93,9 +87,6 @@ describe('express tracing experimental', () => { }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, }, @@ -133,9 +124,6 @@ describe('express tracing experimental', () => { }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, }, diff --git a/dev-packages/node-integration-tests/suites/express/tracing/test.ts b/dev-packages/node-integration-tests/suites/express/tracing/test.ts index b0779e21cec0..5c9e7743636f 100644 --- a/dev-packages/node-integration-tests/suites/express/tracing/test.ts +++ b/dev-packages/node-integration-tests/suites/express/tracing/test.ts @@ -19,9 +19,6 @@ test('should create and send transactions for Express routes and spans for middl }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, spans: [ @@ -55,9 +52,6 @@ test('should set a correct transaction name for routes specified in RegEx', done }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, }, @@ -87,9 +81,6 @@ test.each([['array1'], ['array5']])( }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, }, @@ -127,9 +118,6 @@ test.each([ }, op: 'http.server', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, }, }, diff --git a/dev-packages/node-integration-tests/suites/tracing/spans/test.ts b/dev-packages/node-integration-tests/suites/tracing/spans/test.ts index dac3ec15dd74..0d882dd84b31 100644 --- a/dev-packages/node-integration-tests/suites/tracing/spans/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/spans/test.ts @@ -22,18 +22,12 @@ test('should capture spans for outgoing http requests', async () => { op: 'http.client', origin: 'auto.http.node.http', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, { description: 'GET http://match-this-url.com/api/v1', op: 'http.client', origin: 'auto.http.node.http', status: 'ok', - tags: { - 'http.status_code': '200', - }, }, ], }); diff --git a/packages/angular/src/tracing.ts b/packages/angular/src/tracing.ts index 4ac977c66f48..6ad3ba46776d 100644 --- a/packages/angular/src/tracing.ts +++ b/packages/angular/src/tracing.ts @@ -144,8 +144,6 @@ export class TraceService implements OnDestroy { attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url', - }, - tags: { url: strippedUrl, ...(navigationEvent.navigationTrigger && { navigationTrigger: navigationEvent.navigationTrigger, @@ -176,8 +174,7 @@ export class TraceService implements OnDestroy { name: `${navigationEvent.url}`, op: ANGULAR_ROUTING_OP, origin: 'auto.ui.angular', - tags: { - 'routing.instrumentation': '@sentry/angular', + attributes: { url: strippedUrl, ...(navigationEvent.navigationTrigger && { navigationTrigger: navigationEvent.navigationTrigger, diff --git a/packages/bun/test/integrations/bunserver.test.ts b/packages/bun/test/integrations/bunserver.test.ts index c6bcf62de229..35aac412717f 100644 --- a/packages/bun/test/integrations/bunserver.test.ts +++ b/packages/bun/test/integrations/bunserver.test.ts @@ -25,10 +25,7 @@ describe('Bun Serve Integration', () => { test('generates a transaction around a request', async () => { client.on('finishTransaction', transaction => { expect(transaction.status).toBe('ok'); - // eslint-disable-next-line deprecation/deprecation - expect(transaction.tags).toEqual({ - 'http.status_code': '200', - }); + expect(spanToJSON(transaction).data?.['http.response.status_code']).toEqual(200); expect(spanToJSON(transaction).op).toEqual('http.server'); expect(spanToJSON(transaction).description).toEqual('GET /'); }); @@ -48,10 +45,7 @@ describe('Bun Serve Integration', () => { test('generates a post transaction', async () => { client.on('finishTransaction', transaction => { expect(transaction.status).toBe('ok'); - // eslint-disable-next-line deprecation/deprecation - expect(transaction.tags).toEqual({ - 'http.status_code': '200', - }); + expect(spanToJSON(transaction).data?.['http.response.status_code']).toEqual(200); expect(spanToJSON(transaction).op).toEqual('http.server'); expect(spanToJSON(transaction).description).toEqual('POST /'); }); diff --git a/packages/core/src/tracing/spanstatus.ts b/packages/core/src/tracing/spanstatus.ts index 7ccb4883169c..3855fda0307e 100644 --- a/packages/core/src/tracing/spanstatus.ts +++ b/packages/core/src/tracing/spanstatus.ts @@ -128,17 +128,7 @@ export function getSpanStatusFromHttpCode(httpStatus: number): SpanStatusType { * Additionally, the span's status is updated, depending on the http code. */ export function setHttpStatus(span: Span, httpStatus: number): void { - // TODO (v8): Remove these calls - // Relay does not require us to send the status code as a tag - // For now, just because users might expect it to land as a tag we keep sending it. - // Same with data. - // In v8, we replace both, simply with - // span.setAttribute('http.response.status_code', httpStatus); - - // eslint-disable-next-line deprecation/deprecation - span.setTag('http.status_code', String(httpStatus)); - // eslint-disable-next-line deprecation/deprecation - span.setData('http.response.status_code', httpStatus); + span.setAttribute('http.response.status_code', httpStatus); const spanStatus = getSpanStatusFromHttpCode(httpStatus); if (spanStatus !== 'unknown_error') { diff --git a/packages/core/test/lib/tracing/spanstatus.test.ts b/packages/core/test/lib/tracing/spanstatus.test.ts index de3411ee2a77..3c72406209ca 100644 --- a/packages/core/test/lib/tracing/spanstatus.test.ts +++ b/packages/core/test/lib/tracing/spanstatus.test.ts @@ -20,11 +20,10 @@ describe('setHttpStatus', () => { setHttpStatus(span!, code); - const { status: spanStatus, data, tags } = spanToJSON(span!); + const { status: spanStatus, data } = spanToJSON(span!); expect(spanStatus).toBe(status); expect(data).toMatchObject({ 'http.response.status_code': code }); - expect(tags).toMatchObject({ 'http.status_code': String(code) }); }); it("doesn't set the status for an unknown http status code", () => { @@ -32,10 +31,9 @@ describe('setHttpStatus', () => { setHttpStatus(span!, 600); - const { status: spanStatus, data, tags } = spanToJSON(span!); + const { status: spanStatus, data } = spanToJSON(span!); expect(spanStatus).toBeUndefined(); expect(data).toMatchObject({ 'http.response.status_code': 600 }); - expect(tags).toMatchObject({ 'http.status_code': '600' }); }); }); diff --git a/packages/core/test/lib/utils/spanUtils.test.ts b/packages/core/test/lib/utils/spanUtils.test.ts index 6453681e7867..bf89b99bc733 100644 --- a/packages/core/test/lib/utils/spanUtils.test.ts +++ b/packages/core/test/lib/utils/spanUtils.test.ts @@ -68,9 +68,6 @@ describe('spanToJSON', () => { parentSpanId: '1234', spanId: '5678', status: 'ok', - tags: { - foo: 'bar', - }, traceId: 'abcd', origin: 'auto', startTimestamp: 123, @@ -83,9 +80,6 @@ describe('spanToJSON', () => { parent_span_id: '1234', span_id: '5678', status: 'ok', - tags: { - foo: 'bar', - }, trace_id: 'abcd', origin: 'auto', start_timestamp: 123, diff --git a/packages/ember/addon/instance-initializers/sentry-performance.ts b/packages/ember/addon/instance-initializers/sentry-performance.ts index eee0d3065830..7cd61dd222cd 100644 --- a/packages/ember/addon/instance-initializers/sentry-performance.ts +++ b/packages/ember/addon/instance-initializers/sentry-performance.ts @@ -116,11 +116,8 @@ export function _instrumentEmberRouter( origin: 'auto.pageload.ember', attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', - }, - tags: { url, toRoute: routeInfo.name, - 'routing.instrumentation': '@sentry/ember', }, }); } @@ -146,11 +143,8 @@ export function _instrumentEmberRouter( origin: 'auto.navigation.ember', attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', - }, - tags: { fromRoute, toRoute, - 'routing.instrumentation': '@sentry/ember', }, }); diff --git a/packages/ember/tests/acceptance/sentry-performance-test.ts b/packages/ember/tests/acceptance/sentry-performance-test.ts index 7ee5ccfcc14a..db22ff063c21 100644 --- a/packages/ember/tests/acceptance/sentry-performance-test.ts +++ b/packages/ember/tests/acceptance/sentry-performance-test.ts @@ -21,7 +21,7 @@ module('Acceptance | Sentry Performance', function (hooks) { 'ui.ember.component.render | component:test-section', ], transaction: 'route:tracing', - tags: { + attributes: { fromRoute: undefined, toRoute: 'tracing', }, @@ -50,7 +50,7 @@ module('Acceptance | Sentry Performance', function (hooks) { ], transaction: 'route:slow-loading-route.index', durationCheck: duration => duration > SLOW_TRANSITION_WAIT, - tags: { + attributes: { fromRoute: 'tracing', toRoute: 'slow-loading-route.index', }, diff --git a/packages/ember/tests/helpers/utils.ts b/packages/ember/tests/helpers/utils.ts index 7e7715fc57f5..0833e80b0d8b 100644 --- a/packages/ember/tests/helpers/utils.ts +++ b/packages/ember/tests/helpers/utils.ts @@ -51,7 +51,7 @@ export function assertSentryTransactions( options: { spans: string[]; transaction: string; - tags: Record; + attributes: Record; durationCheck?: (duration: number) => boolean; }, ): void { @@ -83,8 +83,10 @@ export function assertSentryTransactions( assert.deepEqual(filteredSpans, options.spans, 'Has correct spans'); assert.equal(event.transaction, options.transaction); - assert.equal(event.tags?.fromRoute, options.tags.fromRoute); - assert.equal(event.tags?.toRoute, options.tags.toRoute); + + Object.keys(options.attributes).forEach(key => { + assert.equal(event.contexts?.trace?.data?.[key], options.attributes[key]); + }); if (options.durationCheck && event.timestamp && event.start_timestamp) { const duration = (event.timestamp - event.start_timestamp) * 1000; diff --git a/packages/nextjs/src/client/routing/appRouterRoutingInstrumentation.ts b/packages/nextjs/src/client/routing/appRouterRoutingInstrumentation.ts index af123524b152..8459f88454a3 100644 --- a/packages/nextjs/src/client/routing/appRouterRoutingInstrumentation.ts +++ b/packages/nextjs/src/client/routing/appRouterRoutingInstrumentation.ts @@ -9,10 +9,6 @@ import { addFetchInstrumentationHandler, browserPerformanceTimeOrigin } from '@s type StartSpanCb = (context: StartSpanOptions) => void; -const DEFAULT_TAGS = { - 'routing.instrumentation': 'next-app-router', -} as const; - /** * Instruments the Next.js Client App Router. */ @@ -29,7 +25,6 @@ export function appRouterInstrumentation( if (shouldInstrumentPageload) { startPageloadSpanCallback({ name: currPathname, - tags: DEFAULT_TAGS, // pageload should always start at timeOrigin (and needs to be in s, not ms) startTime: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined, attributes: { @@ -64,11 +59,8 @@ export function appRouterInstrumentation( startNavigationSpanCallback({ name: newPathname, - tags: { - ...DEFAULT_TAGS, - from: currPathname, - }, attributes: { + from: currPathname, [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'navigation', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.nextjs.app_router_instrumentation', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url', diff --git a/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts b/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts index a8180b3c875f..fe28ad71558e 100644 --- a/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts +++ b/packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts @@ -97,10 +97,6 @@ function extractNextDataTagInformation(): NextDataTagInfo { return nextDataTagInfo; } -const DEFAULT_TAGS = { - 'routing.instrumentation': 'next-pages-router', -} as const; - /** * Instruments the Next.js pages router. Only supported for * client side routing. Works for Next >= 10. @@ -123,7 +119,6 @@ export function pagesRouterInstrumentation( const client = getClient(); startPageloadSpanCallback({ name: prevLocationName, - tags: DEFAULT_TAGS, // pageload should always start at timeOrigin (and needs to be in s, not ms) startTime: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined, traceId, @@ -159,11 +154,8 @@ export function pagesRouterInstrumentation( startNavigationSpanCallback({ name: newLocation, - tags: { - ...DEFAULT_TAGS, - from: prevLocationName, - }, attributes: { + from: prevLocationName, [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'navigation', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.nextjs.pages_router_instrumentation', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: spanSource, diff --git a/packages/nextjs/test/integration/test/client/tracingNavigate.test.ts b/packages/nextjs/test/integration/test/client/tracingNavigate.test.ts index 23c7c6ed0a6d..6a10c502ed83 100644 --- a/packages/nextjs/test/integration/test/client/tracingNavigate.test.ts +++ b/packages/nextjs/test/integration/test/client/tracingNavigate.test.ts @@ -31,7 +31,7 @@ test('should report navigation transactions', async ({ page }) => { contexts: { trace: { op: 'navigation', - tags: { + data: { from: '/[id]/withInitialProps', }, }, @@ -51,7 +51,7 @@ test('should report navigation transactions', async ({ page }) => { contexts: { trace: { op: 'navigation', - tags: { + data: { from: '/[id]/withServerSideProps', }, }, diff --git a/packages/nextjs/test/integration/test/server/cjsApiEndpoints.test.ts b/packages/nextjs/test/integration/test/server/cjsApiEndpoints.test.ts index dfbf3b620aa8..25bbed240baa 100644 --- a/packages/nextjs/test/integration/test/server/cjsApiEndpoints.test.ts +++ b/packages/nextjs/test/integration/test/server/cjsApiEndpoints.test.ts @@ -17,7 +17,6 @@ describe('CommonJS API Endpoints', () => { trace: { op: 'http.server', status: 'ok', - tags: { 'http.status_code': '200' }, data: { 'http.response.status_code': 200, }, @@ -53,7 +52,6 @@ describe('CommonJS API Endpoints', () => { trace: { op: 'http.server', status: 'ok', - tags: { 'http.status_code': '200' }, data: { 'http.response.status_code': 200, }, @@ -89,7 +87,6 @@ describe('CommonJS API Endpoints', () => { trace: { op: 'http.server', status: 'ok', - tags: { 'http.status_code': '200' }, data: { 'http.response.status_code': 200, }, diff --git a/packages/nextjs/test/integration/test/server/errorApiEndpoint.test.ts b/packages/nextjs/test/integration/test/server/errorApiEndpoint.test.ts index d259db3f2801..53017eae6937 100644 --- a/packages/nextjs/test/integration/test/server/errorApiEndpoint.test.ts +++ b/packages/nextjs/test/integration/test/server/errorApiEndpoint.test.ts @@ -44,7 +44,6 @@ describe('Error API Endpoints', () => { trace: { op: 'http.server', status: 'internal_error', - tags: { 'http.status_code': '500' }, data: { 'http.response.status_code': 500, }, diff --git a/packages/nextjs/test/integration/test/server/tracing200.test.ts b/packages/nextjs/test/integration/test/server/tracing200.test.ts index ac6b2db163aa..6cccaa869689 100644 --- a/packages/nextjs/test/integration/test/server/tracing200.test.ts +++ b/packages/nextjs/test/integration/test/server/tracing200.test.ts @@ -15,7 +15,6 @@ describe('Tracing 200', () => { trace: { op: 'http.server', status: 'ok', - tags: { 'http.status_code': '200' }, data: { 'http.response.status_code': 200, }, diff --git a/packages/nextjs/test/integration/test/server/tracing500.test.ts b/packages/nextjs/test/integration/test/server/tracing500.test.ts index b94fe781e2d2..b06069bc70c1 100644 --- a/packages/nextjs/test/integration/test/server/tracing500.test.ts +++ b/packages/nextjs/test/integration/test/server/tracing500.test.ts @@ -15,7 +15,6 @@ describe('Tracing 500', () => { trace: { op: 'http.server', status: 'internal_error', - tags: { 'http.status_code': '500' }, data: { 'http.response.status_code': 500, }, diff --git a/packages/nextjs/test/integration/test/server/tracingHttp.test.ts b/packages/nextjs/test/integration/test/server/tracingHttp.test.ts index c39b8d72f064..b02f304489ea 100644 --- a/packages/nextjs/test/integration/test/server/tracingHttp.test.ts +++ b/packages/nextjs/test/integration/test/server/tracingHttp.test.ts @@ -19,7 +19,6 @@ describe('Tracing HTTP', () => { trace: { op: 'http.server', status: 'ok', - tags: { 'http.status_code': '200' }, data: { 'http.response.status_code': 200, }, @@ -30,7 +29,6 @@ describe('Tracing HTTP', () => { description: 'GET http://example.com/', op: 'http.client', status: 'ok', - tags: { 'http.status_code': '200' }, data: { 'http.response.status_code': 200, }, diff --git a/packages/nextjs/test/performance/appRouterInstrumentation.test.ts b/packages/nextjs/test/performance/appRouterInstrumentation.test.ts index 47a8546e79a3..077b68769b38 100644 --- a/packages/nextjs/test/performance/appRouterInstrumentation.test.ts +++ b/packages/nextjs/test/performance/appRouterInstrumentation.test.ts @@ -84,14 +84,11 @@ describe('appRouterInstrumentation', () => { expect(mockStartNavigationSpan).toHaveBeenCalledWith({ name: '/some/server/component/page', attributes: { + from: '/some/server/component/page', 'sentry.op': 'navigation', 'sentry.origin': 'auto.navigation.nextjs.app_router_instrumentation', 'sentry.source': 'url', }, - tags: { - from: '/some/server/component/page', - 'routing.instrumentation': 'next-app-router', - }, }); }); diff --git a/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts b/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts index a3bb0adf6e3e..aaf7a7417c15 100644 --- a/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts +++ b/packages/nextjs/test/performance/pagesRouterInstrumentation.test.ts @@ -243,6 +243,7 @@ describe('pagesRouterInstrumentation', () => { expect.objectContaining({ name: expectedTransactionName, attributes: { + from: '/home', 'sentry.op': 'navigation', 'sentry.origin': 'auto.navigation.nextjs.pages_router_instrumentation', 'sentry.source': expectedTransactionSource, diff --git a/packages/node/test/handlers.test.ts b/packages/node/test/handlers.test.ts index 0b24d182bdd2..f813beea5389 100644 --- a/packages/node/test/handlers.test.ts +++ b/packages/node/test/handlers.test.ts @@ -410,8 +410,6 @@ describe('tracingHandler', () => { // eslint-disable-next-line deprecation/deprecation expect(transaction.status).toBe('ok'); expect(spanToJSON(transaction).status).toBe('ok'); - // eslint-disable-next-line deprecation/deprecation - expect(transaction.tags).toEqual(expect.objectContaining({ 'http.status_code': '200' })); expect(spanToJSON(transaction).data).toEqual(expect.objectContaining({ 'http.response.status_code': 200 })); done(); }); diff --git a/packages/opentelemetry-node/src/index.ts b/packages/opentelemetry-node/src/index.ts index 7ed84c517b45..72f9bf46d5e9 100644 --- a/packages/opentelemetry-node/src/index.ts +++ b/packages/opentelemetry-node/src/index.ts @@ -3,8 +3,3 @@ export { SentryPropagator } from './propagator'; export { maybeCaptureExceptionForTimedEvent } from './utils/captureExceptionForTimedEvent'; export { parseOtelSpanDescription } from './utils/parseOtelSpanDescription'; export { mapOtelStatus } from './utils/mapOtelStatus'; - -/* eslint-disable deprecation/deprecation */ -export { addOtelSpanData, getOtelSpanData, clearOtelSpanData } from './utils/spanData'; -export type { AdditionalOtelSpanData } from './utils/spanData'; -/* eslint-enable deprecation/deprecation */ diff --git a/packages/opentelemetry-node/src/utils/spanData.ts b/packages/opentelemetry-node/src/utils/spanData.ts deleted file mode 100644 index 6556e5340b15..000000000000 --- a/packages/opentelemetry-node/src/utils/spanData.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* eslint-disable deprecation/deprecation */ -import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, Transaction } from '@sentry/core'; -import type { Context, SpanOrigin } from '@sentry/types'; - -import { getSentrySpan } from './spanMap'; - -type SentryTags = Record; -type SentryData = Record; -type Contexts = Record; - -/** @deprecated This will be removed in v8. */ -export interface AdditionalOtelSpanData { - data: SentryData; - tags: SentryTags; - contexts: Contexts; - metadata: unknown; - origin?: SpanOrigin; -} - -const OTEL_SPAN_DATA_MAP: Map = new Map(); - -/** - * Add data that should be added to the sentry span resulting from the given otel span ID. - * @deprecated This will be removed in v8. This was never meant to be public API. - */ -export function addOtelSpanData( - otelSpanId: string, - { data, tags, contexts, metadata, origin }: Partial, -): void { - const sentrySpan = getSentrySpan(otelSpanId); - if (!sentrySpan) { - return; - } - - if (data) { - Object.keys(data).forEach(prop => { - const value = data[prop]; - sentrySpan.setData(prop, value); - }); - } - - if (tags) { - Object.keys(tags).forEach(prop => { - sentrySpan.setTag(prop, tags[prop]); - }); - } - - if (origin) { - sentrySpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin); - } - - if (sentrySpan instanceof Transaction) { - if (metadata) { - // eslint-disable-next-line deprecation/deprecation - sentrySpan.setMetadata(metadata); - } - - if (contexts) { - Object.keys(contexts).forEach(prop => { - sentrySpan.setContext(prop, contexts[prop]); - }); - } - } -} - -/** - * @deprecated This will do nothing and will be removed in v8. - */ -export function getOtelSpanData(_otelSpanId: string): AdditionalOtelSpanData { - return { data: {}, tags: {}, contexts: {}, metadata: {} }; -} - -/** - * @deprecated This will do nothing and will be removed in v8. - */ -export function clearOtelSpanData(otelSpanId: string): void { - OTEL_SPAN_DATA_MAP.delete(otelSpanId); -} diff --git a/packages/opentelemetry/src/spanExporter.ts b/packages/opentelemetry/src/spanExporter.ts index a0488ac22f64..0c48add4f2cf 100644 --- a/packages/opentelemetry/src/spanExporter.ts +++ b/packages/opentelemetry/src/spanExporter.ts @@ -145,7 +145,7 @@ function createTransactionForOtelSpan(span: ReadableSpan): Transaction { const parentSampled = span.attributes[InternalSentrySemanticAttributes.PARENT_SAMPLED] as boolean | undefined; - const { op, description, tags, data, origin, source } = getSpanData(span); + const { op, description, data, origin, source } = getSpanData(span); const metadata = getSpanMetadata(span); const capturedSpanScopes = getSpanScopes(span); @@ -167,7 +167,6 @@ function createTransactionForOtelSpan(span: ReadableSpan): Transaction { }, data: removeSentryAttributes(data), origin, - tags, sampled: true, }); @@ -203,7 +202,7 @@ function createAndFinishSpanForOtelSpan(node: SpanNode, sentryParentSpan: Sentry const spanId = span.spanContext().spanId; const { attributes } = span; - const { op, description, tags, data, origin } = getSpanData(span); + const { op, description, data, origin } = getSpanData(span); const allData = { ...removeSentryAttributes(attributes), ...data }; // eslint-disable-next-line deprecation/deprecation @@ -215,7 +214,6 @@ function createAndFinishSpanForOtelSpan(node: SpanNode, sentryParentSpan: Sentry startTimestamp: convertOtelTimeToSeconds(span.startTime), spanId, origin, - tags, }); node.children.forEach(child => { @@ -226,7 +224,6 @@ function createAndFinishSpanForOtelSpan(node: SpanNode, sentryParentSpan: Sentry } function getSpanData(span: ReadableSpan): { - tags: Record; data: Record; op?: string; description: string; @@ -239,7 +236,6 @@ function getSpanData(span: ReadableSpan): { const op = definedOp || inferredOp; const source = definedSource || inferredSource; - const tags = getTags(span); const data = { ...inferredData, ...getData(span) }; return { @@ -247,7 +243,6 @@ function getSpanData(span: ReadableSpan): { description, source, origin, - tags, data, }; } @@ -270,18 +265,6 @@ function removeSentryAttributes(data: Record): Record { - const attributes = span.attributes; - const tags: Record = {}; - - if (attributes[SemanticAttributes.HTTP_STATUS_CODE]) { - const statusCode = attributes[SemanticAttributes.HTTP_STATUS_CODE] as string | number; - tags['http.status_code'] = `${statusCode}`; - } - - return tags; -} - function getData(span: ReadableSpan): Record { const attributes = span.attributes; const data: Record = { diff --git a/packages/remix/src/client/performance.tsx b/packages/remix/src/client/performance.tsx index 347e8a2f73e8..1c2c83f6f052 100644 --- a/packages/remix/src/client/performance.tsx +++ b/packages/remix/src/client/performance.tsx @@ -43,10 +43,6 @@ export type RemixBrowserTracingIntegrationOptions = Partial[]): void { name: matches[matches.length - 1].id, op: 'navigation', origin: 'auto.navigation.remix', - tags: DEFAULT_TAGS, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', }, diff --git a/packages/remix/src/utils/instrumentServer.ts b/packages/remix/src/utils/instrumentServer.ts index 1b9487ccb31a..aea35b7835ce 100644 --- a/packages/remix/src/utils/instrumentServer.ts +++ b/packages/remix/src/utils/instrumentServer.ts @@ -196,7 +196,7 @@ function makeWrappedDocumentRequestFunction(remixVersion?: number) { op: 'function.remix.document_request', origin: 'auto.function.remix', name: spanToJSON(activeTransaction).description, - tags: { + attributes: { method: request.method, url: request.url, }, @@ -253,7 +253,7 @@ function makeWrappedDataFunction( op: `function.remix.${name}`, origin: 'auto.ui.remix', name: id, - tags: { + attributes: { name, }, }); @@ -412,8 +412,6 @@ export function startRequestHandlerTransaction( attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.remix', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source, - }, - tags: { method: request.method, }, ...traceparentData, diff --git a/packages/remix/test/integration/test/client/capture-exception.test.ts b/packages/remix/test/integration/test/client/capture-exception.test.ts index 979e192b8850..e13136f59565 100644 --- a/packages/remix/test/integration/test/client/capture-exception.test.ts +++ b/packages/remix/test/integration/test/client/capture-exception.test.ts @@ -19,7 +19,6 @@ test('should report a manually captured error.', async ({ page }) => { ]); expect(pageloadEnvelope.contexts?.trace.op).toBe('pageload'); - expect(pageloadEnvelope.tags?.['routing.instrumentation']).toBe('remix-router'); expect(pageloadEnvelope.type).toBe('transaction'); expect(pageloadEnvelope.transaction).toBe('routes/capture-exception'); }); diff --git a/packages/remix/test/integration/test/client/capture-message.test.ts b/packages/remix/test/integration/test/client/capture-message.test.ts index 577ecaf105eb..2259c271565d 100644 --- a/packages/remix/test/integration/test/client/capture-message.test.ts +++ b/packages/remix/test/integration/test/client/capture-message.test.ts @@ -12,7 +12,6 @@ test('should report a manually captured message.', async ({ page }) => { expect(messageEnvelope.message).toBe('Sentry Manually Captured Message'); expect(pageloadEnvelope.contexts?.trace.op).toBe('pageload'); - expect(pageloadEnvelope.tags?.['routing.instrumentation']).toBe('remix-router'); expect(pageloadEnvelope.type).toBe('transaction'); expect(pageloadEnvelope.transaction).toBe('routes/capture-message'); }); diff --git a/packages/remix/test/integration/test/client/errorboundary.test.ts b/packages/remix/test/integration/test/client/errorboundary.test.ts index a2ebb2e36b2c..b1af46338345 100644 --- a/packages/remix/test/integration/test/client/errorboundary.test.ts +++ b/packages/remix/test/integration/test/client/errorboundary.test.ts @@ -12,7 +12,6 @@ test('should capture React component errors.', async ({ page }) => { const [pageloadEnvelope, errorEnvelope] = envelopes; expect(pageloadEnvelope.contexts?.trace?.op).toBe('pageload'); - expect(pageloadEnvelope.tags?.['routing.instrumentation']).toBe('remix-router'); expect(pageloadEnvelope.type).toBe('transaction'); expect(pageloadEnvelope.transaction).toBe( useV2 ? 'routes/error-boundary-capture.$id' : 'routes/error-boundary-capture/$id', diff --git a/packages/remix/test/integration/test/client/manualtracing.test.ts b/packages/remix/test/integration/test/client/manualtracing.test.ts index 4fd16035a55d..c9985ce75cb7 100644 --- a/packages/remix/test/integration/test/client/manualtracing.test.ts +++ b/packages/remix/test/integration/test/client/manualtracing.test.ts @@ -17,7 +17,6 @@ test('should report a manually created / finished transaction.', async ({ page } expect(manualTransactionEnvelope.timestamp).toBeDefined(); expect(pageloadEnvelope.contexts?.trace?.op).toBe('pageload'); - expect(pageloadEnvelope.tags?.['routing.instrumentation']).toBe('remix-router'); expect(pageloadEnvelope.type).toBe('transaction'); expect(pageloadEnvelope.transaction).toBe(useV2 ? 'routes/manual-tracing.$id' : 'routes/manual-tracing/$id'); }); diff --git a/packages/remix/test/integration/test/client/pageload.test.ts b/packages/remix/test/integration/test/client/pageload.test.ts index 16b41fddd568..0e60986873fc 100644 --- a/packages/remix/test/integration/test/client/pageload.test.ts +++ b/packages/remix/test/integration/test/client/pageload.test.ts @@ -8,7 +8,6 @@ test('should add `pageload` transaction on load.', async ({ page }) => { const envelope = await getFirstSentryEnvelopeRequest(page, '/'); expect(envelope.contexts?.trace.op).toBe('pageload'); - expect(envelope.tags?.['routing.instrumentation']).toBe('remix-router'); expect(envelope.type).toBe('transaction'); expect(envelope.transaction).toBe(useV2 ? 'root' : 'routes/index'); diff --git a/packages/remix/test/integration/test/server/action.test.ts b/packages/remix/test/integration/test/server/action.test.ts index c20ba38f5658..9c4c6effa828 100644 --- a/packages/remix/test/integration/test/server/action.test.ts +++ b/packages/remix/test/integration/test/server/action.test.ts @@ -62,9 +62,6 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada contexts: { trace: { status: 'internal_error', - tags: { - 'http.status_code': '500', - }, data: { 'http.response.status_code': 500, }, @@ -159,11 +156,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'ok', - tags: { - method: 'POST', - 'http.status_code': '302', - }, data: { + method: 'POST', 'http.response.status_code': 302, }, }, @@ -178,11 +172,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'GET', - 'http.status_code': '500', - }, data: { + method: 'GET', 'http.response.status_code': 500, }, }, @@ -231,11 +222,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'POST', - 'http.status_code': '500', - }, data: { + method: 'POST', 'http.response.status_code': 500, }, }, @@ -284,11 +272,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'POST', - 'http.status_code': '500', - }, data: { + method: 'POST', 'http.response.status_code': 500, }, }, @@ -337,11 +322,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'POST', - 'http.status_code': '500', - }, data: { + method: 'POST', 'http.response.status_code': 500, }, }, @@ -390,11 +372,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'POST', - 'http.status_code': '500', - }, data: { + method: 'POST', 'http.response.status_code': 500, }, }, @@ -443,11 +422,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'POST', - 'http.status_code': '500', - }, data: { + method: 'POST', 'http.response.status_code': 500, }, }, @@ -496,11 +472,8 @@ describe.each(['builtin', 'express'])('Remix API Actions with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'POST', - 'http.status_code': '500', - }, data: { + method: 'POST', 'http.response.status_code': 500, }, }, diff --git a/packages/remix/test/integration/test/server/loader.test.ts b/packages/remix/test/integration/test/server/loader.test.ts index 581f28ed7055..aa25ca13cbb2 100644 --- a/packages/remix/test/integration/test/server/loader.test.ts +++ b/packages/remix/test/integration/test/server/loader.test.ts @@ -20,9 +20,6 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada contexts: { trace: { status: 'internal_error', - tags: { - 'http.status_code': '500', - }, data: { 'http.response.status_code': 500, }, @@ -123,11 +120,8 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada trace: { op: 'http.server', status: 'ok', - tags: { - method: 'GET', - 'http.status_code': '302', - }, data: { + method: 'GET', 'http.response.status_code': 302, }, }, @@ -142,11 +136,8 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada trace: { op: 'http.server', status: 'internal_error', - tags: { - method: 'GET', - 'http.status_code': '500', - }, data: { + method: 'GET', 'http.response.status_code': 500, }, }, diff --git a/packages/remix/test/integration/test/server/ssr.test.ts b/packages/remix/test/integration/test/server/ssr.test.ts index 46c345cc5a73..63b0fdf7d4cd 100644 --- a/packages/remix/test/integration/test/server/ssr.test.ts +++ b/packages/remix/test/integration/test/server/ssr.test.ts @@ -14,9 +14,6 @@ describe('Server Side Rendering', () => { contexts: { trace: { status: 'internal_error', - tags: { - 'http.status_code': '500', - }, data: { 'http.response.status_code': 500, }, diff --git a/packages/replay/test/fixtures/transaction.ts b/packages/replay/test/fixtures/transaction.ts index fe7d034e7403..a732c3c0dbb1 100644 --- a/packages/replay/test/fixtures/transaction.ts +++ b/packages/replay/test/fixtures/transaction.ts @@ -13,8 +13,7 @@ export function Transaction(traceId?: string, obj?: Partial): any { trace: { op: 'navigation', span_id: 'b44b173b1c74a782', - tags: { - 'routing.instrumentation': 'react-router-v3', + data: { from: '/organizations/:orgId/replays/', 'ui.longTaskCount.grouped': '<=1', effectiveConnectionType: '4g', @@ -67,9 +66,6 @@ export function Transaction(traceId?: string, obj?: Partial): any { span_id: '87497c337838d561', start_timestamp: 1668184224.7844, status: 'ok', - tags: { - 'http.status_code': '200', - }, timestamp: 1668184225.0802999, trace_id: '3e0ff8aff4dc4236a80b77a37ef66c7d', }, @@ -90,7 +86,7 @@ export function Transaction(traceId?: string, obj?: Partial): any { }, ], // }}} start_timestamp: 1668184224.447, - tags: { + data: { organization: '1', 'organization.slug': 'sentry-emerging-tech', plan: 'am1_business_ent_auf', @@ -98,7 +94,6 @@ export function Transaction(traceId?: string, obj?: Partial): any { 'plan.max_members': 'null', 'plan.total_members': '15', 'plan.tier': 'am1', - 'routing.instrumentation': 'react-router-v3', from: '/organizations/:orgId/replays/', 'ui.longTaskCount.grouped': '<=1', effectiveConnectionType: '4g', diff --git a/packages/replay/test/integration/coreHandlers/handleGlobalEvent.test.ts b/packages/replay/test/integration/coreHandlers/handleGlobalEvent.test.ts index c383bc57dc83..5200294808db 100644 --- a/packages/replay/test/integration/coreHandlers/handleGlobalEvent.test.ts +++ b/packages/replay/test/integration/coreHandlers/handleGlobalEvent.test.ts @@ -73,8 +73,9 @@ describe('Integration | coreHandlers | handleGlobalEvent', () => { const transaction = Transaction(); const error = Error(); expect(handleGlobalEventListener(replay)(transaction, {})).toEqual( - expect.objectContaining({ - tags: expect.not.objectContaining({ replayId: expect.anything() }), + expect.not.objectContaining({ + // no tags at all here by default + tags: expect.anything(), }), ); expect(handleGlobalEventListener(replay)(error, {})).toEqual( @@ -91,8 +92,9 @@ describe('Integration | coreHandlers | handleGlobalEvent', () => { replay['_isEnabled'] = false; expect(handleGlobalEventListener(replay)(transaction, {})).toEqual( - expect.objectContaining({ - tags: expect.not.objectContaining({ replayId: expect.anything() }), + expect.not.objectContaining({ + // no tags at all here by default + tags: expect.anything(), }), ); expect(handleGlobalEventListener(replay)(error, {})).toEqual( @@ -117,8 +119,9 @@ describe('Integration | coreHandlers | handleGlobalEvent', () => { }); expect(handleGlobalEventListener(replay)(transaction, {})).toEqual( - expect.objectContaining({ - tags: expect.not.objectContaining({ replayId: expect.anything() }), + expect.not.objectContaining({ + // no tags at all here by default + tags: expect.anything(), }), ); expect(handleGlobalEventListener(replay)(error, {})).toEqual( diff --git a/packages/sveltekit/src/client/browserTracingIntegration.ts b/packages/sveltekit/src/client/browserTracingIntegration.ts index 42817d49e22a..10df93b20524 100644 --- a/packages/sveltekit/src/client/browserTracingIntegration.ts +++ b/packages/sveltekit/src/client/browserTracingIntegration.ts @@ -46,9 +46,6 @@ function _instrumentPageload(client: Client): void { const pageloadSpan = startBrowserTracingPageLoadSpan(client, { name: initialPath, op: 'pageload', - tags: { - 'routing.instrumentation': '@sentry/sveltekit', - }, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.sveltekit', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url', diff --git a/packages/sveltekit/test/client/browserTracingIntegration.test.ts b/packages/sveltekit/test/client/browserTracingIntegration.test.ts index 155f8f569f2d..1075d21f3b86 100644 --- a/packages/sveltekit/test/client/browserTracingIntegration.test.ts +++ b/packages/sveltekit/test/client/browserTracingIntegration.test.ts @@ -115,9 +115,6 @@ describe('browserTracingIntegration', () => { expect(startBrowserTracingPageLoadSpanSpy).toHaveBeenCalledWith(fakeClient, { name: '/', op: 'pageload', - tags: { - 'routing.instrumentation': '@sentry/sveltekit', - }, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.sveltekit', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',