From abcf34d62c8bb90a6bc0ec134dc3fe8c20295843 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Wed, 13 Mar 2024 09:41:43 +0000 Subject: [PATCH 1/2] ref: Remove deprecated properties from `startSpan` options So the public API for this is now fully aligned! --- .../tests/generation-functions.test.ts | 14 ++-- packages/core/test/lib/tracing/trace.test.ts | 41 ++---------- .../sentry-performance.ts | 12 ++-- .../src/common/utils/edgeWrapperUtils.ts | 7 +- .../src/common/wrapApiHandlerWithSentry.ts | 3 - .../wrapGenerationFunctionWithSentry.ts | 1 - .../nextjs/test/config/withSentry.test.ts | 7 +- .../nextjs/test/edge/edgeWrapperUtils.test.ts | 7 +- .../nextjs/test/edge/withSentryAPI.test.ts | 10 +-- packages/node/src/handlers.ts | 7 -- packages/node/test/handlers.test.ts | 19 ------ packages/opentelemetry/src/trace.ts | 8 +-- .../test/integration/transactions.test.ts | 7 +- packages/opentelemetry/test/trace.test.ts | 1 - .../test/spanProfileUtils.test.ts | 6 +- .../src/browser/browserTracingIntegration.ts | 3 +- .../src/browser/metrics/index.ts | 4 +- packages/types/src/startSpanOptions.ts | 66 +------------------ 18 files changed, 49 insertions(+), 174 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts index b5fe7ee67393..2b258056c04d 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts @@ -7,7 +7,7 @@ test('Should send a transaction event for a generateMetadata() function invokati const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions)' && - transactionEvent.contexts?.trace?.data?.['searchParams']?.['metadataTitle'] === testTitle + (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle ); }); @@ -26,8 +26,8 @@ test('Should send a transaction and an error event for a faulty generateMetadata const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( - transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions)' && - transactionEvent.contexts?.trace?.data?.['searchParams']?.['metadataTitle'] === testTitle + transactionEvent.transaction === 'Page.generateMetadata (/generation-functions)' && + (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle ); }); @@ -47,7 +47,7 @@ test('Should send a transaction event for a generateViewport() function invokati const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateViewport (/generation-functions)' && - transactionEvent.contexts?.trace?.data?.['searchParams']?.['viewportThemeColor'] === testTitle + (transactionEvent.extra?.searchParams as any)?.viewportThemeColor === testTitle ); }); @@ -64,7 +64,7 @@ test('Should send a transaction and an error event for a faulty generateViewport const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateViewport (/generation-functions)' && - transactionEvent.contexts?.trace?.data?.['searchParams']?.['viewportThemeColor'] === testTitle + (transactionEvent.extra?.searchParams as any)?.viewportThemeColor === testTitle ); }); @@ -86,7 +86,7 @@ test('Should send a transaction event with correct status for a generateMetadata const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions/with-redirect)' && - transactionEvent.contexts?.trace?.data?.['searchParams']?.['metadataTitle'] === testTitle + (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle ); }); @@ -103,7 +103,7 @@ test('Should send a transaction event with correct status for a generateMetadata const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions/with-notfound)' && - transactionEvent.contexts?.trace?.data?.['searchParams']?.['metadataTitle'] === testTitle + (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle ); }); diff --git a/packages/core/test/lib/tracing/trace.test.ts b/packages/core/test/lib/tracing/trace.test.ts index 41a37832bb74..b937b20338d1 100644 --- a/packages/core/test/lib/tracing/trace.test.ts +++ b/packages/core/test/lib/tracing/trace.test.ts @@ -10,7 +10,6 @@ import { getMainCarrier, setAsyncContextStrategy, setCurrentClient, - spanIsSampled, spanToJSON, withScope, } from '../../../src'; @@ -101,33 +100,6 @@ describe('startSpan', () => { expect(spanToJSON(_span!).status).toEqual(isError ? 'internal_error' : undefined); }); - it('allows traceparent information to be overriden', async () => { - let _span: Span | undefined = undefined; - client.on('spanEnd', span => { - _span = span; - }); - try { - await startSpan( - { - name: 'GET users/[id]', - parentSampled: true, - traceId: '12345678901234567890123456789012', - parentSpanId: '1234567890123456', - }, - () => { - return callback(); - }, - ); - } catch (e) { - // - } - expect(_span).toBeDefined(); - - expect(spanIsSampled(_span!)).toEqual(true); - expect(spanToJSON(_span!).trace_id).toEqual('12345678901234567890123456789012'); - expect(spanToJSON(_span!).parent_span_id).toEqual('1234567890123456'); - }); - it('allows for transaction to be mutated', async () => { let _span: Span | undefined = undefined; client.on('spanEnd', span => { @@ -153,7 +125,7 @@ describe('startSpan', () => { } }); try { - await startSpan({ name: 'GET users/[id]', parentSampled: true }, () => { + await startSpan({ name: 'GET users/[id]' }, () => { return startSpan({ name: 'SELECT * from users' }, () => { return callback(); }); @@ -179,7 +151,7 @@ describe('startSpan', () => { } }); try { - await startSpan({ name: 'GET users/[id]', parentSampled: true }, () => { + await startSpan({ name: 'GET users/[id]' }, () => { return startSpan({ name: 'SELECT * from users' }, childSpan => { if (childSpan) { childSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'db.query'); @@ -453,12 +425,9 @@ describe('startSpan', () => { setCurrentClient(client); client.init(); - startSpan( - { name: 'outer', attributes: { test1: 'aa', test2: 'aa' }, data: { test1: 'bb', test3: 'bb' } }, - outerSpan => { - expect(outerSpan).toBeDefined(); - }, - ); + startSpan({ name: 'outer', attributes: { test1: 'aa', test2: 'aa', test3: 'bb' } }, outerSpan => { + expect(outerSpan).toBeDefined(); + }); expect(tracesSampler).toBeCalledTimes(1); expect(tracesSampler).toHaveBeenLastCalledWith({ diff --git a/packages/ember/addon/instance-initializers/sentry-performance.ts b/packages/ember/addon/instance-initializers/sentry-performance.ts index a67142123ccf..b7b6d09ebeca 100644 --- a/packages/ember/addon/instance-initializers/sentry-performance.ts +++ b/packages/ember/addon/instance-initializers/sentry-performance.ts @@ -223,7 +223,7 @@ function _instrumentEmberRunloop(config: EmberSentryConfig): void { }, name: 'runloop', op: `ui.ember.runloop.${queue}`, - startTimestamp: currentQueueStart, + startTime: currentQueueStart, })?.end(now); } currentQueueStart = undefined; @@ -295,7 +295,7 @@ function processComponentRenderAfter( startInactiveSpan({ name: payload.containerKey || payload.object, op, - startTimestamp: begin.now, + startTime: begin.now, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.ember', }, @@ -374,8 +374,8 @@ function _instrumentInitialLoad(config: EmberSentryConfig): void { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const measure = measures[0]!; - const startTimestamp = (measure.startTime + browserPerformanceTimeOrigin) / 1000; - const endTimestamp = startTimestamp + measure.duration / 1000; + const startTime = (measure.startTime + browserPerformanceTimeOrigin) / 1000; + const endTime = startTime + measure.duration / 1000; startInactiveSpan({ op: 'ui.ember.init', @@ -383,8 +383,8 @@ function _instrumentInitialLoad(config: EmberSentryConfig): void { attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.ember', }, - startTimestamp, - })?.end(endTimestamp); + startTime, + })?.end(endTime); performance.clearMarks(startName); performance.clearMarks(endName); diff --git a/packages/nextjs/src/common/utils/edgeWrapperUtils.ts b/packages/nextjs/src/common/utils/edgeWrapperUtils.ts index d260fb481b54..5806c2cd0bd8 100644 --- a/packages/nextjs/src/common/utils/edgeWrapperUtils.ts +++ b/packages/nextjs/src/common/utils/edgeWrapperUtils.ts @@ -5,6 +5,7 @@ import { addTracingExtensions, captureException, continueTrace, + getIsolationScope, handleCallbackErrors, setHttpStatus, startSpan, @@ -39,6 +40,9 @@ export function withEdgeWrapping( baggage, }, () => { + getIsolationScope().setSDKProcessingMetadata({ + request: req instanceof Request ? winterCGRequestToRequestData(req) : undefined, + }); return startSpan( { name: options.spanDescription, @@ -47,9 +51,6 @@ export function withEdgeWrapping( [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.withEdgeWrapping', }, - metadata: { - request: req instanceof Request ? winterCGRequestToRequestData(req) : undefined, - }, }, async span => { const handlerResult = await handleCallbackErrors( diff --git a/packages/nextjs/src/common/wrapApiHandlerWithSentry.ts b/packages/nextjs/src/common/wrapApiHandlerWithSentry.ts index 41537a4ad49f..dbbfcfb7911e 100644 --- a/packages/nextjs/src/common/wrapApiHandlerWithSentry.ts +++ b/packages/nextjs/src/common/wrapApiHandlerWithSentry.ts @@ -91,9 +91,6 @@ export function wrapApiHandlerWithSentry(apiHandler: NextApiHandler, parameteriz [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.nextjs', }, - metadata: { - request: req, - }, }, async span => { // eslint-disable-next-line @typescript-eslint/unbound-method diff --git a/packages/nextjs/src/common/wrapGenerationFunctionWithSentry.ts b/packages/nextjs/src/common/wrapGenerationFunctionWithSentry.ts index 339b64b300cf..e78ca34ebcd6 100644 --- a/packages/nextjs/src/common/wrapGenerationFunctionWithSentry.ts +++ b/packages/nextjs/src/common/wrapGenerationFunctionWithSentry.ts @@ -68,7 +68,6 @@ export function wrapGenerationFunctionWithSentry a { op: 'function.nextjs', name: `${componentType}.${generationFunctionIdentifier} (${componentRoute})`, - data, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs', diff --git a/packages/nextjs/test/config/withSentry.test.ts b/packages/nextjs/test/config/withSentry.test.ts index b199782cd7a6..2551e7af8350 100644 --- a/packages/nextjs/test/config/withSentry.test.ts +++ b/packages/nextjs/test/config/withSentry.test.ts @@ -47,12 +47,13 @@ describe('withSentry', () => { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.nextjs', }, - metadata: { - request: expect.objectContaining({ url: 'http://dogs.are.great' }), - }, }, expect.any(Function), ); + + expect(SentryCore.getIsolationScope().getScopeData().sdkProcessingMetadata).toEqual({ + request: expect.objectContaining({ url: 'http://dogs.are.great' }), + }); }); }); }); diff --git a/packages/nextjs/test/edge/edgeWrapperUtils.test.ts b/packages/nextjs/test/edge/edgeWrapperUtils.test.ts index 495e6336e2cd..1dea31811bbf 100644 --- a/packages/nextjs/test/edge/edgeWrapperUtils.test.ts +++ b/packages/nextjs/test/edge/edgeWrapperUtils.test.ts @@ -82,9 +82,6 @@ describe('withEdgeWrapping', () => { expect(startSpanSpy).toHaveBeenCalledTimes(1); expect(startSpanSpy).toHaveBeenCalledWith( expect.objectContaining({ - metadata: { - request: { headers: {} }, - }, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [coreSdk.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.withEdgeWrapping', @@ -94,6 +91,10 @@ describe('withEdgeWrapping', () => { }), expect.any(Function), ); + + expect(coreSdk.getIsolationScope().getScopeData().sdkProcessingMetadata).toEqual({ + request: { headers: {} }, + }); }); it("should return a function that doesn't crash when req isn't passed", async () => { diff --git a/packages/nextjs/test/edge/withSentryAPI.test.ts b/packages/nextjs/test/edge/withSentryAPI.test.ts index 071bdda93952..f3b5bfded4a9 100644 --- a/packages/nextjs/test/edge/withSentryAPI.test.ts +++ b/packages/nextjs/test/edge/withSentryAPI.test.ts @@ -53,9 +53,6 @@ describe('wrapApiHandlerWithSentry', () => { expect(startSpanSpy).toHaveBeenCalledTimes(1); expect(startSpanSpy).toHaveBeenCalledWith( expect.objectContaining({ - metadata: { - request: { headers: {}, method: 'POST', url: 'https://sentry.io/' }, - }, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.withEdgeWrapping', @@ -65,6 +62,10 @@ describe('wrapApiHandlerWithSentry', () => { }), expect.any(Function), ); + + expect(coreSdk.getIsolationScope().getScopeData().sdkProcessingMetadata).toEqual({ + request: { headers: {}, method: 'POST', url: 'https://sentry.io/' }, + }); }); it('should return a function that calls trace without throwing when no request is passed', async () => { @@ -77,7 +78,6 @@ describe('wrapApiHandlerWithSentry', () => { expect(startSpanSpy).toHaveBeenCalledTimes(1); expect(startSpanSpy).toHaveBeenCalledWith( expect.objectContaining({ - metadata: {}, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route', [coreSdk.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.withEdgeWrapping', @@ -87,5 +87,7 @@ describe('wrapApiHandlerWithSentry', () => { }), expect.any(Function), ); + + expect(coreSdk.getIsolationScope().getScopeData().sdkProcessingMetadata).toEqual({}); }); }); diff --git a/packages/node/src/handlers.ts b/packages/node/src/handlers.ts index bd31aa3ab33a..1eca85b55ed8 100644 --- a/packages/node/src/handlers.ts +++ b/packages/node/src/handlers.ts @@ -74,13 +74,6 @@ export function tracingHandler(): ( [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source, [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.node.tracingHandler', }, - metadata: { - // The request should already have been stored in `scope.sdkProcessingMetadata` (which will become - // `event.sdkProcessingMetadata` the same way the metadata here will) by `sentryRequestMiddleware`, but on the - // off chance someone is using `sentryTracingMiddleware` without `sentryRequestMiddleware`, it doesn't hurt to - // be sure - request: req, - }, }) as Transaction; }); diff --git a/packages/node/test/handlers.test.ts b/packages/node/test/handlers.test.ts index d8f483cb771a..8a84cffd758a 100644 --- a/packages/node/test/handlers.test.ts +++ b/packages/node/test/handlers.test.ts @@ -1,7 +1,6 @@ import * as http from 'http'; import * as sentryCore from '@sentry/core'; import { - Hub, SEMANTIC_ATTRIBUTE_SENTRY_OP, Transaction, getClient, @@ -469,24 +468,6 @@ describe('tracingHandler', () => { done(); }); }); - - it('stores request in transaction metadata', () => { - const options = getDefaultNodeClientOptions({ tracesSampleRate: 1.0 }); - // eslint-disable-next-line deprecation/deprecation - const hub = new Hub(new NodeClient(options)); - - jest.spyOn(sentryCore, 'getCurrentHub').mockReturnValue(hub); - // eslint-disable-next-line deprecation/deprecation - jest.spyOn(sentryCore, 'getCurrentScope').mockImplementation(() => hub.getScope()); - - sentryTracingMiddleware(req, res, next); - - // eslint-disable-next-line deprecation/deprecation - const transaction = getCurrentScope().getTransaction(); - - // eslint-disable-next-line deprecation/deprecation - expect(transaction?.metadata.request).toEqual(req); - }); }); describe('errorHandler()', () => { diff --git a/packages/opentelemetry/src/trace.ts b/packages/opentelemetry/src/trace.ts index fa9bb14775f2..29491805bd5a 100644 --- a/packages/opentelemetry/src/trace.ts +++ b/packages/opentelemetry/src/trace.ts @@ -6,7 +6,6 @@ import { TraceState, suppressTracing } from '@opentelemetry/core'; import { SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_OP, - SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, getClient, getCurrentScope, getRootSpan, @@ -141,16 +140,11 @@ function getTracer(): Tracer { } function _applySentryAttributesToSpan(span: Span, options: OpenTelemetrySpanContext): void { - // eslint-disable-next-line deprecation/deprecation - const { op, source } = options; + const { op } = options; if (op) { span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op); } - - if (source) { - span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source); - } } function getSpanContext(options: OpenTelemetrySpanContext): SpanOptions { diff --git a/packages/opentelemetry/test/integration/transactions.test.ts b/packages/opentelemetry/test/integration/transactions.test.ts index 066080678bca..4f021e77d456 100644 --- a/packages/opentelemetry/test/integration/transactions.test.ts +++ b/packages/opentelemetry/test/integration/transactions.test.ts @@ -196,9 +196,9 @@ describe('Integration | Transactions', () => { { op: 'test op', name: 'test name', - source: 'task', attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.test', + [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', }, }, span => { @@ -367,15 +367,14 @@ describe('Integration | Transactions', () => { { op: 'test op', name: 'test name', - source: 'task', attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.test', + [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', }, }, () => { const subSpan = startInactiveSpan({ name: 'inner span 1' }); subSpan.end(); - startSpan({ name: 'inner span 2' }, () => {}); }, ); @@ -582,9 +581,9 @@ describe('Integration | Transactions', () => { { op: 'test op', name: 'test name', - source: 'task', attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.test', + [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', }, }, span => { diff --git a/packages/opentelemetry/test/trace.test.ts b/packages/opentelemetry/test/trace.test.ts index 7e097739c0d7..a868d439bd4e 100644 --- a/packages/opentelemetry/test/trace.test.ts +++ b/packages/opentelemetry/test/trace.test.ts @@ -479,7 +479,6 @@ describe('trace', () => { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.test.origin', }, - metadata: { requestPath: 'test-path' }, }); expect(span2).toBeDefined(); diff --git a/packages/profiling-node/test/spanProfileUtils.test.ts b/packages/profiling-node/test/spanProfileUtils.test.ts index 9083576a775c..cccdbcd17e31 100644 --- a/packages/profiling-node/test/spanProfileUtils.test.ts +++ b/packages/profiling-node/test/spanProfileUtils.test.ts @@ -127,7 +127,11 @@ describe('spanProfileUtils', () => { jest.spyOn(transport, 'send').mockReturnValue(Promise.resolve({})); - const transaction = Sentry.startInactiveSpan({ forceTransaction: true, name: 'profile_hub', traceId: 'boop' }); + Sentry.getCurrentScope().getPropagationContext().traceId = 'boop'; + const transaction = Sentry.startInactiveSpan({ + forceTransaction: true, + name: 'profile_hub', + }); await wait(500); transaction.end(); diff --git a/packages/tracing-internal/src/browser/browserTracingIntegration.ts b/packages/tracing-internal/src/browser/browserTracingIntegration.ts index 48099ff7fd79..713e4f986c2b 100644 --- a/packages/tracing-internal/src/browser/browserTracingIntegration.ts +++ b/packages/tracing-internal/src/browser/browserTracingIntegration.ts @@ -443,8 +443,7 @@ function registerInteractionListener( { name: latestRouteName, op, - trimEnd: true, - data: { + attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: latestRouteSource || 'url', }, }, diff --git a/packages/tracing-internal/src/browser/metrics/index.ts b/packages/tracing-internal/src/browser/metrics/index.ts index 66669b5f369a..4eabd49f218c 100644 --- a/packages/tracing-internal/src/browser/metrics/index.ts +++ b/packages/tracing-internal/src/browser/metrics/index.ts @@ -512,14 +512,14 @@ function _tagMetricInfo(span: Span): void { } function setResourceEntrySizeData( - data: Record, + attributes: SpanAttributes, entry: ResourceEntry, key: keyof Pick, dataKey: 'http.response_transfer_size' | 'http.response_content_length' | 'http.decoded_response_content_length', ): void { const entryVal = entry[key]; if (entryVal != null && entryVal < MAX_INT_AS_BYTES) { - data[dataKey] = entryVal; + attributes[dataKey] = entryVal; } } diff --git a/packages/types/src/startSpanOptions.ts b/packages/types/src/startSpanOptions.ts index f573df06956e..31874ffb6734 100644 --- a/packages/types/src/startSpanOptions.ts +++ b/packages/types/src/startSpanOptions.ts @@ -1,9 +1,7 @@ -import type { Primitive } from './misc'; import type { Scope } from './scope'; import type { SpanAttributes, SpanTimeInput } from './span'; -import type { TransactionContext, TransactionMetadata, TransactionSource } from './transaction'; -export interface StartSpanOptions extends TransactionContext { +export interface StartSpanOptions { /** A manually specified start time for the created `Span` object. */ startTime?: SpanTimeInput; @@ -28,66 +26,4 @@ export interface StartSpanOptions extends TransactionContext { /** Attributes for the span. */ attributes?: SpanAttributes; - - // All remaining fields are deprecated - - /** - * @deprecated Manually set the end timestamp instead. - */ - trimEnd?: boolean; - - /** - * @deprecated This cannot be set manually anymore. - */ - parentSampled?: boolean; - - /** - * @deprecated Use attributes or set data on scopes instead. - */ - metadata?: Partial; - - /** - * @deprecated Use `scope` instead. - */ - parentSpanId?: string; - - /** - * @deprecated You cannot manually set the span to sampled anymore. - */ - sampled?: boolean; - - /** - * @deprecated You cannot manually set the spanId anymore. - */ - spanId?: string; - - /** - * @deprecated You cannot manually set the traceId anymore. - */ - traceId?: string; - - /** - * @deprecated Use an attribute instead. - */ - source?: TransactionSource; - - /** - * @deprecated Use attributes or set tags on the scope instead. - */ - tags?: { [key: string]: Primitive }; - - /** - * @deprecated Use attributes instead. - */ - data?: { [key: string]: any }; - - /** - * @deprecated Use `startTime` instead. - */ - startTimestamp?: number; - - /** - * @deprecated Use `span.end()` instead. - */ - endTimestamp?: number; } From ce8d08b3842cb420a7b2d71f8823ba7df81032ff Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Wed, 13 Mar 2024 10:47:38 +0000 Subject: [PATCH 2/2] fix e2e test also remove unneeded stuff --- .../nextjs-14/tests/generation-functions.test.ts | 12 ++++++------ dev-packages/e2e-tests/tracing-shim-esm/index.cjs | 3 --- dev-packages/e2e-tests/tracing-shim-esm/index.mjs | 3 --- dev-packages/e2e-tests/tracing-shim-esm/package.json | 10 ---------- dev-packages/e2e-tests/tracing-shim/index.js | 3 --- dev-packages/e2e-tests/tracing-shim/package.json | 9 --------- 6 files changed, 6 insertions(+), 34 deletions(-) delete mode 100644 dev-packages/e2e-tests/tracing-shim-esm/index.cjs delete mode 100644 dev-packages/e2e-tests/tracing-shim-esm/index.mjs delete mode 100644 dev-packages/e2e-tests/tracing-shim-esm/package.json delete mode 100644 dev-packages/e2e-tests/tracing-shim/index.js delete mode 100644 dev-packages/e2e-tests/tracing-shim/package.json diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts index 2b258056c04d..e52dde8db258 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-14/tests/generation-functions.test.ts @@ -7,7 +7,7 @@ test('Should send a transaction event for a generateMetadata() function invokati const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions)' && - (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle + (transactionEvent.extra?.route_data as any)?.searchParams?.metadataTitle === testTitle ); }); @@ -27,7 +27,7 @@ test('Should send a transaction and an error event for a faulty generateMetadata const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent.transaction === 'Page.generateMetadata (/generation-functions)' && - (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle + (transactionEvent.extra?.route_data as any)?.searchParams?.metadataTitle === testTitle ); }); @@ -47,7 +47,7 @@ test('Should send a transaction event for a generateViewport() function invokati const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateViewport (/generation-functions)' && - (transactionEvent.extra?.searchParams as any)?.viewportThemeColor === testTitle + (transactionEvent.extra?.route_data as any)?.searchParams?.viewportThemeColor === testTitle ); }); @@ -64,7 +64,7 @@ test('Should send a transaction and an error event for a faulty generateViewport const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateViewport (/generation-functions)' && - (transactionEvent.extra?.searchParams as any)?.viewportThemeColor === testTitle + (transactionEvent.extra?.route_data as any)?.searchParams?.viewportThemeColor === testTitle ); }); @@ -86,7 +86,7 @@ test('Should send a transaction event with correct status for a generateMetadata const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions/with-redirect)' && - (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle + (transactionEvent.extra?.route_data as any)?.searchParams?.metadataTitle === testTitle ); }); @@ -103,7 +103,7 @@ test('Should send a transaction event with correct status for a generateMetadata const transactionPromise = waitForTransaction('nextjs-14', async transactionEvent => { return ( transactionEvent?.transaction === 'Page.generateMetadata (/generation-functions/with-notfound)' && - (transactionEvent.extra?.searchParams as any)?.metadataTitle === testTitle + (transactionEvent.extra?.route_data as any)?.searchParams?.metadataTitle === testTitle ); }); diff --git a/dev-packages/e2e-tests/tracing-shim-esm/index.cjs b/dev-packages/e2e-tests/tracing-shim-esm/index.cjs deleted file mode 100644 index e245f86e5c40..000000000000 --- a/dev-packages/e2e-tests/tracing-shim-esm/index.cjs +++ /dev/null @@ -1,3 +0,0 @@ -// TODO(v8): Remove this file once we get rid of tracing dependency from sveltekit vite plugin -// This file is used as a shim for @sentry/tracing -module.exports = {}; diff --git a/dev-packages/e2e-tests/tracing-shim-esm/index.mjs b/dev-packages/e2e-tests/tracing-shim-esm/index.mjs deleted file mode 100644 index 5ba2afe713b3..000000000000 --- a/dev-packages/e2e-tests/tracing-shim-esm/index.mjs +++ /dev/null @@ -1,3 +0,0 @@ -// TODO(v8): Remove this file once we get rid of tracing dependency from sveltekit vite plugin -// This file is used as a shim for @sentry/tracing -export {}; diff --git a/dev-packages/e2e-tests/tracing-shim-esm/package.json b/dev-packages/e2e-tests/tracing-shim-esm/package.json deleted file mode 100644 index 577f7e2cef51..000000000000 --- a/dev-packages/e2e-tests/tracing-shim-esm/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "tracing-shim-esm", - "version": "0.0.1", - "private": true, - "main": "index.cjs", - "module": "index.mjs", - "scripts": {}, - "dependencies": {}, - "devDependencies": {} -} diff --git a/dev-packages/e2e-tests/tracing-shim/index.js b/dev-packages/e2e-tests/tracing-shim/index.js deleted file mode 100644 index e245f86e5c40..000000000000 --- a/dev-packages/e2e-tests/tracing-shim/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// TODO(v8): Remove this file once we get rid of tracing dependency from sveltekit vite plugin -// This file is used as a shim for @sentry/tracing -module.exports = {}; diff --git a/dev-packages/e2e-tests/tracing-shim/package.json b/dev-packages/e2e-tests/tracing-shim/package.json deleted file mode 100644 index 0ee353b22b5b..000000000000 --- a/dev-packages/e2e-tests/tracing-shim/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "tracing-shim", - "version": "0.0.1", - "private": true, - "main": "index.js", - "scripts": {}, - "dependencies": {}, - "devDependencies": {} -}