From bda181e295e848d5bead04cf07f8096b13c9b94a Mon Sep 17 00:00:00 2001 From: Martin Sonnberger Date: Mon, 27 Jul 2026 15:42:57 +0200 Subject: [PATCH 1/3] feat(cloudflare)!: Use `function` span op for cron, email and workflow steps Trigger and workflow phase belong in attributes, not a new op per trigger. Workflow steps now set `code.function.name` and `workflow.step.name`; `faas.trigger` and `faas.cron` are unchanged. Ref: JS-3105 Co-Authored-By: Claude Opus 5 (1M context) --- .../no-propagation-worker-do/test.ts | 2 +- .../tracing/propagation/worker-do/test.ts | 2 +- .../tracing/propagation/workflow-do/test.ts | 4 ++-- .../suites/tracing/scheduled/test.ts | 4 ++-- .../suites/tracing/workflow/test.ts | 8 ++++---- .../test.ts | 4 ++-- .../durableobject-workflow-specifier/test.ts | 4 ++-- .../durableobject-workflow/test.ts | 4 ++-- .../vite-autoinstrument/workflow/test.ts | 2 +- .../instrumentations/worker/instrumentEmail.ts | 3 ++- .../worker/instrumentScheduled.ts | 3 ++- packages/cloudflare/src/workflows.ts | 6 +++++- .../worker/instrumentEmail.test.ts | 4 ++-- .../worker/instrumentScheduled.test.ts | 4 ++-- packages/cloudflare/test/workflow.test.ts | 18 +++++++++--------- 15 files changed, 39 insertions(+), 33 deletions(-) diff --git a/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/no-propagation-worker-do/test.ts b/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/no-propagation-worker-do/test.ts index 287d62b25c1f..6431cc07b13a 100644 --- a/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/no-propagation-worker-do/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/no-propagation-worker-do/test.ts @@ -183,7 +183,7 @@ it('does not propagate trace from scheduled handler to durable object when enabl expect.objectContaining({ contexts: expect.objectContaining({ trace: expect.objectContaining({ - op: 'faas.cron', + op: 'function', data: expect.objectContaining({ 'sentry.origin': 'auto.faas.cloudflare.scheduled', }), diff --git a/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/worker-do/test.ts b/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/worker-do/test.ts index d1c5385f8fbf..4b1b24e4cf48 100644 --- a/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/worker-do/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/worker-do/test.ts @@ -179,7 +179,7 @@ it('propagates trace from scheduled handler to durable object', async ({ signal expect.objectContaining({ contexts: expect.objectContaining({ trace: expect.objectContaining({ - op: 'faas.cron', + op: 'function', data: expect.objectContaining({ 'sentry.origin': 'auto.faas.cloudflare.scheduled', }), diff --git a/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/workflow-do/test.ts b/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/workflow-do/test.ts index 818e92d8d677..1e33349b5bb0 100644 --- a/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/workflow-do/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/tracing/propagation/workflow-do/test.ts @@ -15,9 +15,9 @@ it('traces a workflow that calls a durable object with the same trace id', async expect.objectContaining({ contexts: expect.objectContaining({ trace: expect.objectContaining({ - op: 'function.step.do', + op: 'function', data: expect.objectContaining({ - 'sentry.op': 'function.step.do', + 'sentry.op': 'function', 'sentry.origin': 'auto.faas.cloudflare.workflow', }), origin: 'auto.faas.cloudflare.workflow', diff --git a/dev-packages/cloudflare-integration-tests/suites/tracing/scheduled/test.ts b/dev-packages/cloudflare-integration-tests/suites/tracing/scheduled/test.ts index b96c4bd0cba3..3ba87e1a22bb 100644 --- a/dev-packages/cloudflare-integration-tests/suites/tracing/scheduled/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/tracing/scheduled/test.ts @@ -22,11 +22,11 @@ it('Scheduled handler creates transaction with correct attributes', async ({ sig trace: { span_id: expect.any(String), trace_id: expect.any(String), - op: 'faas.cron', + op: 'function', origin: 'auto.faas.cloudflare.scheduled', status: 'ok', data: { - [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'faas.cron', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'function', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.faas.cloudflare.scheduled', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: 1, diff --git a/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts b/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts index 1ae37f87d64b..47d2bf3d1e74 100644 --- a/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts @@ -21,11 +21,11 @@ it('Workflow steps create transactions with correct attributes', async ({ signal trace: { span_id: expect.any(String), trace_id: expect.any(String), - op: 'function.step.do', + op: 'function', origin: 'auto.faas.cloudflare.workflow', status: 'ok', data: { - [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'function.step.do', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'function', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.faas.cloudflare.workflow', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: 1, @@ -48,11 +48,11 @@ it('Workflow steps create transactions with correct attributes', async ({ signal trace: { span_id: expect.any(String), trace_id: expect.any(String), - op: 'function.step.do', + op: 'function', origin: 'auto.faas.cloudflare.workflow', status: 'ok', data: { - [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'function.step.do', + [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'function', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.faas.cloudflare.workflow', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: 1, diff --git a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-manual-mixed/test.ts b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-manual-mixed/test.ts index 62807342b2d0..390b25ea64a2 100644 --- a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-manual-mixed/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-manual-mixed/test.ts @@ -28,12 +28,12 @@ function expectDurableObjectTransaction(transactionEvent: TransactionEvent): voi ]); } -// A workflow step runs in its own invocation and reports a `function.step.do` / +// A workflow step runs in its own invocation and reports a `function` / // `auto.faas.cloudflare.workflow` transaction named after the step — present // only because the transform auto-wrapped the Workflow class. function expectWorkflowStepTransaction(transactionEvent: TransactionEvent): void { expect(transactionEvent.transaction).toBe('step-one'); - expect(transactionEvent.contexts?.trace?.op).toBe('function.step.do'); + expect(transactionEvent.contexts?.trace?.op).toBe('function'); expect(transactionEvent.contexts?.trace?.origin).toBe('auto.faas.cloudflare.workflow'); } diff --git a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-specifier/test.ts b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-specifier/test.ts index 66bd3be29f15..a9d88f6d64bd 100644 --- a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-specifier/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow-specifier/test.ts @@ -28,12 +28,12 @@ function expectDurableObjectTransaction(transactionEvent: TransactionEvent): voi ]); } -// A workflow step runs in its own invocation and reports a `function.step.do` / +// A workflow step runs in its own invocation and reports a `function` / // `auto.faas.cloudflare.workflow` transaction named after the step — present // only when the Workflow class was wrapped with `instrumentWorkflowWithSentry`. function expectWorkflowStepTransaction(transactionEvent: TransactionEvent): void { expect(transactionEvent.transaction).toBe('step-one'); - expect(transactionEvent.contexts?.trace?.op).toBe('function.step.do'); + expect(transactionEvent.contexts?.trace?.op).toBe('function'); expect(transactionEvent.contexts?.trace?.origin).toBe('auto.faas.cloudflare.workflow'); } diff --git a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow/test.ts b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow/test.ts index f7122c460703..e77bb20128d5 100644 --- a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/durableobject-workflow/test.ts @@ -28,12 +28,12 @@ function expectDurableObjectTransaction(transactionEvent: TransactionEvent): voi ]); } -// A workflow step runs in its own invocation and reports a `function.step.do` / +// A workflow step runs in its own invocation and reports a `function` / // `auto.faas.cloudflare.workflow` transaction named after the step — present // only when the Workflow class was wrapped with `instrumentWorkflowWithSentry`. function expectWorkflowStepTransaction(transactionEvent: TransactionEvent): void { expect(transactionEvent.transaction).toBe('step-one'); - expect(transactionEvent.contexts?.trace?.op).toBe('function.step.do'); + expect(transactionEvent.contexts?.trace?.op).toBe('function'); expect(transactionEvent.contexts?.trace?.origin).toBe('auto.faas.cloudflare.workflow'); } diff --git a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/workflow/test.ts b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/workflow/test.ts index e4e517387760..c942d5376132 100644 --- a/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/workflow/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/vite-autoinstrument/workflow/test.ts @@ -11,7 +11,7 @@ it('auto-instruments a Workflow class', async ({ signal }) => { .expect(envelope => { const transactionEvent = envelope[1]?.[0]?.[1] as TransactionEvent; expect(transactionEvent.transaction).toBe('step-one'); - expect(transactionEvent.contexts?.trace?.op).toBe('function.step.do'); + expect(transactionEvent.contexts?.trace?.op).toBe('function'); expect(transactionEvent.contexts?.trace?.origin).toBe('auto.faas.cloudflare.workflow'); }) .start(signal); diff --git a/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts b/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts index ee4a4c73b69f..0783d1010172 100644 --- a/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts +++ b/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts @@ -1,5 +1,6 @@ import type { EmailMessage, ExportedHandler } from '@cloudflare/workers-types'; import type { env as cloudflareEnv } from 'cloudflare:workers'; +import { GENERAL_FUNCTION_SPAN_OP } from '@sentry/conventions/op'; import { captureException, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, @@ -35,7 +36,7 @@ function wrapEmailHandler( return startSpan( { - op: 'faas.email', + op: GENERAL_FUNCTION_SPAN_OP, name: `Handle Email ${emailMessage.to}`, attributes: { 'faas.trigger': 'email', diff --git a/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts b/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts index 94f57208f0fb..17cce45ba20b 100644 --- a/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts +++ b/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts @@ -1,5 +1,6 @@ import type { ExportedHandler, ScheduledController } from '@cloudflare/workers-types'; import type { env as cloudflareEnv, WorkerEntrypoint } from 'cloudflare:workers'; +import { GENERAL_FUNCTION_SPAN_OP } from '@sentry/conventions/op'; import { captureException, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, @@ -32,7 +33,7 @@ function wrapScheduledHandler( return startSpan( { - op: 'faas.cron', + op: GENERAL_FUNCTION_SPAN_OP, name: `Scheduled Cron ${controller.cron}`, attributes: { 'faas.cron': controller.cron, diff --git a/packages/cloudflare/src/workflows.ts b/packages/cloudflare/src/workflows.ts index beccbcfa882c..1cf2dc8f121e 100644 --- a/packages/cloudflare/src/workflows.ts +++ b/packages/cloudflare/src/workflows.ts @@ -1,3 +1,5 @@ +import { CODE_FUNCTION_NAME } from '@sentry/conventions/attributes'; +import { GENERAL_FUNCTION_SPAN_OP } from '@sentry/conventions/op'; import type { PropagationContext } from '@sentry/core'; import { captureException, @@ -117,10 +119,12 @@ class WrappedWorkflowStep implements WorkflowStep { return startSpan( { - op: 'function.step.do', + op: GENERAL_FUNCTION_SPAN_OP, name, scope: scopeForStep, attributes: { + [CODE_FUNCTION_NAME]: name, + 'workflow.step.name': name, 'cloudflare.workflow.timeout': config?.timeout, 'cloudflare.workflow.retries.backoff': config?.retries?.backoff, // In workers-types v5, `delay` may be a `WorkflowDelayFunction`, which isn't a valid span attribute value. diff --git a/packages/cloudflare/test/instrumentations/worker/instrumentEmail.test.ts b/packages/cloudflare/test/instrumentations/worker/instrumentEmail.test.ts index 01000fdc89fb..ff524a76fa8f 100644 --- a/packages/cloudflare/test/instrumentations/worker/instrumentEmail.test.ts +++ b/packages/cloudflare/test/instrumentations/worker/instrumentEmail.test.ts @@ -262,12 +262,12 @@ describe('instrumentEmail', () => { expect(sentryEvent.contexts?.trace).toEqual({ data: { 'sentry.origin': 'auto.faas.cloudflare.email', - 'sentry.op': 'faas.email', + 'sentry.op': 'function', 'faas.trigger': 'email', 'sentry.sample_rate': 1, 'sentry.source': 'task', }, - op: 'faas.email', + op: 'function', origin: 'auto.faas.cloudflare.email', status: 'ok', span_id: expect.stringMatching(/[a-f0-9]{16}/), diff --git a/packages/cloudflare/test/instrumentations/worker/instrumentScheduled.test.ts b/packages/cloudflare/test/instrumentations/worker/instrumentScheduled.test.ts index c73255918cce..2597441d249e 100644 --- a/packages/cloudflare/test/instrumentations/worker/instrumentScheduled.test.ts +++ b/packages/cloudflare/test/instrumentations/worker/instrumentScheduled.test.ts @@ -256,14 +256,14 @@ describe('instrumentScheduled', () => { expect(sentryEvent.contexts?.trace).toEqual({ data: { 'sentry.origin': 'auto.faas.cloudflare.scheduled', - 'sentry.op': 'faas.cron', + 'sentry.op': 'function', 'faas.cron': '0 0 0 * * *', 'faas.time': expect.any(String), 'faas.trigger': 'timer', 'sentry.sample_rate': 1, 'sentry.source': 'task', }, - op: 'faas.cron', + op: 'function', origin: 'auto.faas.cloudflare.scheduled', status: 'ok', span_id: expect.stringMatching(/[a-f0-9]{16}/), diff --git a/packages/cloudflare/test/workflow.test.ts b/packages/cloudflare/test/workflow.test.ts index f78a9341480d..5ea96ba8449d 100644 --- a/packages/cloudflare/test/workflow.test.ts +++ b/packages/cloudflare/test/workflow.test.ts @@ -159,11 +159,11 @@ describe.skipIf(NODE_MAJOR_VERSION < 20)('workflows', () => { trace_id: TRACE_ID, data: expect.objectContaining({ 'sentry.origin': 'auto.faas.cloudflare.workflow', - 'sentry.op': 'function.step.do', + 'sentry.op': 'function', 'sentry.source': 'task', 'sentry.sample_rate': 1, }), - op: 'function.step.do', + op: 'function', status: 'ok', origin: 'auto.faas.cloudflare.workflow', }), @@ -276,11 +276,11 @@ describe.skipIf(NODE_MAJOR_VERSION < 20)('workflows', () => { trace_id: '0d2b6d1743ce6d53af4f5ee416ad5d1b', data: expect.objectContaining({ 'sentry.origin': 'auto.faas.cloudflare.workflow', - 'sentry.op': 'function.step.do', + 'sentry.op': 'function', 'sentry.source': 'task', 'sentry.sample_rate': 1, }), - op: 'function.step.do', + op: 'function', status: 'ok', origin: 'auto.faas.cloudflare.workflow', }), @@ -353,11 +353,11 @@ describe.skipIf(NODE_MAJOR_VERSION < 20)('workflows', () => { trace_id: TRACE_ID, data: expect.objectContaining({ 'sentry.origin': 'auto.faas.cloudflare.workflow', - 'sentry.op': 'function.step.do', + 'sentry.op': 'function', 'sentry.source': 'task', 'sentry.sample_rate': 1, }), - op: 'function.step.do', + op: 'function', status: 'internal_error', origin: 'auto.faas.cloudflare.workflow', }), @@ -396,11 +396,11 @@ describe.skipIf(NODE_MAJOR_VERSION < 20)('workflows', () => { trace_id: TRACE_ID, data: expect.objectContaining({ 'sentry.origin': 'auto.faas.cloudflare.workflow', - 'sentry.op': 'function.step.do', + 'sentry.op': 'function', 'sentry.source': 'task', 'sentry.sample_rate': 1, }), - op: 'function.step.do', + op: 'function', status: 'ok', origin: 'auto.faas.cloudflare.workflow', }), @@ -609,7 +609,7 @@ describe.skipIf(NODE_MAJOR_VERSION < 20)('workflows', () => { const rootSpanId = rootSpan.contexts.trace.span_id; // Child span for the step.do with the custom span as parent - const stepSpan = rootSpan.spans.find((s: any) => s.description === 'first step' && s.op === 'function.step.do'); + const stepSpan = rootSpan.spans.find((s: any) => s.description === 'first step' && s.op === 'function'); expect(stepSpan).toBeDefined(); expect(stepSpan.parent_span_id).toBe(rootSpanId); }); From 2030b0baf3538a459710c5daafcf72b4d71218d9 Mon Sep 17 00:00:00 2001 From: Martin Sonnberger Date: Wed, 29 Jul 2026 11:58:04 +0200 Subject: [PATCH 2/3] use sentry.op --- .../cloudflare/src/instrumentations/worker/instrumentEmail.ts | 3 ++- .../src/instrumentations/worker/instrumentScheduled.ts | 3 ++- packages/cloudflare/src/workflows.ts | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts b/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts index 0783d1010172..323ae2712835 100644 --- a/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts +++ b/packages/cloudflare/src/instrumentations/worker/instrumentEmail.ts @@ -1,5 +1,6 @@ import type { EmailMessage, ExportedHandler } from '@cloudflare/workers-types'; import type { env as cloudflareEnv } from 'cloudflare:workers'; +import { SENTRY_OP } from '@sentry/conventions/attributes'; import { GENERAL_FUNCTION_SPAN_OP } from '@sentry/conventions/op'; import { captureException, @@ -36,9 +37,9 @@ function wrapEmailHandler( return startSpan( { - op: GENERAL_FUNCTION_SPAN_OP, name: `Handle Email ${emailMessage.to}`, attributes: { + [SENTRY_OP]: GENERAL_FUNCTION_SPAN_OP, 'faas.trigger': 'email', [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.faas.cloudflare.email', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', diff --git a/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts b/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts index 17cce45ba20b..5c8eb3a3f90c 100644 --- a/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts +++ b/packages/cloudflare/src/instrumentations/worker/instrumentScheduled.ts @@ -1,5 +1,6 @@ import type { ExportedHandler, ScheduledController } from '@cloudflare/workers-types'; import type { env as cloudflareEnv, WorkerEntrypoint } from 'cloudflare:workers'; +import { SENTRY_OP } from '@sentry/conventions/attributes'; import { GENERAL_FUNCTION_SPAN_OP } from '@sentry/conventions/op'; import { captureException, @@ -33,9 +34,9 @@ function wrapScheduledHandler( return startSpan( { - op: GENERAL_FUNCTION_SPAN_OP, name: `Scheduled Cron ${controller.cron}`, attributes: { + [SENTRY_OP]: GENERAL_FUNCTION_SPAN_OP, 'faas.cron': controller.cron, 'faas.time': new Date(controller.scheduledTime).toISOString(), 'faas.trigger': 'timer', diff --git a/packages/cloudflare/src/workflows.ts b/packages/cloudflare/src/workflows.ts index 1cf2dc8f121e..c7c54e424d5c 100644 --- a/packages/cloudflare/src/workflows.ts +++ b/packages/cloudflare/src/workflows.ts @@ -1,4 +1,4 @@ -import { CODE_FUNCTION_NAME } from '@sentry/conventions/attributes'; +import { CODE_FUNCTION_NAME, SENTRY_OP } from '@sentry/conventions/attributes'; import { GENERAL_FUNCTION_SPAN_OP } from '@sentry/conventions/op'; import type { PropagationContext } from '@sentry/core'; import { @@ -119,10 +119,10 @@ class WrappedWorkflowStep implements WorkflowStep { return startSpan( { - op: GENERAL_FUNCTION_SPAN_OP, name, scope: scopeForStep, attributes: { + [SENTRY_OP]: GENERAL_FUNCTION_SPAN_OP, [CODE_FUNCTION_NAME]: name, 'workflow.step.name': name, 'cloudflare.workflow.timeout': config?.timeout, From 239d155c5445e98ea1aa8d35ede1a8adfe2abce6 Mon Sep 17 00:00:00 2001 From: Martin Sonnberger Date: Wed, 29 Jul 2026 13:06:14 +0200 Subject: [PATCH 3/3] fix tests --- .../suites/tracing/workflow/test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts b/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts index 47d2bf3d1e74..ca15d818dcd9 100644 --- a/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts +++ b/dev-packages/cloudflare-integration-tests/suites/tracing/workflow/test.ts @@ -29,6 +29,8 @@ it('Workflow steps create transactions with correct attributes', async ({ signal [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.faas.cloudflare.workflow', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: 1, + 'code.function.name': 'step-one', + 'workflow.step.name': 'step-one', 'cloudflare.workflow.attempt': 1, }, }, @@ -56,6 +58,8 @@ it('Workflow steps create transactions with correct attributes', async ({ signal [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.faas.cloudflare.workflow', [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'task', [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: 1, + 'code.function.name': 'step-two', + 'workflow.step.name': 'step-two', 'cloudflare.workflow.attempt': 1, }, },