diff --git a/packages/core/src/baseclient.ts b/packages/core/src/baseclient.ts index 09200e30c503..7a90b07925f6 100644 --- a/packages/core/src/baseclient.ts +++ b/packages/core/src/baseclient.ts @@ -545,15 +545,6 @@ export abstract class BaseClient implements Client { processedEvent.transaction_info = { ...transactionInfo, source, - changes: [ - ...transactionInfo.changes, - { - source, - // use the same timestamp as the processed event. - timestamp: processedEvent.timestamp as number, - propagations: transactionInfo.propagations, - }, - ], }; } diff --git a/packages/core/test/lib/base.test.ts b/packages/core/test/lib/base.test.ts index 2925c6e213c7..68e24ec58afa 100644 --- a/packages/core/test/lib/base.test.ts +++ b/packages/core/test/lib/base.test.ts @@ -1368,8 +1368,6 @@ describe('BaseClient', () => { type: 'transaction', transaction_info: { source: 'url', - changes: [], - propagations: 3, }, }; @@ -1383,14 +1381,6 @@ describe('BaseClient', () => { expect(TestClient.instance!.event!.transaction).toEqual('/adopt/dont/shop'); expect(TestClient.instance!.event!.transaction_info).toEqual({ source: 'custom', - changes: [ - { - propagations: 3, - source: 'custom', - timestamp: expect.any(Number), - }, - ], - propagations: 3, }); }); @@ -1407,8 +1397,6 @@ describe('BaseClient', () => { type: 'transaction', transaction_info: { source: 'url', - changes: [], - propagations: 3, }, }); @@ -1416,14 +1404,6 @@ describe('BaseClient', () => { expect(TestClient.instance!.event!.transaction).toBe('/adopt/dont/shop'); expect(TestClient.instance!.event!.transaction_info).toEqual({ source: 'custom', - changes: [ - { - propagations: 3, - source: 'custom', - timestamp: expect.any(Number), - }, - ], - propagations: 3, }); }); diff --git a/packages/nextjs/test/integration/test/server/errorServerSideProps.test.ts b/packages/nextjs/test/integration/test/server/errorServerSideProps.test.ts index fe455719d760..bd64fd7247bc 100644 --- a/packages/nextjs/test/integration/test/server/errorServerSideProps.test.ts +++ b/packages/nextjs/test/integration/test/server/errorServerSideProps.test.ts @@ -48,8 +48,6 @@ describe('Error Server-side Props', () => { transaction: '/withErrorServerSideProps', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracing200.test.ts b/packages/nextjs/test/integration/test/server/tracing200.test.ts index f26a2feffb43..f68279138558 100644 --- a/packages/nextjs/test/integration/test/server/tracing200.test.ts +++ b/packages/nextjs/test/integration/test/server/tracing200.test.ts @@ -21,8 +21,6 @@ describe('Tracing 200', () => { transaction: 'GET /api/users', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracing500.test.ts b/packages/nextjs/test/integration/test/server/tracing500.test.ts index a1a2fb24edff..79b23dcfb786 100644 --- a/packages/nextjs/test/integration/test/server/tracing500.test.ts +++ b/packages/nextjs/test/integration/test/server/tracing500.test.ts @@ -21,8 +21,6 @@ describe('Tracing 500', () => { transaction: 'GET /api/broken', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracingHttp.test.ts b/packages/nextjs/test/integration/test/server/tracingHttp.test.ts index c09e64a13cd8..912c54e0996b 100644 --- a/packages/nextjs/test/integration/test/server/tracingHttp.test.ts +++ b/packages/nextjs/test/integration/test/server/tracingHttp.test.ts @@ -33,8 +33,6 @@ describe('Tracing HTTP', () => { transaction: 'GET /api/http', transaction_info: { source: 'route', - changes: [], - propagations: 1, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracingServerGetInitialProps.test.ts b/packages/nextjs/test/integration/test/server/tracingServerGetInitialProps.test.ts index 530a9b1e9b63..9ff20342bf12 100644 --- a/packages/nextjs/test/integration/test/server/tracingServerGetInitialProps.test.ts +++ b/packages/nextjs/test/integration/test/server/tracingServerGetInitialProps.test.ts @@ -20,8 +20,6 @@ describe('getInitialProps', () => { transaction: '/[id]/withInitialProps', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracingServerGetServerSideProps.test.ts b/packages/nextjs/test/integration/test/server/tracingServerGetServerSideProps.test.ts index cfcad2f59dfc..361f06acffa2 100644 --- a/packages/nextjs/test/integration/test/server/tracingServerGetServerSideProps.test.ts +++ b/packages/nextjs/test/integration/test/server/tracingServerGetServerSideProps.test.ts @@ -20,8 +20,6 @@ describe('getServerSideProps', () => { transaction: '/[id]/withServerSideProps', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracingServerGetServerSidePropsCustomPageExtension.test.ts b/packages/nextjs/test/integration/test/server/tracingServerGetServerSidePropsCustomPageExtension.test.ts index 896123e9ce9e..4f257da0b77d 100644 --- a/packages/nextjs/test/integration/test/server/tracingServerGetServerSidePropsCustomPageExtension.test.ts +++ b/packages/nextjs/test/integration/test/server/tracingServerGetServerSidePropsCustomPageExtension.test.ts @@ -20,8 +20,6 @@ describe('tracingServerGetServerSidePropsCustomPageExtension', () => { transaction: '/customPageExtension', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/nextjs/test/integration/test/server/tracingWithSentryAPI.test.ts b/packages/nextjs/test/integration/test/server/tracingWithSentryAPI.test.ts index c0f91f20c98e..73302842e15e 100644 --- a/packages/nextjs/test/integration/test/server/tracingWithSentryAPI.test.ts +++ b/packages/nextjs/test/integration/test/server/tracingWithSentryAPI.test.ts @@ -54,8 +54,6 @@ describe('getServerSideProps', () => { transaction: `GET ${transactionName}`, transaction_info: { source: 'route', - changes: [], - propagations: 0, }, type: 'transaction', request: { diff --git a/packages/node-integration-tests/suites/express/tracing/test.ts b/packages/node-integration-tests/suites/express/tracing/test.ts index 0ecd2e403aeb..ae9d619c48cc 100644 --- a/packages/node-integration-tests/suites/express/tracing/test.ts +++ b/packages/node-integration-tests/suites/express/tracing/test.ts @@ -38,14 +38,6 @@ test('should set a correct transaction name for routes specified in RegEx', asyn transaction: 'GET /\\/test\\/regex/', transaction_info: { source: 'route', - changes: [ - { - propagations: 0, - source: 'url', - timestamp: expect.any(Number), - }, - ], - propagations: 0, }, contexts: { trace: { @@ -74,14 +66,6 @@ test.each([['array1'], ['array5']])( transaction: 'GET /test/array1,/\\/test\\/array[2-9]', transaction_info: { source: 'route', - changes: [ - { - propagations: 0, - source: 'url', - timestamp: expect.any(Number), - }, - ], - propagations: 0, }, contexts: { trace: { @@ -118,14 +102,6 @@ test.each([ transaction: 'GET /test/arr/:id,/\\/test\\/arr[0-9]*\\/required(path)?(\\/optionalPath)?\\/(lastParam)?', transaction_info: { source: 'route', - changes: [ - { - propagations: 0, - source: 'url', - timestamp: expect.any(Number), - }, - ], - propagations: 0, }, contexts: { trace: { diff --git a/packages/node/src/integrations/http.ts b/packages/node/src/integrations/http.ts index 99060b8c6f64..ea7a9eae173d 100644 --- a/packages/node/src/integrations/http.ts +++ b/packages/node/src/integrations/http.ts @@ -243,11 +243,6 @@ function _createWrappedRequestMethodFactory( `[Tracing] Not adding sentry-trace header to outgoing request (${requestUrl}) due to mismatching tracePropagationTargets option.`, ); } - - const transaction = parentSpan.transaction; - if (transaction) { - transaction.metadata.propagations++; - } } } diff --git a/packages/node/test/integrations/http.test.ts b/packages/node/test/integrations/http.test.ts index ab2370ec19c6..446aa4ec0f82 100644 --- a/packages/node/test/integrations/http.test.ts +++ b/packages/node/test/integrations/http.test.ts @@ -175,20 +175,6 @@ describe('tracing', () => { expect(baggage).not.toBeDefined(); }); - it('records outgoing propagations on the transaction', () => { - nock('http://dogs.are.great').get('/').reply(200); - - const transaction = createTransactionOnScope(); - - expect(transaction.metadata.propagations).toBe(0); - - http.get('http://dogs.are.great/'); - expect(transaction.metadata.propagations).toBe(1); - - http.get('http://dogs.are.great/'); - expect(transaction.metadata.propagations).toBe(2); - }); - it("doesn't attach when using otel instrumenter", () => { const loggerLogSpy = jest.spyOn(logger, 'log'); diff --git a/packages/remix/test/integration/test/server/loader.test.ts b/packages/remix/test/integration/test/server/loader.test.ts index f2cb90962d88..907875949f30 100644 --- a/packages/remix/test/integration/test/server/loader.test.ts +++ b/packages/remix/test/integration/test/server/loader.test.ts @@ -55,8 +55,6 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada transaction: 'routes/loader-json-response/$id', transaction_info: { source: 'route', - changes: [], - propagations: 0, }, spans: [ { diff --git a/packages/replay/test/fixtures/transaction.ts b/packages/replay/test/fixtures/transaction.ts index e1d686eadd01..2899740c5e52 100644 --- a/packages/replay/test/fixtures/transaction.ts +++ b/packages/replay/test/fixtures/transaction.ts @@ -225,14 +225,10 @@ export function Transaction(obj?: Partial): any { "[Tracing] Starting 'resource.other' span on transaction '/organizations/:orgId/replays/:replaySlug/' (b44b173b1c74a782).", }, }, - changes: [], - propagations: 2, sampleRate: 1, }, // }}} transaction_info: { source: 'route', - changes: [], - propagations: 2, }, measurements: { longTaskCount: { diff --git a/packages/tracing/src/browser/request.ts b/packages/tracing/src/browser/request.ts index c8b9411e7c3f..57d0178509ef 100644 --- a/packages/tracing/src/browser/request.ts +++ b/packages/tracing/src/browser/request.ts @@ -219,8 +219,6 @@ export function fetchCallback( span, options, ); - - activeTransaction.metadata.propagations++; } } } @@ -356,8 +354,6 @@ export function xhrCallback( // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader handlerData.xhr.setRequestHeader(BAGGAGE_HEADER_NAME, sentryBaggageHeader); } - - activeTransaction.metadata.propagations++; } catch (_) { // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED. } diff --git a/packages/tracing/src/transaction.ts b/packages/tracing/src/transaction.ts index 5b32612302ee..627478da744e 100644 --- a/packages/tracing/src/transaction.ts +++ b/packages/tracing/src/transaction.ts @@ -11,7 +11,7 @@ import type { TransactionContext, TransactionMetadata, } from '@sentry/types'; -import { dropUndefinedKeys, logger, timestampInSeconds } from '@sentry/utils'; +import { dropUndefinedKeys, logger } from '@sentry/utils'; import { Span as SpanClass, SpanRecorder } from './span'; @@ -52,8 +52,6 @@ export class Transaction extends SpanClass implements TransactionInterface { source: 'custom', ...transactionContext.metadata, spanMetadata: {}, - changes: [], - propagations: 0, }; this._trimEnd = transactionContext.trimEnd; @@ -84,17 +82,6 @@ export class Transaction extends SpanClass implements TransactionInterface { * JSDoc */ public setName(name: string, source: TransactionMetadata['source'] = 'custom'): void { - // `source` could change without the name changing if we discover that an unparameterized route is actually - // parameterized by virtue of having no parameters in its path - if (name !== this.name || source !== this.metadata.source) { - this.metadata.changes.push({ - // log previous source - source: this.metadata.source, - timestamp: timestampInSeconds(), - propagations: this.metadata.propagations, - }); - } - this._name = name; this.metadata.source = source; } @@ -197,8 +184,6 @@ export class Transaction extends SpanClass implements TransactionInterface { ...(metadata.source && { transaction_info: { source: metadata.source, - changes: metadata.changes, - propagations: metadata.propagations, }, }), }; diff --git a/packages/tracing/test/browser/request.test.ts b/packages/tracing/test/browser/request.test.ts index e2d60aa9edb2..3dd107d708dc 100644 --- a/packages/tracing/test/browser/request.test.ts +++ b/packages/tracing/test/browser/request.test.ts @@ -213,19 +213,6 @@ describe('callbacks', () => { expect(newSpan).toBeUndefined(); }); - - it('records outgoing propogations', () => { - const firstReqData = { ...fetchHandlerData }; - const secondReqData = { ...fetchHandlerData }; - - expect(transaction.metadata.propagations).toBe(0); - - fetchCallback(firstReqData, alwaysCreateSpan, alwaysAttachHeaders, {}); - expect(transaction.metadata.propagations).toBe(1); - - fetchCallback(secondReqData, alwaysCreateSpan, alwaysAttachHeaders, {}); - expect(transaction.metadata.propagations).toBe(2); - }); }); describe('xhrCallback()', () => { @@ -370,19 +357,6 @@ describe('callbacks', () => { expect(newSpan).toBeUndefined(); }); - - it('records outgoing propogations', () => { - const firstReqData = { ...xhrHandlerData }; - const secondReqData = { ...xhrHandlerData }; - - expect(transaction.metadata.propagations).toBe(0); - - xhrCallback(firstReqData, alwaysCreateSpan, alwaysAttachHeaders, {}); - expect(transaction.metadata.propagations).toBe(1); - - xhrCallback(secondReqData, alwaysCreateSpan, alwaysAttachHeaders, {}); - expect(transaction.metadata.propagations).toBe(2); - }); }); }); diff --git a/packages/tracing/test/span.test.ts b/packages/tracing/test/span.test.ts index 6de0d79b7125..96a71811eec9 100644 --- a/packages/tracing/test/span.test.ts +++ b/packages/tracing/test/span.test.ts @@ -508,8 +508,6 @@ describe('Span', () => { expect.objectContaining({ transaction_info: { source: 'url', - changes: [], - propagations: 0, }, }), ); diff --git a/packages/tracing/test/transaction.test.ts b/packages/tracing/test/transaction.test.ts index 6fd36701a65b..fb49dcc4d909 100644 --- a/packages/tracing/test/transaction.test.ts +++ b/packages/tracing/test/transaction.test.ts @@ -44,104 +44,6 @@ describe('`Transaction` class', () => { expect(transaction.instrumenter).toEqual('otel'); }); - it('updates transaction name changes with correct variables needed', () => { - const transaction = new Transaction({ name: 'dogpark', metadata: { source: 'url' } }); - expect(transaction.metadata.changes).toEqual([]); - - transaction.name = 'ballpit'; - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - - transaction.metadata.propagations += 3; - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - - transaction.name = 'playground'; - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 3, - }, - ]); - - // Only change `source` - transaction.setName('playground', 'route'); - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 3, - }, - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 3, - }, - ]); - }); - - it("doesn't update transaction name changes if no change in data", () => { - const transaction = new Transaction({ name: 'dogpark' }); - expect(transaction.metadata.changes).toEqual([]); - - transaction.name = 'ballpit'; - - expect(transaction.metadata.changes).toEqual([ - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - - transaction.name = 'ballpit'; - - // Still only one entry - expect(transaction.metadata.changes).toEqual([ - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - - transaction.setName('ballpit', 'custom'); - - // Still only one entry - expect(transaction.metadata.changes).toEqual([ - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - }); - describe('`setName` method', () => { it("sets source to `'custom'` if no source provided", () => { const transaction = new Transaction({ name: 'dogpark' }); @@ -158,46 +60,6 @@ describe('`Transaction` class', () => { expect(transaction.name).toEqual('ballpit'); expect(transaction.metadata.source).toEqual('route'); }); - - it('updates transaction name changes with correct variables needed', () => { - const transaction = new Transaction({ name: 'dogpark', metadata: { source: 'url' } }); - expect(transaction.metadata.changes).toEqual([]); - - transaction.name = 'ballpit'; - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - - transaction.metadata.propagations += 3; - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - ]); - - transaction.setName('playground', 'task'); - - expect(transaction.metadata.changes).toEqual([ - { - source: 'url', - timestamp: expect.any(Number), - propagations: 0, - }, - { - source: 'custom', - timestamp: expect.any(Number), - propagations: 3, - }, - ]); - }); }); }); diff --git a/packages/types/src/event.ts b/packages/types/src/event.ts index 7c00bcef4718..7d21456d8044 100644 --- a/packages/types/src/event.ts +++ b/packages/types/src/event.ts @@ -12,7 +12,7 @@ import type { SdkInfo } from './sdkinfo'; import type { Severity, SeverityLevel } from './severity'; import type { Span } from './span'; import type { Thread } from './thread'; -import type { TransactionNameChange, TransactionSource } from './transaction'; +import type { TransactionSource } from './transaction'; import type { User } from './user'; /** JSDoc */ @@ -50,8 +50,6 @@ export interface Event { sdkProcessingMetadata?: { [key: string]: any }; transaction_info?: { source: TransactionSource; - changes: TransactionNameChange[]; - propagations: number; }; threads?: { values: Thread[]; diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 0b52fac74e02..da57a0c6a97e 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -73,7 +73,6 @@ export type { TransactionContext, TransactionMetadata, TransactionSource, - TransactionNameChange, } from './transaction'; export type { DurationUnit, diff --git a/packages/types/src/transaction.ts b/packages/types/src/transaction.ts index e60132a8e550..42d266abbda7 100644 --- a/packages/types/src/transaction.ts +++ b/packages/types/src/transaction.ts @@ -176,12 +176,6 @@ export interface TransactionMetadata { /** Metadata for the transaction's spans, keyed by spanId */ spanMetadata: { [spanId: string]: { [key: string]: unknown } }; - - /** Metadata representing information about transaction name changes */ - changes: TransactionNameChange[]; - - /** The total number of propagations that happened */ - propagations: number; } /** @@ -201,20 +195,3 @@ export type TransactionSource = | 'component' /** Name of a background task (e.g. a Celery task) */ | 'task'; - -/** - * Object representing metadata about when a transaction name was changed. - */ -export interface TransactionNameChange { - /** - * Unix timestamp when the name was changed. Same type as the start and - * end timestamps of a transaction and span. - */ - timestamp: number; - - /** Previous source before transaction name change */ - source: TransactionSource; - - /** Number of propagations since start of transaction */ - propagations: number; -}