From 0318bc232c91b220e0221a47ec532752e4792bb4 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Wed, 9 Sep 2026 12:54:50 +0200 Subject: [PATCH 1/6] feat(angular): Emit low cardinality TraceMethod span name and preserve description --- .../angular-17/tests/performance.test.ts | 4 ++-- .../angular-18/tests/performance.test.ts | 4 ++-- .../angular-20/tests/performance.test.ts | 4 ++-- .../angular-21/tests/performance.test.ts | 4 ++-- .../angular-22/tests/performance.test.ts | 4 ++-- packages/angular/src/tracing.ts | 14 ++++++++++++-- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts index c346c41c6a25..0e002f4dbed1 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts @@ -356,7 +356,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngInitSpan).toBeDefined(); expect(ngInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngOnInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, @@ -393,7 +393,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngAfterViewInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, diff --git a/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts index f9dd339c01b1..41c046cf1f8c 100644 --- a/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts @@ -346,7 +346,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngInitSpan).toBeDefined(); expect(ngInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngOnInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, @@ -383,7 +383,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngAfterViewInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, diff --git a/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts index 291650eac6cc..c77c20ee2f81 100644 --- a/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts @@ -356,7 +356,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngInitSpan).toBeDefined(); expect(ngInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngOnInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, @@ -393,7 +393,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngAfterViewInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, diff --git a/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts index 5f5373758461..7334a63d9439 100644 --- a/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts @@ -356,7 +356,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngInitSpan).toBeDefined(); expect(ngInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngOnInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, @@ -393,7 +393,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngAfterViewInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, diff --git a/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts index 2590de2f45f2..6ac03219594b 100644 --- a/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts @@ -356,7 +356,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngInitSpan).toBeDefined(); expect(ngInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngOnInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, @@ -393,7 +393,7 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: '', + name: 'ngAfterViewInit', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, diff --git a/packages/angular/src/tracing.ts b/packages/angular/src/tracing.ts index b0456e144c37..632d8ceba63d 100644 --- a/packages/angular/src/tracing.ts +++ b/packages/angular/src/tracing.ts @@ -27,6 +27,7 @@ import { URL_FULL, URL_PATH, URL_TEMPLATE, + SENTRY_DESCRIPTION, } from '@sentry/conventions/attributes'; import { FUNCTION, ROUTER } from '@sentry/conventions/op'; import type { Integration, Span } from '@sentry/core'; @@ -404,15 +405,24 @@ export function TraceMethod(options?: TraceMethodOptions): MethodDecorator { descriptor.value = function (...args: unknown[]): ReturnType { const now = timestampInSeconds(); + const methodName = options?.name || String(propertyKey) || 'Function execution'; + const description = `<${methodName ?? 'unnamed'}>`; + + const client = getClient(); + const name = client && hasSpanStreamingEnabled(client) ? methodName : description; + runOutsideAngular(() => { startInactiveSpan({ onlyIfParent: true, - name: `<${options?.name ? options.name : 'unnamed'}>`, + name, startTime: now, attributes: { [SENTRY_OP]: FUNCTION, [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular.trace_method_decorator', - [CODE_FUNCTION_NAME]: String(propertyKey), + // override description inference by Relay to preserve the original (transaction-based) description. + // sentry-conventions can't map the special case with the angle brackets. + [SENTRY_DESCRIPTION]: description, + [CODE_FUNCTION_NAME]: methodName, }, }).end(now); }); From c0dbb637ced64af11bcc87cc130a75f596312b35 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Wed, 9 Sep 2026 13:02:08 +0200 Subject: [PATCH 2/6] adjustments --- .../angular-17/tests/performance.test.ts | 5 +++-- .../angular-18/tests/performance.test.ts | 5 +++-- .../angular-20/tests/performance.test.ts | 5 +++-- .../angular-21/tests/performance.test.ts | 5 +++-- .../angular-22/tests/performance.test.ts | 6 +++--- packages/angular/src/tracing.ts | 8 +++++--- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts index 0e002f4dbed1..6cfb2972e92b 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts @@ -361,6 +361,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'code.function.name': { type: 'string', value: 'ngOnInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); @@ -393,11 +394,11 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: 'ngAfterViewInit', + name: 'Function execution', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, - 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts index 41c046cf1f8c..6fb45242aa5c 100644 --- a/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts @@ -351,6 +351,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'code.function.name': { type: 'string', value: 'ngOnInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); @@ -383,11 +384,11 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: 'ngAfterViewInit', + name: 'Function execution', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, - 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts index c77c20ee2f81..7d4b65b62731 100644 --- a/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts @@ -361,6 +361,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'code.function.name': { type: 'string', value: 'ngOnInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); @@ -393,11 +394,11 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: 'ngAfterViewInit', + name: 'Function execution', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, - 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts index 7334a63d9439..aa03acb9fedc 100644 --- a/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts @@ -361,6 +361,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'code.function.name': { type: 'string', value: 'ngOnInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); @@ -393,11 +394,11 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: 'ngAfterViewInit', + name: 'Function execution', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, - 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts index 6ac03219594b..36cafc392027 100644 --- a/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts @@ -360,7 +360,7 @@ test.describe('TraceMethod Decorator', () => { attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, - 'code.function.name': { type: 'string', value: 'ngOnInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); @@ -393,11 +393,11 @@ test.describe('TraceMethod Decorator', () => { expect(ngAfterViewInitSpan).toBeDefined(); expect(ngAfterViewInitSpan).toEqual( expect.objectContaining({ - name: 'ngAfterViewInit', + name: 'Function execution', attributes: expect.objectContaining({ 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, - 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, + 'sentry.description': { type: 'string', value: '' }, }), }), ); diff --git a/packages/angular/src/tracing.ts b/packages/angular/src/tracing.ts index 632d8ceba63d..e63bc3df6430 100644 --- a/packages/angular/src/tracing.ts +++ b/packages/angular/src/tracing.ts @@ -40,6 +40,7 @@ import { stripUrlQueryAndFragment, timestampInSeconds, filterCollectedUrl, + FUNCTION_SPAN_NAME_FALLBACK, } from '@sentry/core'; import type { Observable } from 'rxjs'; import { Subscription } from 'rxjs'; @@ -405,11 +406,12 @@ export function TraceMethod(options?: TraceMethodOptions): MethodDecorator { descriptor.value = function (...args: unknown[]): ReturnType { const now = timestampInSeconds(); - const methodName = options?.name || String(propertyKey) || 'Function execution'; + const methodName = options?.name; const description = `<${methodName ?? 'unnamed'}>`; const client = getClient(); - const name = client && hasSpanStreamingEnabled(client) ? methodName : description; + const hasSpanStreaming = client && hasSpanStreamingEnabled(client); + const name = hasSpanStreaming ? methodName || FUNCTION_SPAN_NAME_FALLBACK : description; runOutsideAngular(() => { startInactiveSpan({ @@ -421,7 +423,7 @@ export function TraceMethod(options?: TraceMethodOptions): MethodDecorator { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular.trace_method_decorator', // override description inference by Relay to preserve the original (transaction-based) description. // sentry-conventions can't map the special case with the angle brackets. - [SENTRY_DESCRIPTION]: description, + ...(hasSpanStreaming && { [SENTRY_DESCRIPTION]: description }), [CODE_FUNCTION_NAME]: methodName, }, }).end(now); From bdf6c673928a885c93dd36804febd4906d48e856 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Wed, 9 Sep 2026 13:35:58 +0200 Subject: [PATCH 3/6] add fallback constant --- packages/core/src/tracing/spans/spanNames.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/core/src/tracing/spans/spanNames.ts b/packages/core/src/tracing/spans/spanNames.ts index b0a0e29b9eb9..79ec92cf4e22 100644 --- a/packages/core/src/tracing/spans/spanNames.ts +++ b/packages/core/src/tracing/spans/spanNames.ts @@ -88,6 +88,12 @@ export const REQUEST_HANDLER_SPAN_NAME_FALLBACK = 'Request handler'; */ export const SERVERLESS_FUNCTION_SPAN_NAME_FALLBACK = 'Serverless function execution'; +/** + * Fallback name for function execution spans when no better-suited span name is available. + * @see https://getsentry.github.io/sentry-conventions/names/#function + */ +export const FUNCTION_SPAN_NAME_FALLBACK = 'Function execution'; + /** * The `cache.operation` attribute value each cache op carries. Cache span names are * `cache.{{cache.operation}}`, so the op constant itself doubles as the low-cardinality span name. From 7470458c50487da48f41b5f5562ca033986a28e7 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Wed, 9 Sep 2026 13:37:02 +0200 Subject: [PATCH 4/6] migration entry --- MIGRATION.md | 1 + 1 file changed, 1 insertion(+) diff --git a/MIGRATION.md b/MIGRATION.md index ae5c2d0583d7..830baa8af6e0 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -971,6 +971,7 @@ The following span names were adjusted: | `http.client`, `http.client.stream` | The request method and sanitized URL | `GET https://api.example.com/users/123` | The request method and the domain, or just the method if there is no domain | `GET api.example.com`, `GET` | | `router` | Framework-specific, sometimes containing the raw URL | `/users/123`, `SvelteKit Route Change` | The span's `http.route`, or `Router` if the SDK has none | `/users/:id`, `Router` | | `handler` | Framework-specific, often carrying the request method | `GET /users/:id`, `route-handler`, `getUser` | The span's `http.route`, or `Request handler` if the SDK has none | `/users/:id`, `Request handler` | +| `function` (Angular `TraceMethod`) | The decorator's `name` option in angle brackets | ``, `` | The decorator's `name` option, or `Function execution` if it has none | `Login.ngOnInit`, `getUsers`, `Function execution` | | `function.gcp` | The request method and path for HTTP functions, otherwise the trigger's event or trigger type | `POST /users`, `google.pubsub.topic.publish`, `firebase.function.http.request` | The function name, or `Serverless function execution` if the SDK cannot resolve one | `myFunction`, `Serverless function execution` | | `function.aws` | The Lambda function name | `my-function` | Unchanged, except that the SDK now falls back to `Serverless function execution` if it cannot resolve the function name | `my-function`, `Serverless function execution` | | `graphql` | The graphql phase and, for operations, the operation name | `query GetUser`, `graphql.parse`, `graphql.resolve user.0.name` | The operation type, or the processing type where there is none | `GraphQL query`, `GraphQL parse`, `GraphQL resolve` | From 149741be107d87b73687ebd7f57a7773b81569cb Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Wed, 9 Sep 2026 14:12:14 +0200 Subject: [PATCH 5/6] bring back string(propertykey), fix tests --- packages/angular/src/tracing.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/angular/src/tracing.ts b/packages/angular/src/tracing.ts index e63bc3df6430..de2059ecdf8f 100644 --- a/packages/angular/src/tracing.ts +++ b/packages/angular/src/tracing.ts @@ -407,7 +407,7 @@ export function TraceMethod(options?: TraceMethodOptions): MethodDecorator { const now = timestampInSeconds(); const methodName = options?.name; - const description = `<${methodName ?? 'unnamed'}>`; + const description = `<${methodName || 'unnamed'}>`; const client = getClient(); const hasSpanStreaming = client && hasSpanStreamingEnabled(client); @@ -424,7 +424,7 @@ export function TraceMethod(options?: TraceMethodOptions): MethodDecorator { // override description inference by Relay to preserve the original (transaction-based) description. // sentry-conventions can't map the special case with the angle brackets. ...(hasSpanStreaming && { [SENTRY_DESCRIPTION]: description }), - [CODE_FUNCTION_NAME]: methodName, + [CODE_FUNCTION_NAME]: methodName || String(propertyKey), }, }).end(now); }); From b44580cce6fac24e45a7e45b879605301f3337ca Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Thu, 10 Sep 2026 12:36:15 +0200 Subject: [PATCH 6/6] add back assertion --- .../test-applications/angular-17/tests/performance.test.ts | 1 + .../test-applications/angular-18/tests/performance.test.ts | 1 + .../test-applications/angular-20/tests/performance.test.ts | 1 + .../test-applications/angular-21/tests/performance.test.ts | 1 + .../test-applications/angular-22/tests/performance.test.ts | 1 + 5 files changed, 5 insertions(+) diff --git a/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts index 6cfb2972e92b..adb440a59b57 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/tests/performance.test.ts @@ -399,6 +399,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'sentry.description': { type: 'string', value: '' }, + 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts index 6fb45242aa5c..15c5d1abe318 100644 --- a/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-18/tests/performance.test.ts @@ -389,6 +389,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'sentry.description': { type: 'string', value: '' }, + 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts index 7d4b65b62731..e4516f724e7a 100644 --- a/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-20/tests/performance.test.ts @@ -399,6 +399,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'sentry.description': { type: 'string', value: '' }, + 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts index aa03acb9fedc..2e36b5700d6d 100644 --- a/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-21/tests/performance.test.ts @@ -399,6 +399,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'sentry.description': { type: 'string', value: '' }, + 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts b/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts index 36cafc392027..b763b72bf61e 100644 --- a/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts +++ b/dev-packages/e2e-tests/test-applications/angular-22/tests/performance.test.ts @@ -398,6 +398,7 @@ test.describe('TraceMethod Decorator', () => { 'sentry.op': { type: 'string', value: 'function' }, 'sentry.origin': { type: 'string', value: 'auto.ui.angular.trace_method_decorator' }, 'sentry.description': { type: 'string', value: '' }, + 'code.function.name': { type: 'string', value: 'ngAfterViewInit' }, }), }), );