From 54d78090a94c35714ffb5eba25fdd9e35dd01bf7 Mon Sep 17 00:00:00 2001 From: isaacs Date: Mon, 27 Jul 2026 17:04:59 -0700 Subject: [PATCH] ref!: Remove `.orchestrion.` from span origins Origins no longer encode the injection/patch mechanism (orchestrion vs otel/iitm). closes: JS-3119 --- .../suites/direct-client-acs/scenario.mjs | 2 +- .../suites/orchestrion-amqplib/test.ts | 2 +- .../suites/orchestrion-anthropic/test.ts | 2 +- .../suites/orchestrion-aws/test.ts | 2 +- .../suites/orchestrion-firebase/test.ts | 2 +- .../suites/orchestrion-generic-pool/test.ts | 2 +- .../suites/orchestrion-google-genai/test.ts | 2 +- .../suites/orchestrion-hapi/test.ts | 2 +- .../suites/orchestrion-kafkajs/test.ts | 2 +- .../suites/orchestrion-koa/test.ts | 2 +- .../suites/orchestrion-mongo/test.ts | 2 +- .../suites/orchestrion-mongoose/test.ts | 2 +- .../suites/orchestrion-mysql/test.ts | 2 +- .../suites/orchestrion-mysql2/test.ts | 2 +- .../suites/orchestrion-openai/test.ts | 2 +- .../suites/orchestrion-postgres/test.ts | 2 +- .../suites/orchestrion-postgresjs/test.ts | 2 +- .../suites/orchestrion-tedious/test.ts | 2 +- .../astro-7-orchestrion/tests/db.test.ts | 8 +-- .../bun-mysql/tests/mysql.test.ts | 2 +- .../tests/mysql.test.ts | 2 +- .../create-remix-app-v2/tests/db.test.ts | 8 +-- .../deno-mysql/tests/mysql.test.ts | 2 +- .../deno-pg/tests/pg.test.ts | 2 +- .../nestjs-11/tests/transactions.test.ts | 40 ++++++------- .../nestjs-8/tests/transactions.test.ts | 40 ++++++------- .../nestjs-basic/tests/transactions.test.ts | 44 +++++++-------- .../nestjs-bullmq/tests/bullmq.test.ts | 2 +- .../tests/events.test.ts | 4 +- .../nestjs-fastify/tests/transactions.test.ts | 44 +++++++-------- .../nestjs-orchestrion/tests/events.test.ts | 2 +- .../tests/transactions.test.ts | 14 ++--- .../tests/transactions.test.ts | 16 +++--- .../tests/transactions.test.ts | 16 +++--- .../tests/anthropic.test.ts | 4 +- .../tests/dataloader.test.ts | 4 +- .../tests/db-page.test.ts | 6 +- .../tests/generic-pool.test.ts | 4 +- .../tests/google-genai.test.ts | 4 +- .../tests/ioredis.test.ts | 4 +- .../nextjs-16-orchestrion/tests/knex.test.ts | 8 +-- .../tests/mongodb.test.ts | 4 +- .../tests/mongoose.test.ts | 4 +- .../nextjs-16-orchestrion/tests/mysql.test.ts | 4 +- .../tests/mysql2.test.ts | 4 +- .../tests/openai.test.ts | 4 +- .../nextjs-16-orchestrion/tests/pg.test.ts | 4 +- .../tests/postgresjs.test.ts | 4 +- .../tests/transactions.test.ts | 4 +- .../tests/transactions.test.ts | 4 +- .../node-firebase/tests/functions.test.ts | 18 +++--- .../node-firebase/tests/transactions.test.ts | 2 +- .../node-hapi/tests/transactions.test.ts | 8 +-- .../node-koa/tests/instrumented-paths.test.ts | 8 +-- .../node-koa/tests/transactions.test.ts | 12 ++-- .../nuxt-4-orchestrion/tests/db.test.ts | 8 +-- .../tests/db.test.ts | 8 +-- .../sveltekit-2-orchestrion/tests/db.test.ts | 8 +-- .../tests/db.test.ts | 8 +-- .../aws-integration-streamed/test.ts | 2 +- .../aws-serverless/aws-integration/test.ts | 2 +- .../suites/aws-serverless/bedrock/test.ts | 2 +- .../suites/tracing/amqplib/test.ts | 4 +- .../suites/tracing/anthropic/test.ts | 10 ++-- .../suites/tracing/dataloader/test.ts | 2 +- .../suites/tracing/genericPool-v2/test.ts | 2 +- .../suites/tracing/genericPool/test.ts | 2 +- .../suites/tracing/google-genai/test.ts | 4 +- .../suites/tracing/hapi/test.ts | 2 +- .../suites/tracing/kafkajs/test.ts | 4 +- .../suites/tracing/knex/mysql2/test.ts | 2 +- .../suites/tracing/knex/pg/test.ts | 2 +- .../suites/tracing/koa/test.ts | 2 +- .../suites/tracing/langchain/test.ts | 6 +- .../suites/tracing/langchain/v1/test.ts | 6 +- .../suites/tracing/mongodb-v4/test.ts | 2 +- .../suites/tracing/mongodb-v5/test.ts | 2 +- .../suites/tracing/mongodb-v6/test.ts | 2 +- .../suites/tracing/mongodb-v7/test.ts | 2 +- .../suites/tracing/mongodb/test.ts | 2 +- .../tracing/mongoose-tracing-channel/test.ts | 2 +- .../suites/tracing/mongoose-v5/test.ts | 2 +- .../suites/tracing/mongoose-v7/test.ts | 2 +- .../suites/tracing/mongoose-v8/test.ts | 2 +- .../suites/tracing/mongoose-v9/test.ts | 2 +- .../suites/tracing/mongoose/test.ts | 4 +- .../suites/tracing/mysql/test.ts | 4 +- .../suites/tracing/mysql2/test.ts | 2 +- .../suites/tracing/openai/test.ts | 56 +++++++++---------- .../suites/tracing/openai/v6/test.ts | 49 ++++++++-------- .../suites/tracing/postgres-streamed/test.ts | 6 +- .../suites/tracing/postgres/test.ts | 6 +- .../suites/tracing/postgresjs/test.ts | 3 +- .../suites/tracing/redis-cache/test.ts | 2 +- .../suites/tracing/redis/test.ts | 2 +- .../suites/tracing/tedious/test.ts | 2 +- packages/nestjs/src/integrations/helpers.ts | 26 ++------- .../nestjs/src/integrations/wrap-route.ts | 8 +-- .../orchestrion-subscriber.test.ts | 28 +++++----- .../test/integrations/span-origin.test.ts | 20 +++---- .../server/integrations/tracing-channel.ts | 2 +- .../remix/test/server/tracing-channel.test.ts | 4 +- .../integrations/tracing-channel/amqplib.ts | 4 +- .../integrations/tracing-channel/anthropic.ts | 4 +- .../tracing-channel/aws-sdk/constants.ts | 4 +- .../tracing-channel/aws-sdk/index.ts | 4 +- .../tracing-channel/dataloader.ts | 2 +- .../tracing-channel/firebase/firestore.ts | 5 +- .../tracing-channel/firebase/functions.ts | 2 +- .../tracing-channel/firebase/index.ts | 3 +- .../tracing-channel/generic-pool.ts | 2 +- .../tracing-channel/google-genai.ts | 4 +- .../tracing-channel/hapi-utils.ts | 2 +- .../integrations/tracing-channel/ioredis.ts | 2 +- .../tracing-channel/kafkajs/spans.ts | 7 +-- .../src/integrations/tracing-channel/knex.ts | 2 +- .../src/integrations/tracing-channel/koa.ts | 2 +- .../integrations/tracing-channel/mongodb.ts | 2 +- .../integrations/tracing-channel/mongoose.ts | 5 +- .../src/integrations/tracing-channel/mysql.ts | 2 +- .../integrations/tracing-channel/mysql2.ts | 2 +- .../integrations/tracing-channel/openai.ts | 4 +- .../tracing-channel/postgres-js.ts | 2 +- .../integrations/tracing-channel/postgres.ts | 2 +- .../src/integrations/tracing-channel/redis.ts | 2 +- .../integrations/tracing-channel/tedious.ts | 2 +- .../src/mongoose/mongoose-legacy-span.ts | 1 - .../tracing-channel/ioredis.test.ts | 2 +- .../test/orchestrion/firebase.test.ts | 6 +- .../test/orchestrion/postgres.test.ts | 4 +- 130 files changed, 386 insertions(+), 429 deletions(-) diff --git a/dev-packages/deno-integration-tests/suites/direct-client-acs/scenario.mjs b/dev-packages/deno-integration-tests/suites/direct-client-acs/scenario.mjs index e9a952ca9523..584867c1b69c 100644 --- a/dev-packages/deno-integration-tests/suites/direct-client-acs/scenario.mjs +++ b/dev-packages/deno-integration-tests/suites/direct-client-acs/scenario.mjs @@ -21,7 +21,7 @@ const client = new DenoClient({ stackParser: createStackParser(nodeStackLineParser()), beforeSendTransaction(event) { const spans = event.spans ?? []; - if (spans.some(s => s.op === 'db' && s.data?.['sentry.origin'] === 'auto.db.orchestrion.mysql')) { + if (spans.some(s => s.op === 'db' && s.data?.['sentry.origin'] === 'auto.db.mysql')) { nested = true; } return null; diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-amqplib/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-amqplib/test.ts index 137b394d8b5b..f319af4a00ad 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-amqplib/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-amqplib/test.ts @@ -54,5 +54,5 @@ Deno.test('amqplib instrumentation: orchestrion:amqplib:publish channel produces assertEquals(publishSpan!.description, 'publish my-exchange'); assertEquals(publishSpan!.data?.['messaging.destination.name'], 'my-exchange'); assertEquals(publishSpan!.data?.['messaging.system'], 'rabbitmq'); - assertEquals(publishSpan!.data?.['sentry.origin'], 'auto.amqplib.orchestrion.publisher'); + assertEquals(publishSpan!.data?.['sentry.origin'], 'auto.amqplib.publisher'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-anthropic/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-anthropic/test.ts index e9459568465c..0e92fdd1e6dc 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-anthropic/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-anthropic/test.ts @@ -56,5 +56,5 @@ Deno.test('anthropic instrumentation: orchestrion @anthropic-ai/sdk:chat channel assertEquals(aiSpan!.data?.['gen_ai.request.model'], 'claude-3-5-sonnet-latest'); assertEquals(aiSpan!.data?.['gen_ai.response.model'], 'claude-3-5-sonnet-20241022'); assertEquals(aiSpan!.data?.['gen_ai.usage.total_tokens'], 15); - assertEquals(aiSpan!.data?.['sentry.origin'], 'auto.ai.orchestrion.anthropic'); + assertEquals(aiSpan!.data?.['sentry.origin'], 'auto.ai.anthropic'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-aws/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-aws/test.ts index ca9e801541f0..99f375c3debc 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-aws/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-aws/test.ts @@ -79,5 +79,5 @@ Deno.test('aws-sdk instrumentation: orchestrion @smithy/smithy-client:send chann assertEquals(awsSpan!.data?.['rpc.service'], 'CloudWatch'); assertEquals(awsSpan!.data?.['rpc.method'], 'DescribeAlarms'); assertEquals(awsSpan!.data?.['cloud.region'], 'us-east-1'); - assertEquals(awsSpan!.data?.['sentry.origin'], 'auto.aws.orchestrion.aws_sdk'); + assertEquals(awsSpan!.data?.['sentry.origin'], 'auto.aws.aws_sdk'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-firebase/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-firebase/test.ts index 0a68f54f1a6d..584cea379d88 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-firebase/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-firebase/test.ts @@ -62,5 +62,5 @@ Deno.test('firebase instrumentation: orchestrion @firebase/firestore:add-doc cha assertEquals(fsSpan!.data?.['db.namespace'], '[DEFAULT]'); assertEquals(fsSpan!.data?.['db.system.name'], 'firebase.firestore'); assertEquals(fsSpan!.data?.['firebase.firestore.options.projectId'], 'demo-project'); - assertEquals(fsSpan!.data?.['sentry.origin'], 'auto.firebase.orchestrion.firestore'); + assertEquals(fsSpan!.data?.['sentry.origin'], 'auto.firebase.firestore'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-generic-pool/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-generic-pool/test.ts index fcfcb7ebff8b..5fcfbe114661 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-generic-pool/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-generic-pool/test.ts @@ -51,5 +51,5 @@ Deno.test('generic-pool instrumentation: orchestrion:generic-pool:acquire channe poolSpan, `expected a generic-pool.acquire span, got descriptions: ${parent.spans?.map(s => s.description).join(', ')}`, ); - assertEquals(poolSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.generic_pool'); + assertEquals(poolSpan!.data?.['sentry.origin'], 'auto.db.generic_pool'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-google-genai/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-google-genai/test.ts index dc04f3307ede..b7606856c6aa 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-google-genai/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-google-genai/test.ts @@ -58,5 +58,5 @@ Deno.test('google-genai instrumentation: orchestrion @google/genai:generate-cont assertEquals(aiSpan!.data?.['gen_ai.request.model'], 'gemini-1.5-flash'); assertEquals(aiSpan!.data?.['gen_ai.response.model'], 'gemini-1.5-flash-002'); assertEquals(aiSpan!.data?.['gen_ai.usage.total_tokens'], 15); - assertEquals(aiSpan!.data?.['sentry.origin'], 'auto.ai.orchestrion.google_genai'); + assertEquals(aiSpan!.data?.['sentry.origin'], 'auto.ai.google_genai'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-hapi/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-hapi/test.ts index db66b1431090..b2f4afa5b7a3 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-hapi/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-hapi/test.ts @@ -47,5 +47,5 @@ Deno.test('hapi instrumentation: orchestrion:@hapi/hapi:route channel wraps the assertEquals(hapiSpan!.description, 'GET /hello'); assertEquals(hapiSpan!.data?.['hapi.type'], 'router'); assertEquals(hapiSpan!.data?.['http.route'], '/hello'); - assertEquals(hapiSpan!.data?.['sentry.origin'], 'auto.http.orchestrion.hapi'); + assertEquals(hapiSpan!.data?.['sentry.origin'], 'auto.http.hapi'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-kafkajs/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-kafkajs/test.ts index abba1b5c5393..9ca813557ba3 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-kafkajs/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-kafkajs/test.ts @@ -46,5 +46,5 @@ Deno.test('kafkajs instrumentation: orchestrion:kafkajs:send_batch channel produ assertEquals(kafkaSpan!.description, 'send my-topic'); assertEquals(kafkaSpan!.data?.['messaging.system'], 'kafka'); assertEquals(kafkaSpan!.data?.['messaging.destination.name'], 'my-topic'); - assertEquals(kafkaSpan!.data?.['sentry.origin'], 'auto.kafkajs.orchestrion.producer'); + assertEquals(kafkaSpan!.data?.['sentry.origin'], 'auto.kafkajs.producer'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-koa/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-koa/test.ts index 568871b92175..ae52b8997897 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-koa/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-koa/test.ts @@ -47,5 +47,5 @@ Deno.test('koa instrumentation: orchestrion:koa:use channel wraps middleware int const koaSpan = parent.spans?.find(s => s.op === 'middleware.koa'); assertExists(koaSpan, `expected a middleware.koa child span, got ops: ${parent.spans?.map(s => s.op).join(', ')}`); assertEquals(koaSpan!.description, 'myMiddleware'); - assertEquals(koaSpan!.data?.['sentry.origin'], 'auto.http.orchestrion.koa'); + assertEquals(koaSpan!.data?.['sentry.origin'], 'auto.http.koa'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-mongo/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-mongo/test.ts index 0c5aab6820d0..fdc762a7e54b 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-mongo/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-mongo/test.ts @@ -62,5 +62,5 @@ Deno.test('mongodb instrumentation: orchestrion:mongodb:command channel produces assertEquals(mongoSpan!.data?.['db.operation'], 'find'); assertEquals(mongoSpan!.data?.['net.peer.name'], '127.0.0.1'); assertEquals(mongoSpan!.data?.['net.peer.port'], 27017); - assertEquals(mongoSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.mongo'); + assertEquals(mongoSpan!.data?.['sentry.origin'], 'auto.db.mongo'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-mongoose/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-mongoose/test.ts index cd0379ab9db3..863b87f6b048 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-mongoose/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-mongoose/test.ts @@ -63,5 +63,5 @@ Deno.test('mongoose instrumentation: orchestrion:mongoose:model_save channel pro assertEquals(mongooseSpan!.data?.['db.user'], 'root'); assertEquals(mongooseSpan!.data?.['net.peer.name'], '127.0.0.1'); assertEquals(mongooseSpan!.data?.['net.peer.port'], 27017); - assertEquals(mongooseSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.mongoose'); + assertEquals(mongooseSpan!.data?.['sentry.origin'], 'auto.db.mongoose'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-mysql/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-mysql/test.ts index 43dac6bdce30..7f70b33e1a08 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-mysql/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-mysql/test.ts @@ -95,5 +95,5 @@ Deno.test('mysql instrumentation: orchestrion:mysql:query channel produces a nes assertEquals(mysqlSpan!.data?.['net.peer.name'], '127.0.0.1'); assertEquals(mysqlSpan!.data?.['net.peer.port'], 3306); assertEquals(mysqlSpan!.data?.['db.user'], 'root'); - assertEquals(mysqlSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.mysql'); + assertEquals(mysqlSpan!.data?.['sentry.origin'], 'auto.db.mysql'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-mysql2/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-mysql2/test.ts index 7192191cc820..e17ad8c833e9 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-mysql2/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-mysql2/test.ts @@ -57,5 +57,5 @@ Deno.test('mysql2 instrumentation: orchestrion:mysql2:query channel produces a n assertEquals(mysqlSpan!.data?.['db.user'], 'root'); assertEquals(mysqlSpan!.data?.['net.peer.name'], '127.0.0.1'); assertEquals(mysqlSpan!.data?.['net.peer.port'], 3306); - assertEquals(mysqlSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.mysql2'); + assertEquals(mysqlSpan!.data?.['sentry.origin'], 'auto.db.mysql2'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-openai/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-openai/test.ts index 2f5265306621..70f04dbcbe57 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-openai/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-openai/test.ts @@ -56,5 +56,5 @@ Deno.test('openai instrumentation: orchestrion:openai:chat channel produces a ne assertEquals(aiSpan!.data?.['gen_ai.request.model'], 'gpt-4o'); assertEquals(aiSpan!.data?.['gen_ai.response.model'], 'gpt-4o-2024-08-06'); assertEquals(aiSpan!.data?.['gen_ai.usage.total_tokens'], 15); - assertEquals(aiSpan!.data?.['sentry.origin'], 'auto.ai.orchestrion.openai'); + assertEquals(aiSpan!.data?.['sentry.origin'], 'auto.ai.openai'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-postgres/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-postgres/test.ts index 3672c0cbfb11..f74d3876f373 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-postgres/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-postgres/test.ts @@ -95,5 +95,5 @@ Deno.test('pg instrumentation: orchestrion:pg:query channel produces a nested db assertEquals(pgSpan!.data?.['net.peer.name'], '127.0.0.1'); assertEquals(pgSpan!.data?.['net.peer.port'], 5432); assertEquals(pgSpan!.data?.['db.user'], 'root'); - assertEquals(pgSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.postgres'); + assertEquals(pgSpan!.data?.['sentry.origin'], 'auto.db.postgres'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-postgresjs/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-postgresjs/test.ts index bdac9344aa59..7def5567c022 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-postgresjs/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-postgresjs/test.ts @@ -57,5 +57,5 @@ Deno.test('postgres.js instrumentation: orchestrion:postgres:handle channel prod assertEquals(pgSpan!.data?.['db.query.text'], 'SELECT name FROM users'); // Set by the resolve wrapper from the `command` passed to `query.resolve`. assertEquals(pgSpan!.data?.['db.operation.name'], 'SELECT'); - assertEquals(pgSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.postgresjs'); + assertEquals(pgSpan!.data?.['sentry.origin'], 'auto.db.postgresjs'); }); diff --git a/dev-packages/deno-integration-tests/suites/orchestrion-tedious/test.ts b/dev-packages/deno-integration-tests/suites/orchestrion-tedious/test.ts index 8bc91a7802cf..ec78613fbf97 100644 --- a/dev-packages/deno-integration-tests/suites/orchestrion-tedious/test.ts +++ b/dev-packages/deno-integration-tests/suites/orchestrion-tedious/test.ts @@ -60,5 +60,5 @@ Deno.test('tedious instrumentation: orchestrion:tedious:execSql channel produces assertEquals(tediousSpan!.data?.['db.statement'], 'SELECT 1'); assertEquals(tediousSpan!.data?.['net.peer.name'], '127.0.0.1'); assertEquals(tediousSpan!.data?.['net.peer.port'], 1433); - assertEquals(tediousSpan!.data?.['sentry.origin'], 'auto.db.orchestrion.tedious'); + assertEquals(tediousSpan!.data?.['sentry.origin'], 'auto.db.tedious'); }); diff --git a/dev-packages/e2e-tests/test-applications/astro-7-orchestrion/tests/db.test.ts b/dev-packages/e2e-tests/test-applications/astro-7-orchestrion/tests/db.test.ts index d5b5185b040f..5090e42f65aa 100644 --- a/dev-packages/e2e-tests/test-applications/astro-7-orchestrion/tests/db.test.ts +++ b/dev-packages/e2e-tests/test-applications/astro-7-orchestrion/tests/db.test.ts @@ -18,7 +18,7 @@ test('Instruments ioredis automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -30,7 +30,7 @@ test('Instruments ioredis automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ @@ -55,7 +55,7 @@ test('Instruments mysql automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -71,7 +71,7 @@ test('Instruments mysql automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/bun-mysql/tests/mysql.test.ts b/dev-packages/e2e-tests/test-applications/bun-mysql/tests/mysql.test.ts index 28f4206f2bef..cfcf60f8657c 100644 --- a/dev-packages/e2e-tests/test-applications/bun-mysql/tests/mysql.test.ts +++ b/dev-packages/e2e-tests/test-applications/bun-mysql/tests/mysql.test.ts @@ -23,7 +23,7 @@ test('mysql queries emit a db span with orchestrion-channel attributes', async ( const firstQuery = dbSpans.find(span => span.description === 'SELECT 1 + 1 AS solution'); expect(firstQuery).toBeDefined(); - expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.orchestrion.mysql'); + expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.mysql'); expect(firstQuery!.data?.['db.system']).toBe('mysql'); expect(firstQuery!.data?.['db.statement']).toBe('SELECT 1 + 1 AS solution'); expect(firstQuery!.data?.['net.peer.port']).toBe(3306); diff --git a/dev-packages/e2e-tests/test-applications/cloudflare-orchestrion-mysql/tests/mysql.test.ts b/dev-packages/e2e-tests/test-applications/cloudflare-orchestrion-mysql/tests/mysql.test.ts index e59c3ab11ae2..f8d057422554 100644 --- a/dev-packages/e2e-tests/test-applications/cloudflare-orchestrion-mysql/tests/mysql.test.ts +++ b/dev-packages/e2e-tests/test-applications/cloudflare-orchestrion-mysql/tests/mysql.test.ts @@ -24,7 +24,7 @@ test('a real mysql query emits a db span with orchestrion-channel attributes', a const firstQuery = dbSpans.find(span => span.description === 'SELECT 1 + 1 AS solution'); expect(firstQuery).toBeDefined(); - expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.orchestrion.mysql'); + expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.mysql'); expect(firstQuery!.data?.['db.system']).toBe('mysql'); expect(firstQuery!.data?.['db.statement']).toBe('SELECT 1 + 1 AS solution'); expect(firstQuery!.data?.['net.peer.name']).toBe('127.0.0.1'); diff --git a/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/db.test.ts b/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/db.test.ts index 48b21d38b30f..8aebe04a9c5b 100644 --- a/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/db.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/db.test.ts @@ -22,7 +22,7 @@ test.describe('orchestrion DB instrumentation', () => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -34,7 +34,7 @@ test.describe('orchestrion DB instrumentation', () => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ @@ -61,7 +61,7 @@ test.describe('orchestrion DB instrumentation', () => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -77,7 +77,7 @@ test.describe('orchestrion DB instrumentation', () => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/deno-mysql/tests/mysql.test.ts b/dev-packages/e2e-tests/test-applications/deno-mysql/tests/mysql.test.ts index 74294e13d969..5067b8015e1e 100644 --- a/dev-packages/e2e-tests/test-applications/deno-mysql/tests/mysql.test.ts +++ b/dev-packages/e2e-tests/test-applications/deno-mysql/tests/mysql.test.ts @@ -22,7 +22,7 @@ test('mysql queries emit a db span with orchestrion-channel attributes', async ( const firstQuery = dbSpans.find(span => span.description === 'SELECT 1 + 1 AS solution'); expect(firstQuery).toBeDefined(); - expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.orchestrion.mysql'); + expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.mysql'); expect(firstQuery!.data?.['db.system']).toBe('mysql'); expect(firstQuery!.data?.['db.statement']).toBe('SELECT 1 + 1 AS solution'); expect(firstQuery!.data?.['net.peer.port']).toBe(3306); diff --git a/dev-packages/e2e-tests/test-applications/deno-pg/tests/pg.test.ts b/dev-packages/e2e-tests/test-applications/deno-pg/tests/pg.test.ts index 34bbb9240862..87a9c660f563 100644 --- a/dev-packages/e2e-tests/test-applications/deno-pg/tests/pg.test.ts +++ b/dev-packages/e2e-tests/test-applications/deno-pg/tests/pg.test.ts @@ -22,7 +22,7 @@ test('pg queries emit a db span with orchestrion-channel attributes', async ({ b const firstQuery = dbSpans.find(span => span.description === 'SELECT 1 + 1 AS solution'); expect(firstQuery).toBeDefined(); - expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.orchestrion.postgres'); + expect(firstQuery!.data?.['sentry.origin']).toBe('auto.db.postgres'); expect(firstQuery!.data?.['db.system']).toBe('postgresql'); expect(firstQuery!.data?.['db.statement']).toBe('SELECT 1 + 1 AS solution'); expect(firstQuery!.data?.['net.peer.port']).toBe(5432); diff --git a/dev-packages/e2e-tests/test-applications/nestjs-11/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-11/tests/transactions.test.ts index 756380165bd3..f6fcce730296 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-11/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-11/tests/transactions.test.ts @@ -104,7 +104,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'handler.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -116,7 +116,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { start_timestamp: expect.any(Number), timestamp: expect.any(Number), status: 'ok', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', op: 'handler.nestjs', }, ]), @@ -152,7 +152,7 @@ test('API route transaction includes nest middleware span. Spans created in and trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs', + 'sentry.origin': 'auto.middleware.nestjs', }, description: 'ExampleMiddleware', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -160,7 +160,7 @@ test('API route transaction includes nest middleware span. Spans created in and timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs', + origin: 'auto.middleware.nestjs', }, ]), }), @@ -232,7 +232,7 @@ test('API route transaction includes nest guard span and span started in guard i trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.guard', + 'sentry.origin': 'auto.middleware.nestjs.guard', }, description: 'ExampleGuard', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -240,7 +240,7 @@ test('API route transaction includes nest guard span and span started in guard i timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.guard', + origin: 'auto.middleware.nestjs.guard', }, ]), }), @@ -296,7 +296,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -304,7 +304,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -333,7 +333,7 @@ test('API route transaction includes nest pipe span for invalid request', async trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -341,7 +341,7 @@ test('API route transaction includes nest pipe span for invalid request', async timestamp: expect.any(Number), status: 'internal_error', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -372,7 +372,7 @@ test('API route transaction includes nest interceptor spans before route executi trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor1', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -380,14 +380,14 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor2', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -395,7 +395,7 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -490,7 +490,7 @@ test('API route transaction includes exactly one nest interceptor span after rou trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -498,7 +498,7 @@ test('API route transaction includes exactly one nest interceptor span after rou timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -572,7 +572,7 @@ test('API route transaction includes nest async interceptor spans before route e trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'AsyncInterceptor', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -580,7 +580,7 @@ test('API route transaction includes nest async interceptor spans before route e timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -657,7 +657,7 @@ test('API route transaction includes exactly one nest async interceptor span aft trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -665,7 +665,7 @@ test('API route transaction includes exactly one nest async interceptor span aft timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), diff --git a/dev-packages/e2e-tests/test-applications/nestjs-8/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-8/tests/transactions.test.ts index 3c8ec68f1bc7..d3004503544c 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-8/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-8/tests/transactions.test.ts @@ -108,7 +108,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'handler.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -120,7 +120,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { start_timestamp: expect.any(Number), timestamp: expect.any(Number), status: 'ok', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', op: 'handler.nestjs', }, ]), @@ -156,7 +156,7 @@ test('API route transaction includes nest middleware span. Spans created in and trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs', + 'sentry.origin': 'auto.middleware.nestjs', }, description: 'ExampleMiddleware', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -164,7 +164,7 @@ test('API route transaction includes nest middleware span. Spans created in and timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs', + origin: 'auto.middleware.nestjs', }, ]), }), @@ -236,7 +236,7 @@ test('API route transaction includes nest guard span and span started in guard i trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.guard', + 'sentry.origin': 'auto.middleware.nestjs.guard', }, description: 'ExampleGuard', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -244,7 +244,7 @@ test('API route transaction includes nest guard span and span started in guard i timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.guard', + origin: 'auto.middleware.nestjs.guard', }, ]), }), @@ -300,7 +300,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -308,7 +308,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -337,7 +337,7 @@ test('API route transaction includes nest pipe span for invalid request', async trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -345,7 +345,7 @@ test('API route transaction includes nest pipe span for invalid request', async timestamp: expect.any(Number), status: 'internal_error', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -376,7 +376,7 @@ test('API route transaction includes nest interceptor spans before route executi trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor1', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -384,14 +384,14 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor2', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -399,7 +399,7 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -494,7 +494,7 @@ test('API route transaction includes exactly one nest interceptor span after rou trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -502,7 +502,7 @@ test('API route transaction includes exactly one nest interceptor span after rou timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -576,7 +576,7 @@ test('API route transaction includes nest async interceptor spans before route e trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'AsyncInterceptor', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -584,7 +584,7 @@ test('API route transaction includes nest async interceptor spans before route e timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -661,7 +661,7 @@ test('API route transaction includes exactly one nest async interceptor span aft trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -669,7 +669,7 @@ test('API route transaction includes exactly one nest async interceptor span aft timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), diff --git a/dev-packages/e2e-tests/test-applications/nestjs-basic/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-basic/tests/transactions.test.ts index 59c6c31ac73d..31472452f460 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-basic/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-basic/tests/transactions.test.ts @@ -15,14 +15,14 @@ test('Sends an app_creation transaction', async () => { }; expect(transaction.contexts.trace.op).toBe('app_creation.nestjs'); - expect(transaction.contexts.trace.origin).toBe('auto.http.orchestrion.nestjs'); + expect(transaction.contexts.trace.origin).toBe('auto.http.nestjs'); expect(transaction.contexts.trace.data).toEqual( expect.objectContaining({ component: '@nestjs/core', 'nestjs.type': 'app_creation', 'nestjs.module': 'AppModule', 'sentry.op': 'app_creation.nestjs', - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', }), ); }); @@ -130,7 +130,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'handler.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -142,7 +142,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { start_timestamp: expect.any(Number), timestamp: expect.any(Number), status: 'ok', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', op: 'handler.nestjs', }, ]), @@ -178,7 +178,7 @@ test('API route transaction includes nest middleware span. Spans created in and trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs', + 'sentry.origin': 'auto.middleware.nestjs', }, description: 'ExampleMiddleware', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -186,7 +186,7 @@ test('API route transaction includes nest middleware span. Spans created in and timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs', + origin: 'auto.middleware.nestjs', }, ]), }), @@ -258,7 +258,7 @@ test('API route transaction includes nest guard span and span started in guard i trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.guard', + 'sentry.origin': 'auto.middleware.nestjs.guard', }, description: 'ExampleGuard', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -266,7 +266,7 @@ test('API route transaction includes nest guard span and span started in guard i timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.guard', + origin: 'auto.middleware.nestjs.guard', }, ]), }), @@ -322,7 +322,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -330,7 +330,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -359,7 +359,7 @@ test('API route transaction includes nest pipe span for invalid request', async trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -367,7 +367,7 @@ test('API route transaction includes nest pipe span for invalid request', async timestamp: expect.any(Number), status: 'internal_error', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -398,7 +398,7 @@ test('API route transaction includes nest interceptor spans before route executi trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor1', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -406,14 +406,14 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor2', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -421,7 +421,7 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -516,7 +516,7 @@ test('API route transaction includes exactly one nest interceptor span after rou trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -524,7 +524,7 @@ test('API route transaction includes exactly one nest interceptor span after rou timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -598,7 +598,7 @@ test('API route transaction includes nest async interceptor spans before route e trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'AsyncInterceptor', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -606,7 +606,7 @@ test('API route transaction includes nest async interceptor spans before route e timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -683,7 +683,7 @@ test('API route transaction includes exactly one nest async interceptor span aft trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -691,7 +691,7 @@ test('API route transaction includes exactly one nest async interceptor span aft timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), diff --git a/dev-packages/e2e-tests/test-applications/nestjs-bullmq/tests/bullmq.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-bullmq/tests/bullmq.test.ts index 60353a1af21f..e49ebd80488c 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-bullmq/tests/bullmq.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-bullmq/tests/bullmq.test.ts @@ -34,7 +34,7 @@ test('Creates a transaction for successful job processing', async ({ baseURL }) expect(transaction.transaction).toBe('test-queue process'); expect(transaction.contexts?.trace?.op).toBe('queue.process'); - expect(transaction.contexts?.trace?.origin).toBe('auto.queue.orchestrion.nestjs.bullmq'); + expect(transaction.contexts?.trace?.origin).toBe('auto.queue.nestjs.bullmq'); }); test('BullMQ processor breadcrumbs do not leak into subsequent HTTP requests', async ({ baseURL }) => { diff --git a/dev-packages/e2e-tests/test-applications/nestjs-distributed-tracing/tests/events.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-distributed-tracing/tests/events.test.ts index 157c7571ea3c..24e93b6cbd86 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-distributed-tracing/tests/events.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-distributed-tracing/tests/events.test.ts @@ -36,9 +36,9 @@ test('Event emitter', async () => { data: { 'sentry.source': 'custom', 'sentry.op': 'event.nestjs', - 'sentry.origin': 'auto.event.orchestrion.nestjs', + 'sentry.origin': 'auto.event.nestjs', }, - origin: 'auto.event.orchestrion.nestjs', + origin: 'auto.event.nestjs', op: 'event.nestjs', status: 'ok', }); diff --git a/dev-packages/e2e-tests/test-applications/nestjs-fastify/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-fastify/tests/transactions.test.ts index 1688f336fb9a..2c263ea7c8ff 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-fastify/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-fastify/tests/transactions.test.ts @@ -101,7 +101,7 @@ test.skip('Sends an API route transaction', async ({ baseURL }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'request_context.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -118,13 +118,13 @@ test.skip('Sends an API route transaction', async ({ baseURL }) => { timestamp: expect.any(Number), status: 'ok', op: 'request_context.nestjs', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', }, { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'handler.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -137,7 +137,7 @@ test.skip('Sends an API route transaction', async ({ baseURL }) => { timestamp: expect.any(Number), status: 'ok', op: 'handler.nestjs', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', }, { span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -199,7 +199,7 @@ test('API route transaction includes nest middleware span. Spans created in and trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs', + 'sentry.origin': 'auto.middleware.nestjs', }, description: 'ExampleMiddleware', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -207,7 +207,7 @@ test('API route transaction includes nest middleware span. Spans created in and timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs', + origin: 'auto.middleware.nestjs', }, ]), }), @@ -279,7 +279,7 @@ test('API route transaction includes nest guard span and span started in guard i trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.guard', + 'sentry.origin': 'auto.middleware.nestjs.guard', }, description: 'ExampleGuard', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -287,7 +287,7 @@ test('API route transaction includes nest guard span and span started in guard i timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.guard', + origin: 'auto.middleware.nestjs.guard', }, ]), }), @@ -343,7 +343,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -351,7 +351,7 @@ test('API route transaction includes nest pipe span for valid request', async ({ timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -380,7 +380,7 @@ test('API route transaction includes nest pipe span for invalid request', async trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.pipe', + 'sentry.origin': 'auto.middleware.nestjs.pipe', }, description: 'ParseIntPipe', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -388,7 +388,7 @@ test('API route transaction includes nest pipe span for invalid request', async timestamp: expect.any(Number), status: 'internal_error', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.pipe', + origin: 'auto.middleware.nestjs.pipe', }, ]), }), @@ -419,7 +419,7 @@ test('API route transaction includes nest interceptor spans before route executi trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor1', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -427,14 +427,14 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'ExampleInterceptor2', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -442,7 +442,7 @@ test('API route transaction includes nest interceptor spans before route executi timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -537,7 +537,7 @@ test('API route transaction includes exactly one nest interceptor span after rou trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -545,7 +545,7 @@ test('API route transaction includes exactly one nest interceptor span after rou timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -619,7 +619,7 @@ test('API route transaction includes nest async interceptor spans before route e trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'AsyncInterceptor', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -627,7 +627,7 @@ test('API route transaction includes nest async interceptor spans before route e timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), @@ -704,7 +704,7 @@ test('API route transaction includes exactly one nest async interceptor span aft trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.interceptor', + 'sentry.origin': 'auto.middleware.nestjs.interceptor', }, description: 'Interceptors - After Route', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -712,7 +712,7 @@ test('API route transaction includes exactly one nest async interceptor span aft timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', }, ]), }), diff --git a/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/events.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/events.test.ts index 6796c439506a..a4d018635a0a 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/events.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/events.test.ts @@ -13,5 +13,5 @@ test('@OnEvent opens an event.nestjs transaction', async ({ baseURL }) => { const transactionEvent = await transactionPromise; expect(transactionEvent.contexts?.trace?.op).toBe('event.nestjs'); - expect(transactionEvent.contexts?.trace?.origin).toBe('auto.event.orchestrion.nestjs'); + expect(transactionEvent.contexts?.trace?.origin).toBe('auto.event.nestjs'); }); diff --git a/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/transactions.test.ts index 33bc16601a02..897467c903d8 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-orchestrion/tests/transactions.test.ts @@ -26,7 +26,7 @@ test('app_creation: emits a "Create Nest App" transaction at startup', async () }; expect(transaction.contexts.trace.op).toBe('app_creation.nestjs'); - expect(transaction.contexts.trace.origin).toBe('auto.http.orchestrion.nestjs'); + expect(transaction.contexts.trace.origin).toBe('auto.http.nestjs'); expect(transaction.contexts.trace.data).toEqual( expect.objectContaining({ component: '@nestjs/core', @@ -50,7 +50,7 @@ test('request_context + handler: a route transaction nests the nestjs spans', as // request_context span, identified by its controller/callback attributes. // Its description isn't asserted: the span carries `http.*` attributes, so // the OTel span-name inference rewrites it to `GET /test-transaction` - const requestContext = findSpan(transactionEvent, 'request_context.nestjs', 'auto.http.orchestrion.nestjs'); + const requestContext = findSpan(transactionEvent, 'request_context.nestjs', 'auto.http.nestjs'); expect(requestContext).toBeDefined(); expect(requestContext?.data).toMatchObject({ 'nestjs.type': 'request_context', @@ -68,12 +68,12 @@ test('request_context + handler: a route transaction nests the nestjs spans', as // op + origin produced by `@Injectable`/`@Catch` instrumentation, // per component type. const MIDDLEWARE_CASES = [ - { route: 'test-middleware', origin: 'auto.middleware.orchestrion.nestjs', description: 'ExampleMiddleware' }, - { route: 'test-guard', origin: 'auto.middleware.orchestrion.nestjs.guard', description: 'ExampleGuard' }, - { route: 'test-pipe/123', origin: 'auto.middleware.orchestrion.nestjs.pipe', description: 'ParseIntPipe' }, + { route: 'test-middleware', origin: 'auto.middleware.nestjs', description: 'ExampleMiddleware' }, + { route: 'test-guard', origin: 'auto.middleware.nestjs.guard', description: 'ExampleGuard' }, + { route: 'test-pipe/123', origin: 'auto.middleware.nestjs.pipe', description: 'ParseIntPipe' }, { route: 'test-interceptor', - origin: 'auto.middleware.orchestrion.nestjs.interceptor', + origin: 'auto.middleware.nestjs.interceptor', description: 'ExampleInterceptor', }, ] as const; @@ -106,7 +106,7 @@ test('exception_filter span: a @Catch filter opens a middleware.nestjs span', as await fetch(`${baseURL}/test-exception`); const transactionEvent = await transactionPromise; - const span = findSpan(transactionEvent, 'middleware.nestjs', 'auto.middleware.orchestrion.nestjs.exception_filter'); + const span = findSpan(transactionEvent, 'middleware.nestjs', 'auto.middleware.nestjs.exception_filter'); expect(span).toBeDefined(); expect(span?.description).toBe('ExampleExceptionFilter'); }); diff --git a/dev-packages/e2e-tests/test-applications/nestjs-with-submodules-decorator/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-with-submodules-decorator/tests/transactions.test.ts index f856d5ad5706..bfbfbf98081a 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-with-submodules-decorator/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-with-submodules-decorator/tests/transactions.test.ts @@ -104,7 +104,7 @@ test('Sends an API route transaction from module', async ({ baseURL }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'handler.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -116,7 +116,7 @@ test('Sends an API route transaction from module', async ({ baseURL }) => { start_timestamp: expect.any(Number), timestamp: expect.any(Number), status: 'ok', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', op: 'handler.nestjs', }, ]), @@ -153,7 +153,7 @@ test('API route transaction includes exception filter span for global filter in trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.exception_filter', + 'sentry.origin': 'auto.middleware.nestjs.exception_filter', }, description: 'ExampleExceptionFilter', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -161,7 +161,7 @@ test('API route transaction includes exception filter span for global filter in timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.exception_filter', + origin: 'auto.middleware.nestjs.exception_filter', }, ]), }), @@ -192,7 +192,7 @@ test('API route transaction includes exception filter span for local filter in m trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.exception_filter', + 'sentry.origin': 'auto.middleware.nestjs.exception_filter', }, description: 'LocalExampleExceptionFilter', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -200,7 +200,7 @@ test('API route transaction includes exception filter span for local filter in m timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.exception_filter', + origin: 'auto.middleware.nestjs.exception_filter', }, ]), }), @@ -231,7 +231,7 @@ test('API route transaction includes exception filter span for global filter in trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.exception_filter', + 'sentry.origin': 'auto.middleware.nestjs.exception_filter', }, description: 'ExampleExceptionFilterRegisteredFirst', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -239,7 +239,7 @@ test('API route transaction includes exception filter span for global filter in timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.exception_filter', + origin: 'auto.middleware.nestjs.exception_filter', }, ]), }), diff --git a/dev-packages/e2e-tests/test-applications/nestjs-with-submodules/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nestjs-with-submodules/tests/transactions.test.ts index 820def24c484..3b1aad002241 100644 --- a/dev-packages/e2e-tests/test-applications/nestjs-with-submodules/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nestjs-with-submodules/tests/transactions.test.ts @@ -104,7 +104,7 @@ test('Sends an API route transaction from module', async ({ baseURL }) => { span_id: expect.stringMatching(/[a-f0-9]{16}/), trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { - 'sentry.origin': 'auto.http.orchestrion.nestjs', + 'sentry.origin': 'auto.http.nestjs', 'sentry.op': 'handler.nestjs', component: '@nestjs/core', 'nestjs.version': expect.any(String), @@ -116,7 +116,7 @@ test('Sends an API route transaction from module', async ({ baseURL }) => { start_timestamp: expect.any(Number), timestamp: expect.any(Number), status: 'ok', - origin: 'auto.http.orchestrion.nestjs', + origin: 'auto.http.nestjs', op: 'handler.nestjs', }, ]), @@ -153,7 +153,7 @@ test('API route transaction includes exception filter span for global filter in trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.exception_filter', + 'sentry.origin': 'auto.middleware.nestjs.exception_filter', }, description: 'ExampleExceptionFilter', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -161,7 +161,7 @@ test('API route transaction includes exception filter span for global filter in timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.exception_filter', + origin: 'auto.middleware.nestjs.exception_filter', }, ]), }), @@ -192,7 +192,7 @@ test('API route transaction includes exception filter span for local filter in m trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.exception_filter', + 'sentry.origin': 'auto.middleware.nestjs.exception_filter', }, description: 'LocalExampleExceptionFilter', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -200,7 +200,7 @@ test('API route transaction includes exception filter span for local filter in m timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.exception_filter', + origin: 'auto.middleware.nestjs.exception_filter', }, ]), }), @@ -231,7 +231,7 @@ test('API route transaction includes exception filter span for global filter in trace_id: expect.stringMatching(/[a-f0-9]{32}/), data: { 'sentry.op': 'middleware.nestjs', - 'sentry.origin': 'auto.middleware.orchestrion.nestjs.exception_filter', + 'sentry.origin': 'auto.middleware.nestjs.exception_filter', }, description: 'ExampleExceptionFilterRegisteredFirst', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -239,7 +239,7 @@ test('API route transaction includes exception filter span for global filter in timestamp: expect.any(Number), status: 'ok', op: 'middleware.nestjs', - origin: 'auto.middleware.orchestrion.nestjs.exception_filter', + origin: 'auto.middleware.nestjs.exception_filter', }, ]), }), diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/anthropic.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/anthropic.test.ts index 63adf9ae7aae..b9370f53abc4 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/anthropic.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/anthropic.test.ts @@ -5,7 +5,7 @@ import { waitForStreamedSpans } from '@sentry-internal/test-utils'; // assert on the streamed spans. Attribute values are wrapped as `{ value, type }` in the v2 format. test('Instruments anthropic-ai automatically via orchestrion', async ({ baseURL }) => { const spansPromise = waitForStreamedSpans('nextjs-16-orchestrion', spans => - spans.some(span => span.attributes['sentry.origin']?.value === 'auto.ai.orchestrion.anthropic'), + spans.some(span => span.attributes['sentry.origin']?.value === 'auto.ai.anthropic'), ); await fetch(`${baseURL}/api/anthropic`); @@ -15,7 +15,7 @@ test('Instruments anthropic-ai automatically via orchestrion', async ({ baseURL const chatSpan = spans.find(span => span.name === 'chat claude-3-haiku-20240307'); expect(chatSpan).toBeDefined(); expect(chatSpan?.attributes['sentry.op']?.value).toBe('gen_ai.chat'); - expect(chatSpan?.attributes['sentry.origin']?.value).toBe('auto.ai.orchestrion.anthropic'); + expect(chatSpan?.attributes['sentry.origin']?.value).toBe('auto.ai.anthropic'); expect(chatSpan?.attributes['gen_ai.system']?.value).toBe('anthropic'); expect(chatSpan?.attributes['gen_ai.request.model']?.value).toBe('claude-3-haiku-20240307'); expect(chatSpan?.attributes['gen_ai.usage.input_tokens']?.value).toBe(10); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/dataloader.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/dataloader.test.ts index 9b224a27ac4c..e615afa5830c 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/dataloader.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/dataloader.test.ts @@ -17,7 +17,7 @@ test('Instruments dataloader automatically via orchestrion', async ({ baseURL }) const loadSpan = spans.find(span => span.description === 'dataloader.load usersLoader'); expect(loadSpan).toBeDefined(); expect(loadSpan?.op).toBe('cache.get'); - expect(loadSpan?.origin).toBe('auto.db.orchestrion.dataloader'); + expect(loadSpan?.origin).toBe('auto.db.dataloader'); expect(loadSpan?.status).toBe('ok'); expect(loadSpan?.data?.['cache.key']).toEqual(['user-1']); @@ -25,6 +25,6 @@ test('Instruments dataloader automatically via orchestrion', async ({ baseURL }) const batchSpan = spans.find(span => span.description === 'dataloader.batch usersLoader'); expect(batchSpan).toBeDefined(); expect(batchSpan?.op).toBe('cache.get'); - expect(batchSpan?.origin).toBe('auto.db.orchestrion.dataloader'); + expect(batchSpan?.origin).toBe('auto.db.dataloader'); expect(batchSpan?.status).toBe('ok'); }); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/db-page.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/db-page.test.ts index 9e2ae16e15c0..a908ee27063d 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/db-page.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/db-page.test.ts @@ -19,7 +19,7 @@ test('Instruments DB calls made during server-side rendering of a page', async ( expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.postgres', + origin: 'auto.db.postgres', description: 'SELECT 40 + 2 AS answer', status: 'ok', data: expect.objectContaining({ @@ -31,7 +31,7 @@ test('Instruments DB calls made during server-side rendering of a page', async ( expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set page-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -43,7 +43,7 @@ test('Instruments DB calls made during server-side rendering of a page', async ( expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get page-key', status: 'ok', }), diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/generic-pool.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/generic-pool.test.ts index 90b47484d203..e8c60d078a84 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/generic-pool.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/generic-pool.test.ts @@ -17,10 +17,10 @@ test('Instruments generic-pool automatically via orchestrion', async ({ baseURL expect(spans).toContainEqual( expect.objectContaining({ description: 'generic-pool.acquire', - origin: 'auto.db.orchestrion.generic_pool', + origin: 'auto.db.generic_pool', status: 'ok', data: expect.objectContaining({ - 'sentry.origin': 'auto.db.orchestrion.generic_pool', + 'sentry.origin': 'auto.db.generic_pool', }), }), ); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/google-genai.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/google-genai.test.ts index 2cdf0acb0e4b..f508f5c91f56 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/google-genai.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/google-genai.test.ts @@ -5,7 +5,7 @@ import { waitForStreamedSpans } from '@sentry-internal/test-utils'; // assert on the streamed spans. Attribute values are wrapped as `{ value, type }` in the v2 format. test('Instruments google-genai automatically via orchestrion', async ({ baseURL }) => { const spansPromise = waitForStreamedSpans('nextjs-16-orchestrion', spans => - spans.some(span => span.attributes['sentry.origin']?.value === 'auto.ai.orchestrion.google_genai'), + spans.some(span => span.attributes['sentry.origin']?.value === 'auto.ai.google_genai'), ); await fetch(`${baseURL}/api/google-genai`); @@ -15,7 +15,7 @@ test('Instruments google-genai automatically via orchestrion', async ({ baseURL const generateSpan = spans.find(span => span.name === 'generate_content gemini-1.5-flash'); expect(generateSpan).toBeDefined(); expect(generateSpan?.attributes['sentry.op']?.value).toBe('gen_ai.generate_content'); - expect(generateSpan?.attributes['sentry.origin']?.value).toBe('auto.ai.orchestrion.google_genai'); + expect(generateSpan?.attributes['sentry.origin']?.value).toBe('auto.ai.google_genai'); expect(generateSpan?.attributes['gen_ai.system']?.value).toBe('google_genai'); expect(generateSpan?.attributes['gen_ai.request.model']?.value).toBe('gemini-1.5-flash'); expect(generateSpan?.attributes['gen_ai.usage.input_tokens']?.value).toBe(8); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/ioredis.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/ioredis.test.ts index 9bfff822cb8e..ba8ccc75f9fd 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/ioredis.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/ioredis.test.ts @@ -20,7 +20,7 @@ test('Instruments ioredis automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -32,7 +32,7 @@ test('Instruments ioredis automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/knex.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/knex.test.ts index 97ac3075c732..214167efd873 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/knex.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/knex.test.ts @@ -15,13 +15,13 @@ test('Instruments knex automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.knex', + origin: 'auto.db.knex', status: 'ok', description: 'insert into "knex_users" ("name") values (?)', data: expect.objectContaining({ 'db.system': 'postgresql', 'db.name': 'postgres', - 'sentry.origin': 'auto.db.orchestrion.knex', + 'sentry.origin': 'auto.db.knex', 'sentry.op': 'db', 'net.peer.name': 'localhost', 'net.peer.port': 5432, @@ -31,7 +31,7 @@ test('Instruments knex automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.knex', + origin: 'auto.db.knex', status: 'ok', description: 'select * from "knex_users"', data: expect.objectContaining({ @@ -39,7 +39,7 @@ test('Instruments knex automatically via orchestrion', async ({ baseURL }) => { 'db.operation': 'select', 'db.sql.table': 'knex_users', 'db.statement': 'select * from "knex_users"', - 'sentry.origin': 'auto.db.orchestrion.knex', + 'sentry.origin': 'auto.db.knex', 'sentry.op': 'db', }), }), diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongodb.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongodb.test.ts index 9353010ff6a9..41d01bf6f408 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongodb.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongodb.test.ts @@ -17,7 +17,7 @@ test('Instruments mongodb automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mongo', + origin: 'auto.db.mongo', status: 'ok', data: expect.objectContaining({ 'db.system': 'mongodb', @@ -30,7 +30,7 @@ test('Instruments mongodb automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mongo', + origin: 'auto.db.mongo', status: 'ok', data: expect.objectContaining({ 'db.system': 'mongodb', diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongoose.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongoose.test.ts index a9063cd2c3c6..afae68f3f490 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongoose.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mongoose.test.ts @@ -17,7 +17,7 @@ test('Instruments mongoose automatically via orchestrion', async ({ baseURL }) = expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mongoose', + origin: 'auto.db.mongoose', description: 'mongoose.BlogPost.save', status: 'ok', data: expect.objectContaining({ @@ -31,7 +31,7 @@ test('Instruments mongoose automatically via orchestrion', async ({ baseURL }) = expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mongoose', + origin: 'auto.db.mongoose', description: 'mongoose.BlogPost.findOne', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql.test.ts index 872fdf8b82e5..d47566286a03 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql.test.ts @@ -22,7 +22,7 @@ test('Instruments mysql automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -38,7 +38,7 @@ test('Instruments mysql automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql2.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql2.test.ts index 63f14e40b977..82bbe87a7fc6 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql2.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/mysql2.test.ts @@ -17,7 +17,7 @@ test('Instruments mysql2 automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql2', + origin: 'auto.db.mysql2', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -33,7 +33,7 @@ test('Instruments mysql2 automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql2', + origin: 'auto.db.mysql2', description: 'SELECT 42 AS answer', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/openai.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/openai.test.ts index 88f2b4278f2e..12a99e6f559e 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/openai.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/openai.test.ts @@ -5,7 +5,7 @@ import { waitForStreamedSpans } from '@sentry-internal/test-utils'; // assert on the streamed spans. Attribute values are wrapped as `{ value, type }` in the v2 format. test('Instruments openai automatically via orchestrion', async ({ baseURL }) => { const spansPromise = waitForStreamedSpans('nextjs-16-orchestrion', spans => - spans.some(span => span.attributes['sentry.origin']?.value === 'auto.ai.orchestrion.openai'), + spans.some(span => span.attributes['sentry.origin']?.value === 'auto.ai.openai'), ); await fetch(`${baseURL}/api/openai`); @@ -15,7 +15,7 @@ test('Instruments openai automatically via orchestrion', async ({ baseURL }) => const chatSpan = spans.find(span => span.name === 'chat gpt-3.5-turbo'); expect(chatSpan).toBeDefined(); expect(chatSpan?.attributes['sentry.op']?.value).toBe('gen_ai.chat'); - expect(chatSpan?.attributes['sentry.origin']?.value).toBe('auto.ai.orchestrion.openai'); + expect(chatSpan?.attributes['sentry.origin']?.value).toBe('auto.ai.openai'); expect(chatSpan?.attributes['gen_ai.system']?.value).toBe('openai'); expect(chatSpan?.attributes['gen_ai.request.model']?.value).toBe('gpt-3.5-turbo'); expect(chatSpan?.attributes['gen_ai.usage.input_tokens']?.value).toBe(10); diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/pg.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/pg.test.ts index 87d90c8dddfc..16f7305e3a32 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/pg.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/pg.test.ts @@ -15,7 +15,7 @@ test('Instruments pg automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.postgres', + origin: 'auto.db.postgres', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -32,7 +32,7 @@ test('Instruments pg automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.postgres', + origin: 'auto.db.postgres', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/postgresjs.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/postgresjs.test.ts index 49b660f03cfc..72efaa5ac3c2 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/postgresjs.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-16-orchestrion/tests/postgresjs.test.ts @@ -21,7 +21,7 @@ test('Instruments postgres.js automatically via orchestrion', async ({ baseURL } expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.postgresjs', + origin: 'auto.db.postgresjs', description: 'SELECT ? + ? AS solution', status: 'ok', data: expect.objectContaining({ @@ -37,7 +37,7 @@ test('Instruments postgres.js automatically via orchestrion', async ({ baseURL } expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.postgresjs', + origin: 'auto.db.postgresjs', description: 'SELECT * from generate_series(?, ?) as x', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/node-express-orchestrion-cjs/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-express-orchestrion-cjs/tests/transactions.test.ts index ee74f97b9cf3..9ed354830fc8 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-orchestrion-cjs/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-orchestrion-cjs/tests/transactions.test.ts @@ -140,14 +140,14 @@ test('Instruments MySQL via Orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', }), ); expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', }), ); diff --git a/dev-packages/e2e-tests/test-applications/node-express-orchestrion/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-express-orchestrion/tests/transactions.test.ts index 6727e24c0512..75b9ffe2f716 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-orchestrion/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-orchestrion/tests/transactions.test.ts @@ -140,14 +140,14 @@ test('Instruments MySQL via Orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', }), ); expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', }), ); diff --git a/dev-packages/e2e-tests/test-applications/node-firebase/tests/functions.test.ts b/dev-packages/e2e-tests/test-applications/node-firebase/tests/functions.test.ts index 77acc210d0a6..ac9a520119df 100644 --- a/dev-packages/e2e-tests/test-applications/node-firebase/tests/functions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-firebase/tests/functions.test.ts @@ -25,12 +25,12 @@ test.fixme('should only call the function once without any extra calls', async ( 'faas.trigger': 'http.request', 'sentry.kind': 'server', 'sentry.op': 'http.request', - 'sentry.origin': 'auto.firebase.orchestrion.functions', + 'sentry.origin': 'auto.firebase.functions', 'sentry.sample_rate': expect.any(Number), 'sentry.source': 'route', }, op: 'http.request', - origin: 'auto.firebase.orchestrion.functions', + origin: 'auto.firebase.functions', span_id: expect.any(String), status: 'ok', trace_id: expect.any(String), @@ -59,7 +59,7 @@ test.fixme('should send failed transaction when the function fails', async () => type: 'Error', value: 'There is an error!', mechanism: { - type: 'auto.firebase.orchestrion.functions', + type: 'auto.firebase.functions', handled: false, }, }, @@ -102,12 +102,12 @@ test.fixme('should create a document and trigger onDocumentCreated and another w 'faas.trigger': 'http.request', 'sentry.kind': 'server', 'sentry.op': 'http.request', - 'sentry.origin': 'auto.firebase.orchestrion.functions', + 'sentry.origin': 'auto.firebase.functions', 'sentry.sample_rate': expect.any(Number), 'sentry.source': 'route', }, op: 'http.request', - origin: 'auto.firebase.orchestrion.functions', + origin: 'auto.firebase.functions', span_id: expect.any(String), status: 'ok', trace_id: expect.any(String), @@ -121,12 +121,12 @@ test.fixme('should create a document and trigger onDocumentCreated and another w 'faas.trigger': 'firestore.document.created', 'sentry.kind': 'server', 'sentry.op': expect.any(String), - 'sentry.origin': 'auto.firebase.orchestrion.functions', + 'sentry.origin': 'auto.firebase.functions', 'sentry.sample_rate': expect.any(Number), 'sentry.source': 'route', }, op: expect.any(String), - origin: 'auto.firebase.orchestrion.functions', + origin: 'auto.firebase.functions', span_id: expect.any(String), status: 'ok', trace_id: expect.any(String), @@ -140,12 +140,12 @@ test.fixme('should create a document and trigger onDocumentCreated and another w 'faas.trigger': 'firestore.document.created', 'sentry.kind': 'server', 'sentry.op': expect.any(String), - 'sentry.origin': 'auto.firebase.orchestrion.functions', + 'sentry.origin': 'auto.firebase.functions', 'sentry.sample_rate': expect.any(Number), 'sentry.source': 'route', }, op: expect.any(String), - origin: 'auto.firebase.orchestrion.functions', + origin: 'auto.firebase.functions', span_id: expect.any(String), status: 'ok', trace_id: expect.any(String), diff --git a/dev-packages/e2e-tests/test-applications/node-firebase/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-firebase/tests/transactions.test.ts index e834eac0e1ab..00a71bb47396 100644 --- a/dev-packages/e2e-tests/test-applications/node-firebase/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-firebase/tests/transactions.test.ts @@ -2,7 +2,7 @@ import { expect, test } from '@playwright/test'; import { waitForTransaction } from '@sentry-internal/test-utils'; // The orchestrion spans are Sentry-native, so they carry no span-kind attribute (`sentry.kind`). -const origin = 'auto.firebase.orchestrion.firestore'; +const origin = 'auto.firebase.firestore'; function firestoreSpan(operation: string): unknown { const data: Record = { diff --git a/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts index 88e1f7d3a647..b56d21a31fd6 100644 --- a/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-hapi/tests/transactions.test.ts @@ -75,11 +75,11 @@ test('Sends successful transaction', async ({ baseURL }) => { 'http.method': 'GET', 'http.route': '/test-success', 'sentry.op': 'router.hapi', - 'sentry.origin': 'auto.http.orchestrion.hapi', + 'sentry.origin': 'auto.http.hapi', }, description: 'GET /test-success', op: 'router.hapi', - origin: 'auto.http.orchestrion.hapi', + origin: 'auto.http.hapi', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), span_id: expect.stringMatching(/[a-f0-9]{16}/), start_timestamp: expect.any(Number), @@ -92,12 +92,12 @@ test('Sends successful transaction', async ({ baseURL }) => { data: { 'hapi.type': 'server.ext', 'sentry.op': 'server.ext.hapi', - 'sentry.origin': 'auto.http.orchestrion.hapi', + 'sentry.origin': 'auto.http.hapi', 'server.ext.type': 'onPreResponse', }, description: 'ext - onPreResponse', op: 'server.ext.hapi', - origin: 'auto.http.orchestrion.hapi', + origin: 'auto.http.hapi', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), span_id: expect.stringMatching(/[a-f0-9]{16}/), start_timestamp: expect.any(Number), diff --git a/dev-packages/e2e-tests/test-applications/node-koa/tests/instrumented-paths.test.ts b/dev-packages/e2e-tests/test-applications/node-koa/tests/instrumented-paths.test.ts index 550f842c561d..0e1ccb7c0787 100644 --- a/dev-packages/e2e-tests/test-applications/node-koa/tests/instrumented-paths.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-koa/tests/instrumented-paths.test.ts @@ -16,11 +16,11 @@ test('instruments RegExp router routes', async ({ baseURL }) => { expect.arrayContaining([ expect.objectContaining({ op: 'router.koa', - origin: 'auto.http.orchestrion.koa', + origin: 'auto.http.koa', data: expect.objectContaining({ 'koa.type': 'router', 'sentry.op': 'router.koa', - 'sentry.origin': 'auto.http.orchestrion.koa', + 'sentry.origin': 'auto.http.koa', 'http.route': '/^\\/test-regexp/', }), }), @@ -49,7 +49,7 @@ test('instruments nested routers with the composed http.route', async ({ baseURL 'koa.type': 'router', 'http.route': '/:first/details/:id', 'sentry.op': 'router.koa', - 'sentry.origin': 'auto.http.orchestrion.koa', + 'sentry.origin': 'auto.http.koa', }), }), ]), @@ -91,7 +91,7 @@ test('marks the layer span as errored when a handler throws', async ({ baseURL } expect.arrayContaining([ expect.objectContaining({ op: 'router.koa', - origin: 'auto.http.orchestrion.koa', + origin: 'auto.http.koa', status: 'internal_error', }), ]), diff --git a/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts index 2e97d35751fa..7509c87bf4e8 100644 --- a/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/node-koa/tests/transactions.test.ts @@ -68,11 +68,11 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'code.function.name': 'bodyParser', 'koa.type': 'middleware', 'sentry.op': 'middleware.koa', - 'sentry.origin': 'auto.http.orchestrion.koa', + 'sentry.origin': 'auto.http.koa', }, description: 'bodyParser', op: 'middleware.koa', - origin: 'auto.http.orchestrion.koa', + origin: 'auto.http.koa', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), span_id: expect.stringMatching(/[a-f0-9]{16}/), start_timestamp: expect.any(Number), @@ -85,11 +85,11 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'koa.name': 'middleware', 'code.function.name': 'middleware', 'koa.type': 'middleware', - 'sentry.origin': 'auto.http.orchestrion.koa', + 'sentry.origin': 'auto.http.koa', 'sentry.op': 'middleware.koa', }, op: 'middleware.koa', - origin: 'auto.http.orchestrion.koa', + origin: 'auto.http.koa', description: 'middleware', parent_span_id: expect.stringMatching(/[a-f0-9]{16}/), span_id: expect.stringMatching(/[a-f0-9]{16}/), @@ -103,7 +103,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { 'http.route': '/test-transaction', 'koa.name': '/test-transaction', 'koa.type': 'router', - 'sentry.origin': 'auto.http.orchestrion.koa', + 'sentry.origin': 'auto.http.koa', 'sentry.op': 'router.koa', }, op: 'router.koa', @@ -114,7 +114,7 @@ test('Sends an API route transaction', async ({ baseURL }) => { status: 'ok', timestamp: expect.any(Number), trace_id: expect.stringMatching(/[a-f0-9]{32}/), - origin: 'auto.http.orchestrion.koa', + origin: 'auto.http.koa', }, { data: { diff --git a/dev-packages/e2e-tests/test-applications/nuxt-4-orchestrion/tests/db.test.ts b/dev-packages/e2e-tests/test-applications/nuxt-4-orchestrion/tests/db.test.ts index 2ac8601b0303..0e5d5c41bdd6 100644 --- a/dev-packages/e2e-tests/test-applications/nuxt-4-orchestrion/tests/db.test.ts +++ b/dev-packages/e2e-tests/test-applications/nuxt-4-orchestrion/tests/db.test.ts @@ -22,7 +22,7 @@ test('Instruments ioredis automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -34,7 +34,7 @@ test('Instruments ioredis automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ @@ -63,7 +63,7 @@ test('Instruments mysql automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -79,7 +79,7 @@ test('Instruments mysql automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/react-router-8-orchestrion/tests/db.test.ts b/dev-packages/e2e-tests/test-applications/react-router-8-orchestrion/tests/db.test.ts index 230f11e2f456..824ed4101bf0 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-8-orchestrion/tests/db.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-8-orchestrion/tests/db.test.ts @@ -15,7 +15,7 @@ test('Instruments ioredis automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -27,7 +27,7 @@ test('Instruments ioredis automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ @@ -56,7 +56,7 @@ test('Instruments mysql automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -72,7 +72,7 @@ test('Instruments mysql automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/sveltekit-2-orchestrion/tests/db.test.ts b/dev-packages/e2e-tests/test-applications/sveltekit-2-orchestrion/tests/db.test.ts index 529a43f45344..c9928586cd23 100644 --- a/dev-packages/e2e-tests/test-applications/sveltekit-2-orchestrion/tests/db.test.ts +++ b/dev-packages/e2e-tests/test-applications/sveltekit-2-orchestrion/tests/db.test.ts @@ -18,7 +18,7 @@ test('Instruments ioredis automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -30,7 +30,7 @@ test('Instruments ioredis automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ @@ -55,7 +55,7 @@ test('Instruments mysql automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -71,7 +71,7 @@ test('Instruments mysql automatically', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/e2e-tests/test-applications/tanstackstart-react-orchestrion/tests/db.test.ts b/dev-packages/e2e-tests/test-applications/tanstackstart-react-orchestrion/tests/db.test.ts index d722361aad7a..51dc9db584cf 100644 --- a/dev-packages/e2e-tests/test-applications/tanstackstart-react-orchestrion/tests/db.test.ts +++ b/dev-packages/e2e-tests/test-applications/tanstackstart-react-orchestrion/tests/db.test.ts @@ -17,7 +17,7 @@ test('Instruments ioredis automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'set test-key [1 other arguments]', status: 'ok', data: expect.objectContaining({ @@ -29,7 +29,7 @@ test('Instruments ioredis automatically via orchestrion', async ({ baseURL }) => expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.redis', + origin: 'auto.db.redis', description: 'get test-key', status: 'ok', data: expect.objectContaining({ @@ -56,7 +56,7 @@ test('Instruments mysql automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT 1 + 1 AS solution', status: 'ok', data: expect.objectContaining({ @@ -72,7 +72,7 @@ test('Instruments mysql automatically via orchestrion', async ({ baseURL }) => { expect(spans).toContainEqual( expect.objectContaining({ op: 'db', - origin: 'auto.db.orchestrion.mysql', + origin: 'auto.db.mysql', description: 'SELECT NOW()', status: 'ok', data: expect.objectContaining({ diff --git a/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration-streamed/test.ts b/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration-streamed/test.ts index 0b2e1a6379aa..1c40f7c65187 100644 --- a/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration-streamed/test.ts +++ b/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration-streamed/test.ts @@ -5,7 +5,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // See the non-streamed `aws-integration` suite: only the origin differs between the OTel and // orchestrion diagnostics-channel runs. -const ORIGIN = isOrchestrionEnabled() ? 'auto.aws.orchestrion.aws_sdk' : 'auto.otel.aws'; +const ORIGIN = isOrchestrionEnabled() ? 'auto.aws.aws_sdk' : 'auto.otel.aws'; // The aws-sdk instrumentation creates spans by patching the underlying smithy middleware stack. The // patch target differs between aws-sdk versions, so we run the exact same assertions against both: diff --git a/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration/test.ts b/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration/test.ts index fb4f84b7372f..76676f692470 100644 --- a/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration/test.ts +++ b/dev-packages/node-integration-tests/suites/aws-serverless/aws-integration/test.ts @@ -6,7 +6,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // The suite runs twice on CI: once with the OTel `Aws` integration (default) and once with the // orchestrion diagnostics-channel integration auto-injected (`INJECT_ORCHESTRION`). Both emit the // same spans; only the origin differs. -const ORIGIN = isOrchestrionEnabled() ? 'auto.aws.orchestrion.aws_sdk' : 'auto.otel.aws'; +const ORIGIN = isOrchestrionEnabled() ? 'auto.aws.aws_sdk' : 'auto.otel.aws'; // The aws-sdk instrumentation creates spans by patching the underlying smithy middleware stack. The // patch target differs between aws-sdk versions, so we run the exact same assertions against both: diff --git a/dev-packages/node-integration-tests/suites/aws-serverless/bedrock/test.ts b/dev-packages/node-integration-tests/suites/aws-serverless/bedrock/test.ts index d04c2cf1d7fa..8eded827abb3 100644 --- a/dev-packages/node-integration-tests/suites/aws-serverless/bedrock/test.ts +++ b/dev-packages/node-integration-tests/suites/aws-serverless/bedrock/test.ts @@ -6,7 +6,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // The suite runs twice on CI: once with the OTel `Aws` integration (default) and once with the // orchestrion diagnostics-channel integration auto-injected (`INJECT_ORCHESTRION`). Both emit the // same gen_ai spans; only the origin differs. -const ORIGIN = isOrchestrionEnabled() ? 'auto.aws.orchestrion.aws_sdk' : 'auto.otel.aws'; +const ORIGIN = isOrchestrionEnabled() ? 'auto.aws.aws_sdk' : 'auto.otel.aws'; const MODEL_ID = 'anthropic.claude-3-5-sonnet-20240620-v1:0'; diff --git a/dev-packages/node-integration-tests/suites/tracing/amqplib/test.ts b/dev-packages/node-integration-tests/suites/tracing/amqplib/test.ts index f614652ecb6b..dcb41143510f 100644 --- a/dev-packages/node-integration-tests/suites/tracing/amqplib/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/amqplib/test.ts @@ -6,8 +6,8 @@ import { cleanupChildProcesses, createEsmAndCjsTests, describeWithDockerCompose // The span origin depends on which instrumentation is active. These blocks drive the SDK's default // integrations, so when the generic orchestrion run is enabled (via INJECT_ORCHESTRION) the OTel // `Amqplib` integration is swapped for the diagnostics-channel one, changing the origin. -const PUBLISHER_ORIGIN = isOrchestrionEnabled() ? 'auto.amqplib.orchestrion.publisher' : 'auto.amqplib.otel.publisher'; -const CONSUMER_ORIGIN = isOrchestrionEnabled() ? 'auto.amqplib.orchestrion.consumer' : 'auto.amqplib.otel.consumer'; +const PUBLISHER_ORIGIN = isOrchestrionEnabled() ? 'auto.amqplib.publisher' : 'auto.amqplib.otel.publisher'; +const CONSUMER_ORIGIN = isOrchestrionEnabled() ? 'auto.amqplib.consumer' : 'auto.amqplib.otel.consumer'; // Each scenario uses its own queue name to keep them isolated on the shared broker, so the // expected producer span is parameterized by the routing key (queue name) it publishes to. diff --git a/dev-packages/node-integration-tests/suites/tracing/anthropic/test.ts b/dev-packages/node-integration-tests/suites/tracing/anthropic/test.ts index 29518d2f3d0c..b332f982d997 100644 --- a/dev-packages/node-integration-tests/suites/tracing/anthropic/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/anthropic/test.ts @@ -182,9 +182,7 @@ describe('Anthropic integration', () => { expect(completionSpan!.attributes[GEN_AI_USAGE_OUTPUT_TOKENS].value).toBe(15); expect(completionSpan!.attributes[GEN_AI_USAGE_TOTAL_TOKENS].value).toBe(25); expect(completionSpan!.attributes['sentry.op'].value).toBe('gen_ai.chat'); - expect(completionSpan!.attributes['sentry.origin'].value).toBe( - isOrchestrionEnabled() ? 'auto.ai.orchestrion.anthropic' : 'auto.ai.anthropic', - ); + expect(completionSpan!.attributes['sentry.origin'].value).toBe('auto.ai.anthropic'); const errorSpan = container.items.find( span => span.attributes[GEN_AI_INPUT_MESSAGES]?.value === '[{"role":"user","content":"This will fail"}]', @@ -623,7 +621,7 @@ describe('Anthropic integration', () => { expect(truncatedSpan!.status).toBe('ok'); expect(truncatedSpan!.attributes[GEN_AI_OPERATION_NAME].value).toBe('chat'); expect(truncatedSpan!.attributes['sentry.op'].value).toBe('gen_ai.chat'); - expect(truncatedSpan!.attributes['sentry.origin'].value).toBe('auto.ai.orchestrion.anthropic'); + expect(truncatedSpan!.attributes['sentry.origin'].value).toBe('auto.ai.anthropic'); expect(truncatedSpan!.attributes[GEN_AI_SYSTEM].value).toBe('anthropic'); expect(truncatedSpan!.attributes[GEN_AI_REQUEST_MODEL].value).toBe('claude-3-haiku-20240307'); @@ -635,7 +633,7 @@ describe('Anthropic integration', () => { expect(smallMessageSpan!.status).toBe('ok'); expect(smallMessageSpan!.attributes[GEN_AI_OPERATION_NAME].value).toBe('chat'); expect(smallMessageSpan!.attributes['sentry.op'].value).toBe('gen_ai.chat'); - expect(smallMessageSpan!.attributes['sentry.origin'].value).toBe('auto.ai.orchestrion.anthropic'); + expect(smallMessageSpan!.attributes['sentry.origin'].value).toBe('auto.ai.anthropic'); expect(smallMessageSpan!.attributes[GEN_AI_SYSTEM].value).toBe('anthropic'); expect(smallMessageSpan!.attributes[GEN_AI_REQUEST_MODEL].value).toBe('claude-3-haiku-20240307'); }, @@ -685,7 +683,7 @@ describe('Anthropic integration', () => { expect(firstSpan!.attributes[GEN_AI_INPUT_MESSAGES].value).toBe(expectedMediaMessages); expect(firstSpan!.attributes[GEN_AI_OPERATION_NAME].value).toBe('chat'); expect(firstSpan!.attributes['sentry.op'].value).toBe('gen_ai.chat'); - expect(firstSpan!.attributes['sentry.origin'].value).toBe('auto.ai.orchestrion.anthropic'); + expect(firstSpan!.attributes['sentry.origin'].value).toBe('auto.ai.anthropic'); expect(firstSpan!.attributes[GEN_AI_SYSTEM].value).toBe('anthropic'); expect(firstSpan!.attributes[GEN_AI_REQUEST_MODEL].value).toBe('claude-3-haiku-20240307'); }, diff --git a/dev-packages/node-integration-tests/suites/tracing/dataloader/test.ts b/dev-packages/node-integration-tests/suites/tracing/dataloader/test.ts index e7e4b8f73f3a..a74ca1158b7d 100644 --- a/dev-packages/node-integration-tests/suites/tracing/dataloader/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/dataloader/test.ts @@ -5,7 +5,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // The span origin depends on which instrumentation is active. When the generic orchestrion run is // enabled (via INJECT_ORCHESTRION) the OTel `Dataloader` integration is swapped for the // diagnostics-channel one, which stamps a different origin. -const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.dataloader' : 'auto.db.otel.dataloader'; +const ORIGIN = isOrchestrionEnabled() ? 'auto.db.dataloader' : 'auto.db.otel.dataloader'; const CACHE_GET_OP = 'cache.get'; describe('dataloader auto-instrumentation', () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/genericPool-v2/test.ts b/dev-packages/node-integration-tests/suites/tracing/genericPool-v2/test.ts index 44846d763a2e..3e5d7cd6ddf8 100644 --- a/dev-packages/node-integration-tests/suites/tracing/genericPool-v2/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/genericPool-v2/test.ts @@ -8,7 +8,7 @@ describe('genericPool v2 auto instrumentation', () => { }); // The orchestrion channel integration replaces the OTel one 1:1 but tags spans with its own origin. - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.generic_pool' : 'auto.db.otel.generic_pool'; + const ORIGIN = isOrchestrionEnabled() ? 'auto.db.generic_pool' : 'auto.db.otel.generic_pool'; createEsmAndCjsTests( __dirname, diff --git a/dev-packages/node-integration-tests/suites/tracing/genericPool/test.ts b/dev-packages/node-integration-tests/suites/tracing/genericPool/test.ts index e878467d0cd8..a64b0a1c916c 100644 --- a/dev-packages/node-integration-tests/suites/tracing/genericPool/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/genericPool/test.ts @@ -8,7 +8,7 @@ describe('genericPool auto instrumentation', () => { }); // The orchestrion channel integration replaces the OTel one 1:1 but tags spans with its own origin. - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.generic_pool' : 'auto.db.otel.generic_pool'; + const ORIGIN = isOrchestrionEnabled() ? 'auto.db.generic_pool' : 'auto.db.otel.generic_pool'; createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { test('should auto-instrument `genericPool` package when calling pool.require()', async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/google-genai/test.ts b/dev-packages/node-integration-tests/suites/tracing/google-genai/test.ts index 554ee394ef8d..9f61c8a127e4 100644 --- a/dev-packages/node-integration-tests/suites/tracing/google-genai/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/google-genai/test.ts @@ -21,9 +21,9 @@ import { GEN_AI_USAGE_TOTAL_TOKENS, } from '@sentry/conventions/attributes'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runner'; -import { getStringAttributeValue, isOrchestrionEnabled } from '../../../utils'; +import { getStringAttributeValue } from '../../../utils'; -const EXPECTED_ORIGIN = isOrchestrionEnabled() ? 'auto.ai.orchestrion.google_genai' : 'auto.ai.google_genai'; +const EXPECTED_ORIGIN = 'auto.ai.google_genai'; describe('Google GenAI integration', () => { afterAll(() => { diff --git a/dev-packages/node-integration-tests/suites/tracing/hapi/test.ts b/dev-packages/node-integration-tests/suites/tracing/hapi/test.ts index 989257032531..7999ff26d914 100644 --- a/dev-packages/node-integration-tests/suites/tracing/hapi/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/hapi/test.ts @@ -11,7 +11,7 @@ describe('hapi auto-instrumentation', () => { // orchestrion path keeps span ops/attributes identical to the OTel path; only // the origin differs to signal the injection mechanism, so we branch on // `isOrchestrionEnabled()`. - const origin = isOrchestrionEnabled() ? 'auto.http.orchestrion.hapi' : 'auto.http.otel.hapi'; + const origin = isOrchestrionEnabled() ? 'auto.http.hapi' : 'auto.http.otel.hapi'; const EXPECTED_TRANSACTION = { transaction: 'GET /', diff --git a/dev-packages/node-integration-tests/suites/tracing/kafkajs/test.ts b/dev-packages/node-integration-tests/suites/tracing/kafkajs/test.ts index e7bf29cab17b..d947e3050a3e 100644 --- a/dev-packages/node-integration-tests/suites/tracing/kafkajs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/kafkajs/test.ts @@ -3,8 +3,8 @@ import { afterAll, expect } from 'vitest'; import { isOrchestrionEnabled } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests, describeWithDockerCompose } from '../../../utils/runner'; -const producerOrigin = isOrchestrionEnabled() ? 'auto.kafkajs.orchestrion.producer' : 'auto.kafkajs.otel.producer'; -const consumerOrigin = isOrchestrionEnabled() ? 'auto.kafkajs.orchestrion.consumer' : 'auto.kafkajs.otel.consumer'; +const producerOrigin = isOrchestrionEnabled() ? 'auto.kafkajs.producer' : 'auto.kafkajs.otel.producer'; +const consumerOrigin = isOrchestrionEnabled() ? 'auto.kafkajs.consumer' : 'auto.kafkajs.otel.consumer'; describeWithDockerCompose('kafkajs', { workingDirectory: [__dirname] }, () => { afterAll(() => { diff --git a/dev-packages/node-integration-tests/suites/tracing/knex/mysql2/test.ts b/dev-packages/node-integration-tests/suites/tracing/knex/mysql2/test.ts index f4d4b5d430cb..61135dae2cdd 100644 --- a/dev-packages/node-integration-tests/suites/tracing/knex/mysql2/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/knex/mysql2/test.ts @@ -5,7 +5,7 @@ import { createEsmAndCjsTests, describeWithDockerCompose } from '../../../../uti describeWithDockerCompose('knex auto instrumentation', { workingDirectory: [__dirname] }, () => { // Update this if another knex version is installed const KNEX_VERSION = '2.5.1'; - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.knex' : 'auto.db.otel.knex'; + const ORIGIN = isOrchestrionEnabled() ? 'auto.db.knex' : 'auto.db.otel.knex'; describe('with `mysql2` client', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { diff --git a/dev-packages/node-integration-tests/suites/tracing/knex/pg/test.ts b/dev-packages/node-integration-tests/suites/tracing/knex/pg/test.ts index bc63c52637ec..32f25c3d54a4 100644 --- a/dev-packages/node-integration-tests/suites/tracing/knex/pg/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/knex/pg/test.ts @@ -5,7 +5,7 @@ import { createEsmAndCjsTests, describeWithDockerCompose } from '../../../../uti describe('knex auto instrumentation', () => { // Update this if another knex version is installed const KNEX_VERSION = '2.5.1'; - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.knex' : 'auto.db.otel.knex'; + const ORIGIN = isOrchestrionEnabled() ? 'auto.db.knex' : 'auto.db.otel.knex'; describeWithDockerCompose('with `pg` client', { workingDirectory: [__dirname] }, () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { diff --git a/dev-packages/node-integration-tests/suites/tracing/koa/test.ts b/dev-packages/node-integration-tests/suites/tracing/koa/test.ts index e3754e233565..f730e24ab449 100644 --- a/dev-packages/node-integration-tests/suites/tracing/koa/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/koa/test.ts @@ -11,7 +11,7 @@ describe('koa auto-instrumentation', () => { // orchestrion path keeps span ops/attributes identical to the OTel path; only // the origin differs to signal the injection mechanism, so we branch on // `isOrchestrionEnabled()`. - const origin = isOrchestrionEnabled() ? 'auto.http.orchestrion.koa' : 'auto.http.otel.koa'; + const origin = isOrchestrionEnabled() ? 'auto.http.koa' : 'auto.http.otel.koa'; const EXPECTED_ERROR_EVENT = { exception: { diff --git a/dev-packages/node-integration-tests/suites/tracing/langchain/test.ts b/dev-packages/node-integration-tests/suites/tracing/langchain/test.ts index 2111bc89cb9d..e03769f462c4 100644 --- a/dev-packages/node-integration-tests/suites/tracing/langchain/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/langchain/test.ts @@ -22,7 +22,7 @@ import { GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, } from '../../../../../packages/core/src/tracing/ai/gen-ai-attributes'; -import { getStringAttributeValue, isOrchestrionEnabled } from '../../../utils'; +import { getStringAttributeValue } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runner'; import { createEsmTests } from '../../../utils/runner/createEsmAndCjsTests'; @@ -257,9 +257,7 @@ describe('LangChain integration', () => { span: container => { expect(container.items).toHaveLength(2); const anthropicSpan = container.items.find( - span => - span.attributes['sentry.origin'].value === - (isOrchestrionEnabled() ? 'auto.ai.orchestrion.anthropic' : 'auto.ai.anthropic'), + span => span.attributes['sentry.origin'].value === 'auto.ai.anthropic', ); expect(anthropicSpan).toBeDefined(); expect(anthropicSpan!.name).toBe('chat claude-3-5-sonnet-20241022'); diff --git a/dev-packages/node-integration-tests/suites/tracing/langchain/v1/test.ts b/dev-packages/node-integration-tests/suites/tracing/langchain/v1/test.ts index 088f8918fa88..be472373c19e 100644 --- a/dev-packages/node-integration-tests/suites/tracing/langchain/v1/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/langchain/v1/test.ts @@ -17,7 +17,7 @@ import { GEN_AI_USAGE_TOTAL_TOKENS, } from '@sentry/conventions/attributes'; import { GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE } from '../../../../../../packages/core/src/tracing/ai/gen-ai-attributes'; -import { conditionalTest, getStringAttributeValue, isOrchestrionEnabled } from '../../../../utils'; +import { conditionalTest, getStringAttributeValue } from '../../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../../utils/runner'; import { createEsmTests } from '../../../../utils/runner/createEsmAndCjsTests'; @@ -286,9 +286,7 @@ conditionalTest({ min: 20 })('LangChain integration (v1)', () => { span: container => { expect(container.items).toHaveLength(2); const anthropicSpan = container.items.find( - span => - span.attributes['sentry.origin'].value === - (isOrchestrionEnabled() ? 'auto.ai.orchestrion.anthropic' : 'auto.ai.anthropic'), + span => span.attributes['sentry.origin'].value === 'auto.ai.anthropic', ); expect(anthropicSpan).toBeDefined(); expect(anthropicSpan!.name).toBe('chat claude-3-5-sonnet-20241022'); diff --git a/dev-packages/node-integration-tests/suites/tracing/mongodb-v4/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongodb-v4/test.ts index 28f5d5abb64b..77772fa26531 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongodb-v4/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongodb-v4/test.ts @@ -21,7 +21,7 @@ describe('MongoDB v4 auto-instrumentation', () => { cleanupChildProcesses(); }); - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; const spanFor = (operation: string): unknown => expect.objectContaining({ diff --git a/dev-packages/node-integration-tests/suites/tracing/mongodb-v5/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongodb-v5/test.ts index 6b0c67965da9..747e08fe0a73 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongodb-v5/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongodb-v5/test.ts @@ -21,7 +21,7 @@ describe('MongoDB v5 auto-instrumentation', () => { cleanupChildProcesses(); }); - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; const spanFor = (operation: string): unknown => expect.objectContaining({ diff --git a/dev-packages/node-integration-tests/suites/tracing/mongodb-v6/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongodb-v6/test.ts index 9ad2263efc0f..3048148400f5 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongodb-v6/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongodb-v6/test.ts @@ -21,7 +21,7 @@ describe('MongoDB v6 auto-instrumentation', () => { cleanupChildProcesses(); }); - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; // `db.statement` (scrubbed full command doc) and `db.connection_string` vary // by driver version, so assert their presence rather than exact content; diff --git a/dev-packages/node-integration-tests/suites/tracing/mongodb-v7/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongodb-v7/test.ts index f6c47b9a4f67..02906377e62f 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongodb-v7/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongodb-v7/test.ts @@ -22,7 +22,7 @@ conditionalTest({ min: 20 })('MongoDB v7 auto-instrumentation', () => { cleanupChildProcesses(); }); - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; // `db.statement` (scrubbed full command doc) and `db.connection_string` vary // by driver version, so assert their presence rather than exact content; diff --git a/dev-packages/node-integration-tests/suites/tracing/mongodb/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongodb/test.ts index 06d9f17a7b61..88880902a20a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongodb/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongodb/test.ts @@ -6,7 +6,7 @@ import { isOrchestrionEnabled } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runner'; describe('MongoDB auto-instrumentation', () => { - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mongoose-tracing-channel/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongoose-tracing-channel/test.ts index c5adf265bf52..2fcbda83375f 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongoose-tracing-channel/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongoose-tracing-channel/test.ts @@ -9,7 +9,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // query text, span relationships, and that the legacy IITM patcher does NOT also fire (no double // instrumentation). mongoose 9 requires Node >=20.19, so this suite is skipped on older Node. conditionalTest({ min: 20 })('Mongoose tracing channel Test', () => { - const driverOrigin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const driverOrigin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mongoose-v5/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongoose-v5/test.ts index 9f62692c1b90..604baceb3c25 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongoose-v5/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongoose-v5/test.ts @@ -7,7 +7,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // the bottom of the IITM patcher's `>=5.9.7 <9.7.0` range, so the oldest // supported major is exercised against a real mongoose. describe('Mongoose v5 Test', () => { - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongoose' : 'auto.db.otel.mongoose'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongoose' : 'auto.db.otel.mongoose'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mongoose-v7/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongoose-v7/test.ts index ee9cec92cc46..2b53cd071691 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongoose-v7/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongoose-v7/test.ts @@ -5,7 +5,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // Pins mongoose 7 so the `contextCaptureFunctions7` version branch is exercised against a real mongoose. describe('Mongoose v7 Test', () => { - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongoose' : 'auto.db.otel.mongoose'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongoose' : 'auto.db.otel.mongoose'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mongoose-v8/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongoose-v8/test.ts index b13d715fc3bd..3e19adf0a64c 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongoose-v8/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongoose-v8/test.ts @@ -6,7 +6,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // Pins mongoose 8 (>= 8.21) so the document `updateOne`/`deleteOne` lazy-Query path is exercised // against a real mongoose, guarding the thenable trap that mongoose 6 (the workspace version) can't hit. describe('Mongoose v8 Test', () => { - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongoose' : 'auto.db.otel.mongoose'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongoose' : 'auto.db.otel.mongoose'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mongoose-v9/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongoose-v9/test.ts index cf027f31fc38..f7977d607481 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongoose-v9/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongoose-v9/test.ts @@ -8,7 +8,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runn // diagnostics_channel and is covered by the `mongoose-tracing-channel` suite instead. // mongoose 9 requires Node >=20.19, so this suite is skipped on older Node. conditionalTest({ min: 20 })('Mongoose v9 Test', () => { - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongoose' : 'auto.db.otel.mongoose'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongoose' : 'auto.db.otel.mongoose'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mongoose/test.ts b/dev-packages/node-integration-tests/suites/tracing/mongoose/test.ts index 2a1bf262ab02..7c6f5cb7a88e 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mongoose/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mongoose/test.ts @@ -4,8 +4,8 @@ import { isOrchestrionEnabled } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runner'; describe('Mongoose experimental Test', () => { - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongoose' : 'auto.db.otel.mongoose'; - const driverOrigin = isOrchestrionEnabled() ? 'auto.db.orchestrion.mongo' : 'auto.db.otel.mongo'; + const origin = isOrchestrionEnabled() ? 'auto.db.mongoose' : 'auto.db.otel.mongoose'; + const driverOrigin = isOrchestrionEnabled() ? 'auto.db.mongo' : 'auto.db.otel.mongo'; let mongoServer: MongoMemoryServer; beforeAll(async () => { diff --git a/dev-packages/node-integration-tests/suites/tracing/mysql/test.ts b/dev-packages/node-integration-tests/suites/tracing/mysql/test.ts index 5819849340dc..c437f385049f 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mysql/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mysql/test.ts @@ -60,7 +60,7 @@ describe('mysql auto instrumentation', () => { }; } - const CHANNEL_ORIGIN = 'auto.db.orchestrion.mysql'; + const CHANNEL_ORIGIN = 'auto.db.mysql'; // Channel-based (orchestrion diagnostics-channel) instrumentation is the default: `Sentry.init()` // injects and subscribes to the channels synchronously. We test it both with the channels installed @@ -218,7 +218,7 @@ describe('mysql auto instrumentation', () => { }, 'sentry.origin': { type: 'string', - value: isOrchestrionEnabled() ? 'auto.db.orchestrion.mysql' : 'auto.db.otel.mysql', + value: isOrchestrionEnabled() ? 'auto.db.mysql' : 'auto.db.otel.mysql', }, 'sentry.release': { type: 'string', diff --git a/dev-packages/node-integration-tests/suites/tracing/mysql2/test.ts b/dev-packages/node-integration-tests/suites/tracing/mysql2/test.ts index 7542374edccc..1ce08680762a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/mysql2/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/mysql2/test.ts @@ -9,7 +9,7 @@ describeWithDockerCompose('mysql2 auto instrumentation', { workingDirectory: [__ // With orchestrion injection enabled (`INJECT_ORCHESTRION`), the diagnostics-channel integration // records the spans instead of the OTel patcher, so they carry a different `sentry.origin`. - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.mysql2' : 'auto.db.otel.mysql2'; + const ORIGIN = isOrchestrionEnabled() ? 'auto.db.mysql2' : 'auto.db.otel.mysql2'; const EXPECTED_TRANSACTION = { transaction: 'Test Transaction', diff --git a/dev-packages/node-integration-tests/suites/tracing/openai/test.ts b/dev-packages/node-integration-tests/suites/tracing/openai/test.ts index a81723effa40..66f03e3ca06e 100644 --- a/dev-packages/node-integration-tests/suites/tracing/openai/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/openai/test.ts @@ -23,7 +23,7 @@ import { GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, } from '../../../../../packages/core/src/tracing/ai/gen-ai-attributes'; -import { getStringAttributeValue, isOrchestrionEnabled } from '../../../utils'; +import { getStringAttributeValue } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../utils/runner'; describe('OpenAI integration', () => { @@ -55,7 +55,7 @@ describe('OpenAI integration', () => { }); expect(chatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(chatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -110,7 +110,7 @@ describe('OpenAI integration', () => { }); expect(responsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(responsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', value: 'openai' }); expect(responsesSpan!.attributes[GEN_AI_REQUEST_MODEL]).toEqual({ @@ -160,7 +160,7 @@ describe('OpenAI integration', () => { }); expect(nonStreamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(nonStreamingErrorSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -187,7 +187,7 @@ describe('OpenAI integration', () => { }); expect(streamingChatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingChatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -250,7 +250,7 @@ describe('OpenAI integration', () => { }); expect(streamingResponsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingResponsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -322,7 +322,7 @@ describe('OpenAI integration', () => { }); expect(streamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); }, }) @@ -355,7 +355,7 @@ describe('OpenAI integration', () => { }); expect(chatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(chatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -422,7 +422,7 @@ describe('OpenAI integration', () => { }); expect(responsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(responsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', value: 'openai' }); expect(responsesSpan!.attributes[GEN_AI_REQUEST_MODEL]).toEqual({ @@ -480,7 +480,7 @@ describe('OpenAI integration', () => { }); expect(nonStreamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(nonStreamingErrorSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -511,7 +511,7 @@ describe('OpenAI integration', () => { }); expect(streamingChatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingChatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -586,7 +586,7 @@ describe('OpenAI integration', () => { }); expect(streamingResponsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingResponsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -670,7 +670,7 @@ describe('OpenAI integration', () => { }); expect(streamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); }, }) @@ -809,7 +809,7 @@ describe('OpenAI integration', () => { }); expect(singleEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(singleEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -854,7 +854,7 @@ describe('OpenAI integration', () => { }); expect(errorEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(errorEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -883,7 +883,7 @@ describe('OpenAI integration', () => { }); expect(multiEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(multiEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -940,7 +940,7 @@ describe('OpenAI integration', () => { }); expect(singleEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(singleEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -991,7 +991,7 @@ describe('OpenAI integration', () => { }); expect(errorEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(errorEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -1024,7 +1024,7 @@ describe('OpenAI integration', () => { }); expect(multiEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(multiEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -1076,9 +1076,7 @@ describe('OpenAI integration', () => { data: { [GEN_AI_OPERATION_NAME]: 'chat', [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: isOrchestrionEnabled() - ? 'auto.ai.orchestrion.openai' - : 'auto.ai.openai', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai', [GEN_AI_SYSTEM]: 'openai', [GEN_AI_REQUEST_MODEL]: 'gpt-3.5-turbo', [GEN_AI_REQUEST_TEMPERATURE]: 0.7, @@ -1090,7 +1088,7 @@ describe('OpenAI integration', () => { [GEN_AI_USAGE_TOTAL_TOKENS]: 25, }, op: 'gen_ai.chat', - origin: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + origin: 'auto.ai.openai', status: 'ok', }, }, @@ -1120,9 +1118,7 @@ describe('OpenAI integration', () => { data: { [GEN_AI_OPERATION_NAME]: 'chat', [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: isOrchestrionEnabled() - ? 'auto.ai.orchestrion.openai' - : 'auto.ai.openai', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai', [GEN_AI_SYSTEM]: 'openai', [GEN_AI_REQUEST_MODEL]: 'gpt-3.5-turbo', [GEN_AI_REQUEST_TEMPERATURE]: 0.7, @@ -1134,7 +1130,7 @@ describe('OpenAI integration', () => { [GEN_AI_USAGE_TOTAL_TOKENS]: 25, }, op: 'gen_ai.chat', - origin: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + origin: 'auto.ai.openai', status: 'ok', }, }, @@ -1312,7 +1308,7 @@ describe('OpenAI integration', () => { }); expect(conversationCreateSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(conversationCreateSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -1341,7 +1337,7 @@ describe('OpenAI integration', () => { }); expect(conversationResponseSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(conversationResponseSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -1384,7 +1380,7 @@ describe('OpenAI integration', () => { }); expect(previousResponseSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(previousResponseSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', diff --git a/dev-packages/node-integration-tests/suites/tracing/openai/v6/test.ts b/dev-packages/node-integration-tests/suites/tracing/openai/v6/test.ts index 2759b975851e..5ec25a0bb47a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/openai/v6/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/openai/v6/test.ts @@ -22,7 +22,6 @@ import { GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE, GEN_AI_REQUEST_STREAM_ATTRIBUTE, } from '../../../../../../packages/core/src/tracing/ai/gen-ai-attributes'; -import { isOrchestrionEnabled } from '../../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests } from '../../../../utils/runner'; describe('OpenAI integration (V6)', () => { @@ -58,7 +57,7 @@ describe('OpenAI integration (V6)', () => { }); expect(chatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(chatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -113,7 +112,7 @@ describe('OpenAI integration (V6)', () => { }); expect(responsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(responsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', value: 'openai' }); expect(responsesSpan!.attributes[GEN_AI_REQUEST_MODEL]).toEqual({ @@ -163,7 +162,7 @@ describe('OpenAI integration (V6)', () => { }); expect(nonStreamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(nonStreamingErrorSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -190,7 +189,7 @@ describe('OpenAI integration (V6)', () => { }); expect(streamingChatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingChatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -253,7 +252,7 @@ describe('OpenAI integration (V6)', () => { }); expect(streamingResponsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingResponsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -325,7 +324,7 @@ describe('OpenAI integration (V6)', () => { }); expect(streamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); }, }) @@ -368,7 +367,7 @@ describe('OpenAI integration (V6)', () => { }); expect(chatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(chatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -435,7 +434,7 @@ describe('OpenAI integration (V6)', () => { }); expect(responsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(responsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', value: 'openai' }); expect(responsesSpan!.attributes[GEN_AI_REQUEST_MODEL]).toEqual({ @@ -493,7 +492,7 @@ describe('OpenAI integration (V6)', () => { }); expect(nonStreamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(nonStreamingErrorSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -524,7 +523,7 @@ describe('OpenAI integration (V6)', () => { }); expect(streamingChatCompletionSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingChatCompletionSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -599,7 +598,7 @@ describe('OpenAI integration (V6)', () => { }); expect(streamingResponsesSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(streamingResponsesSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -683,7 +682,7 @@ describe('OpenAI integration (V6)', () => { }); expect(streamingErrorSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); }, }) @@ -795,7 +794,7 @@ describe('OpenAI integration (V6)', () => { }); expect(singleEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(singleEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -840,7 +839,7 @@ describe('OpenAI integration (V6)', () => { }); expect(errorEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(errorEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -869,7 +868,7 @@ describe('OpenAI integration (V6)', () => { }); expect(multiEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(multiEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -936,7 +935,7 @@ describe('OpenAI integration (V6)', () => { }); expect(singleEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(singleEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -987,7 +986,7 @@ describe('OpenAI integration (V6)', () => { }); expect(errorEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(errorEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -1020,7 +1019,7 @@ describe('OpenAI integration (V6)', () => { }); expect(multiEmbeddingSpan!.attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]).toEqual({ type: 'string', - value: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + value: 'auto.ai.openai', }); expect(multiEmbeddingSpan!.attributes[GEN_AI_SYSTEM]).toEqual({ type: 'string', @@ -1082,9 +1081,7 @@ describe('OpenAI integration (V6)', () => { data: { [GEN_AI_OPERATION_NAME]: 'chat', [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: isOrchestrionEnabled() - ? 'auto.ai.orchestrion.openai' - : 'auto.ai.openai', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai', [GEN_AI_SYSTEM]: 'openai', [GEN_AI_REQUEST_MODEL]: 'gpt-3.5-turbo', [GEN_AI_REQUEST_TEMPERATURE]: 0.7, @@ -1096,7 +1093,7 @@ describe('OpenAI integration (V6)', () => { [GEN_AI_USAGE_TOTAL_TOKENS]: 25, }, op: 'gen_ai.chat', - origin: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + origin: 'auto.ai.openai', status: 'ok', }, }, @@ -1137,9 +1134,7 @@ describe('OpenAI integration (V6)', () => { data: { [GEN_AI_OPERATION_NAME]: 'chat', [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: isOrchestrionEnabled() - ? 'auto.ai.orchestrion.openai' - : 'auto.ai.openai', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai', [GEN_AI_SYSTEM]: 'openai', [GEN_AI_REQUEST_MODEL]: 'gpt-3.5-turbo', [GEN_AI_REQUEST_TEMPERATURE]: 0.7, @@ -1151,7 +1146,7 @@ describe('OpenAI integration (V6)', () => { [GEN_AI_USAGE_TOTAL_TOKENS]: 25, }, op: 'gen_ai.chat', - origin: isOrchestrionEnabled() ? 'auto.ai.orchestrion.openai' : 'auto.ai.openai', + origin: 'auto.ai.openai', status: 'ok', }, }, diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres-streamed/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres-streamed/test.ts index 5878bc038059..480d5168d7c3 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres-streamed/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/postgres-streamed/test.ts @@ -9,7 +9,7 @@ import { cleanupChildProcesses, createEsmAndCjsTests, describeWithDockerCompose // integrations get the diagnostics-channel origin when the generic orchestrion run is enabled (via // INJECT_ORCHESTRION), since the OTel `Postgres` integration is then swapped for the channel one. Blocks // that pass an explicit `postgresIntegration()` (e.g. `ignoreConnectSpans`) keep the OTel origin. -const QUERY_ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.postgres' : 'auto.db.otel.postgres'; +const QUERY_ORIGIN = isOrchestrionEnabled() ? 'auto.db.postgres' : 'auto.db.otel.postgres'; const COMMON_DB_ATTRIBUTES = { 'db.connection_string': { @@ -78,7 +78,7 @@ const COMMON_DB_ATTRIBUTES = { * Builds the expected strict shape of a streamed postgres db span. * * Query spans carry a `db.statement` and the query origin (`auto.db.otel.postgres`, or - * `auto.db.orchestrion.postgres` under the generic orchestrion run — see `QUERY_ORIGIN`). The + * `auto.db.postgres` under the generic orchestrion run — see `QUERY_ORIGIN`). The * `pg.connect` span has no `db.statement`, and since the pg instrumentation sets no origin on it, it * carries the default `manual` origin (written as an attribute on the streamed-span path; the * non-streamed/SDK path omits the `manual` default). @@ -199,7 +199,7 @@ describeWithDockerCompose('postgres auto instrumentation (streamed)', { workingD // `postgresIntegration()` is the diagnostics-channel implementation by default, so query // spans carry the orchestrion origin even when passing explicit options like // `ignoreConnectSpans`. - const origin = 'auto.db.orchestrion.postgres'; + const origin = 'auto.db.postgres'; expect(dbSpans).toEqual([ expectedDbSpan({ name: CREATE_USER_TABLE_STATEMENT, statement: CREATE_USER_TABLE_STATEMENT, origin }), expectedDbSpan({ diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts index a8aeeb200ed0..e495dd319aca 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts @@ -9,7 +9,7 @@ describeWithDockerCompose('postgres auto instrumentation', { workingDirectory: [ // `postgresIntegration()` is the diagnostics-channel implementation by default, so query spans carry // the orchestrion origin. - const QUERY_ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.postgres' : 'auto.db.otel.postgres'; + const QUERY_ORIGIN = isOrchestrionEnabled() ? 'auto.db.postgres' : 'auto.db.otel.postgres'; describe('default', () => { const EXPECTED_TRANSACTION = { @@ -335,10 +335,10 @@ describeWithDockerCompose('postgres auto instrumentation', { workingDirectory: [ // Orchestrion (diagnostics-channel) coverage via a dedicated instrument file. Produces the same // spans as the OTel path did, except the query origin reports the mechanism - // (`auto.db.orchestrion.postgres`); connect/pool-connect spans stay 'manual' (those spans never set + // (`auto.db.postgres`); connect/pool-connect spans stay 'manual' (those spans never set // an origin). describe('orchestrion (diagnostics-channel)', () => { - const ORIGIN = 'auto.db.orchestrion.postgres'; + const ORIGIN = 'auto.db.postgres'; describe('default', () => { const EXPECTED_TRANSACTION = { diff --git a/dev-packages/node-integration-tests/suites/tracing/postgresjs/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgresjs/test.ts index f0da918c9b89..7e99d58dedff 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgresjs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/postgresjs/test.ts @@ -1,5 +1,4 @@ import { afterAll, describe, expect } from 'vitest'; -import { isOrchestrionEnabled } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests, describeWithDockerCompose } from '../../../utils/runner'; describeWithDockerCompose('postgresjs auto instrumentation', { workingDirectory: [__dirname] }, () => { @@ -10,7 +9,7 @@ describeWithDockerCompose('postgresjs auto instrumentation', { workingDirectory: // Under orchestrion (INJECT_ORCHESTRION), the OTel `PostgresJs` integration is // swapped for the diagnostics-channel one, so query spans carry a different // origin. Every other attribute is identical. - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.postgresjs' : 'auto.db.postgresjs'; + const ORIGIN = 'auto.db.postgresjs'; describe('basic', () => { const EXPECTED_TRANSACTION = { diff --git a/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts b/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts index a0376d2d8ed2..d877a66b512e 100644 --- a/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/redis-cache/test.ts @@ -7,7 +7,7 @@ describeWithDockerCompose('redis cache auto instrumentation', { workingDirectory cleanupChildProcesses(); }); - const redisOrigin = isOrchestrionEnabled() ? 'auto.db.orchestrion.redis' : 'auto.db.otel.redis'; + const redisOrigin = isOrchestrionEnabled() ? 'auto.db.redis' : 'auto.db.otel.redis'; describe('ioredis non-cache keys', () => { const EXPECTED_TRANSACTION = { diff --git a/dev-packages/node-integration-tests/suites/tracing/redis/test.ts b/dev-packages/node-integration-tests/suites/tracing/redis/test.ts index 20c41136d4d5..a3d6a8702052 100644 --- a/dev-packages/node-integration-tests/suites/tracing/redis/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/redis/test.ts @@ -10,7 +10,7 @@ describeWithDockerCompose('redis auto instrumentation', { workingDirectory: [__d // Under orchestrion, ioredis <5.11 is instrumented by the diagnostics-channel // subscriber instead of the OTel monkey-patch, so the span origin differs. All // other attributes are identical. - const origin = isOrchestrionEnabled() ? 'auto.db.orchestrion.redis' : 'auto.db.otel.redis'; + const origin = isOrchestrionEnabled() ? 'auto.db.redis' : 'auto.db.otel.redis'; const EXPECTED_TRANSACTION = { transaction: 'Test Span', diff --git a/dev-packages/node-integration-tests/suites/tracing/tedious/test.ts b/dev-packages/node-integration-tests/suites/tracing/tedious/test.ts index 420a92a6caa7..d5ff036297d8 100644 --- a/dev-packages/node-integration-tests/suites/tracing/tedious/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/tedious/test.ts @@ -3,7 +3,7 @@ import { isOrchestrionEnabled } from '../../../utils'; import { cleanupChildProcesses, createEsmAndCjsTests, describeWithDockerCompose } from '../../../utils/runner'; describeWithDockerCompose('tedious auto instrumentation', { workingDirectory: [__dirname] }, () => { - const ORIGIN = isOrchestrionEnabled() ? 'auto.db.orchestrion.tedious' : 'auto.db.otel.tedious'; + const ORIGIN = isOrchestrionEnabled() ? 'auto.db.tedious' : 'auto.db.otel.tedious'; afterAll(() => { cleanupChildProcesses(); diff --git a/packages/nestjs/src/integrations/helpers.ts b/packages/nestjs/src/integrations/helpers.ts index 154ba32548f2..d3b1c5f14800 100644 --- a/packages/nestjs/src/integrations/helpers.ts +++ b/packages/nestjs/src/integrations/helpers.ts @@ -68,29 +68,15 @@ export function isTargetPatched(target: object, flag: 'sentryPatchedInjectable' return false; } +/** Origin for the app-creation / request-context / request-handler HTTP spans. */ +export const HTTP_ORIGIN = 'auto.http.nestjs'; + /** Origin for middleware/guard/pipe/interceptor/exception_filter spans. */ function middlewareOrigin(componentType?: string): string { - const base = 'auto.middleware.orchestrion.nestjs'; + const base = 'auto.middleware.nestjs'; return componentType ? `${base}.${componentType}` : base; } -/** - * Origin for the app-creation / request-context / request-handler HTTP spans. - */ -export function httpOrigin(): string { - return 'auto.http.orchestrion.nestjs'; -} - -/** Origin for `@OnEvent` spans. */ -function eventOrigin(): string { - return 'auto.event.orchestrion.nestjs'; -} - -/** Origin for BullMQ `@Processor` `process` spans. */ -function bullmqOrigin(): string { - return 'auto.queue.orchestrion.nestjs.bullmq'; -} - /** * Returns span options for nest middleware spans. * name = provided name or class name. @@ -121,7 +107,7 @@ export function getEventSpanOptions(event: string): { name: `event ${event}`, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'event.nestjs', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: eventOrigin(), + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.event.nestjs', }, forceTransaction: true, }; @@ -139,7 +125,7 @@ export function getBullMQProcessSpanOptions(queueName: string): { name: `${queueName} process`, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'queue.process', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: bullmqOrigin(), + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.queue.nestjs.bullmq', 'messaging.system': 'bullmq', 'messaging.destination.name': queueName, }, diff --git a/packages/nestjs/src/integrations/wrap-route.ts b/packages/nestjs/src/integrations/wrap-route.ts index 371ee3ecadcc..47a8d1b4909a 100644 --- a/packages/nestjs/src/integrations/wrap-route.ts +++ b/packages/nestjs/src/integrations/wrap-route.ts @@ -2,7 +2,7 @@ import { HTTP_METHOD, HTTP_ROUTE, URL_FULL } from '@sentry/conventions/attribute import type { SpanAttributes } from '@sentry/core'; import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, startSpan } from '@sentry/core'; import type { AnyFn } from './helpers'; -import { copyReflectMetadata, httpOrigin, isWrapped, markWrapped } from './helpers'; +import { copyReflectMetadata, HTTP_ORIGIN, isWrapped, markWrapped } from './helpers'; import { AttributeNames, NestType } from './enums'; /** @@ -33,7 +33,7 @@ export function getAppCreationSpanOptions( op: `${NestType.APP_CREATION}.nestjs`, attributes: { component: NESTJS_COMPONENT, - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: httpOrigin(), + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: HTTP_ORIGIN, [AttributeNames.TYPE]: NestType.APP_CREATION, [AttributeNames.VERSION]: moduleVersion || undefined, [AttributeNames.MODULE]: moduleName || undefined, @@ -53,7 +53,7 @@ export function wrapRouteHandler(callback: AnyFn, moduleVersion?: string): AnyFn const spanName = callback.name || 'anonymous nest handler'; const attributes: SpanAttributes = { component: NESTJS_COMPONENT, - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: httpOrigin(), + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: HTTP_ORIGIN, [AttributeNames.TYPE]: NestType.REQUEST_HANDLER, [AttributeNames.CALLBACK]: callback.name, [AttributeNames.VERSION]: moduleVersion || undefined, @@ -88,7 +88,7 @@ export function wrapRequestContextHandler( const httpRoute = req.route?.path || req.routeOptions?.url || req.routerPath; const attributes: SpanAttributes = { component: NESTJS_COMPONENT, - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: httpOrigin(), + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: HTTP_ORIGIN, [AttributeNames.TYPE]: NestType.REQUEST_CONTEXT, [AttributeNames.CONTROLLER]: instanceName, [AttributeNames.CALLBACK]: callbackName, diff --git a/packages/nestjs/test/integrations/orchestrion-subscriber.test.ts b/packages/nestjs/test/integrations/orchestrion-subscriber.test.ts index 90a7937449d1..b506ab153f06 100644 --- a/packages/nestjs/test/integrations/orchestrion-subscriber.test.ts +++ b/packages/nestjs/test/integrations/orchestrion-subscriber.test.ts @@ -148,7 +148,7 @@ describe('NestJS orchestrion subscriber: app_creation', () => { const json = spanToJSON(span!); expect(json.description).toBe('Create Nest App'); expect(json.op).toBe('app_creation.nestjs'); - expect(json.origin).toBe('auto.http.orchestrion.nestjs'); + expect(json.origin).toBe('auto.http.nestjs'); expect(json.data).toMatchObject({ component: '@nestjs/core', 'nestjs.type': 'app_creation', @@ -242,7 +242,7 @@ describe('NestJS orchestrion subscriber: request_context / request_handler', () expect(contextSpanJson).toBeDefined(); expect(contextSpanJson!.description).toBe('CatsController.getCats'); expect(contextSpanJson!.op).toBe('request_context.nestjs'); - expect(contextSpanJson!.origin).toBe('auto.http.orchestrion.nestjs'); + expect(contextSpanJson!.origin).toBe('auto.http.nestjs'); expect(contextSpanJson!.data).toMatchObject({ component: '@nestjs/core', 'nestjs.type': 'request_context', @@ -279,7 +279,7 @@ describe('NestJS orchestrion subscriber: request_context / request_handler', () expect(handlerSpanJson).toBeDefined(); expect(handlerSpanJson!.description).toBe('getCats'); expect(handlerSpanJson!.op).toBe('handler.nestjs'); - expect(handlerSpanJson!.origin).toBe('auto.http.orchestrion.nestjs'); + expect(handlerSpanJson!.origin).toBe('auto.http.nestjs'); expect(handlerSpanJson!.data).toMatchObject({ component: '@nestjs/core', 'nestjs.type': 'handler', @@ -355,7 +355,7 @@ describe('NestJS orchestrion subscriber: @Injectable (middleware/guard/pipe/inte const json = spanToJSON(spanInside!); expect(json.description).toBe('LoggerMiddleware'); expect(json.op).toBe('middleware.nestjs'); - expect(json.origin).toBe('auto.middleware.orchestrion.nestjs'); + expect(json.origin).toBe('auto.middleware.nestjs'); // startSpanManual span ends when the proxied `next` is called. expect(json.timestamp).toBeDefined(); }); @@ -378,7 +378,7 @@ describe('NestJS orchestrion subscriber: @Injectable (middleware/guard/pipe/inte const json = spanToJSON(spanInside!); expect(json.description).toBe('AuthGuard'); expect(json.op).toBe('middleware.nestjs'); - expect(json.origin).toBe('auto.middleware.orchestrion.nestjs.guard'); + expect(json.origin).toBe('auto.middleware.nestjs.guard'); }); it('pipe: wraps `transform` in a span and preserves its return value', () => { @@ -399,7 +399,7 @@ describe('NestJS orchestrion subscriber: @Injectable (middleware/guard/pipe/inte const json = spanToJSON(spanInside!); expect(json.description).toBe('ParseIntPipe'); expect(json.op).toBe('middleware.nestjs'); - expect(json.origin).toBe('auto.middleware.orchestrion.nestjs.pipe'); + expect(json.origin).toBe('auto.middleware.nestjs.pipe'); }); it('interceptor: opens a before-span (ended at next.handle) and instruments the returned observable', () => { @@ -433,7 +433,7 @@ describe('NestJS orchestrion subscriber: @Injectable (middleware/guard/pipe/inte const beforeJson = spanToJSON(beforeSpan!); expect(beforeJson.description).toBe('LoggingInterceptor'); expect(beforeJson.op).toBe('middleware.nestjs'); - expect(beforeJson.origin).toBe('auto.middleware.orchestrion.nestjs.interceptor'); + expect(beforeJson.origin).toBe('auto.middleware.nestjs.interceptor'); // before-span ends when `next.handle()` is called. expect(beforeJson.timestamp).toBeDefined(); @@ -660,7 +660,7 @@ describe('NestJS orchestrion subscriber: @Catch (exception filter)', () => { const json = spanToJSON(spanInside!); expect(json.description).toBe('HttpExceptionFilter'); expect(json.op).toBe('middleware.nestjs'); - expect(json.origin).toBe('auto.middleware.orchestrion.nestjs.exception_filter'); + expect(json.origin).toBe('auto.middleware.nestjs.exception_filter'); }); it('does not open a span when exception or host is absent', () => { @@ -715,7 +715,7 @@ describe('NestJS orchestrion subscriber: @Catch (exception filter)', () => { const json = spanToJSON(spanInside!); expect(json.description).toBe('HttpExceptionFilter'); expect(json.op).toBe('middleware.nestjs'); - expect(json.origin).toBe('auto.middleware.orchestrion.nestjs.exception_filter'); + expect(json.origin).toBe('auto.middleware.nestjs.exception_filter'); }); it('still wraps `catch` when the @Catch channel fired first (dual @Injectable @Catch filter)', () => { @@ -739,7 +739,7 @@ describe('NestJS orchestrion subscriber: @Catch (exception filter)', () => { const json = spanToJSON(spanInside!); expect(json.description).toBe('HttpExceptionFilter'); expect(json.op).toBe('middleware.nestjs'); - expect(json.origin).toBe('auto.middleware.orchestrion.nestjs.exception_filter'); + expect(json.origin).toBe('auto.middleware.nestjs.exception_filter'); }); // A (contrived) class that is BOTH a guard (`canActivate`) and an @@ -776,8 +776,8 @@ describe('NestJS orchestrion subscriber: @Catch (exception filter)', () => { expect(new GuardAndFilter().canActivate({ ctx: true })).toBe(true); expect(new GuardAndFilter().catch('boom', { switchToHttp: () => ({}) })).toBe('handled:boom'); - expect(spanToJSON(guardSpan!).origin).toBe('auto.middleware.orchestrion.nestjs.guard'); - expect(spanToJSON(filterSpan!).origin).toBe('auto.middleware.orchestrion.nestjs.exception_filter'); + expect(spanToJSON(guardSpan!).origin).toBe('auto.middleware.nestjs.guard'); + expect(spanToJSON(filterSpan!).origin).toBe('auto.middleware.nestjs.exception_filter'); }); } }); @@ -873,7 +873,7 @@ describe('NestJS orchestrion subscriber: schedule / event / bullmq', () => { const json = spanToJSON(spanInside!); expect(json.description).toBe('event user.created'); expect(json.op).toBe('event.nestjs'); - expect(json.origin).toBe('auto.event.orchestrion.nestjs'); + expect(json.origin).toBe('auto.event.nestjs'); }); it('bullmq @Processor: patches `process` into a queue.process transaction (string queue name)', async () => { @@ -903,7 +903,7 @@ describe('NestJS orchestrion subscriber: schedule / event / bullmq', () => { const json = spanToJSON(spanInside!); expect(json.description).toBe('emails process'); expect(json.op).toBe('queue.process'); - expect(json.origin).toBe('auto.queue.orchestrion.nestjs.bullmq'); + expect(json.origin).toBe('auto.queue.nestjs.bullmq'); expect(json.data).toMatchObject({ 'messaging.system': 'bullmq', 'messaging.destination.name': 'emails', diff --git a/packages/nestjs/test/integrations/span-origin.test.ts b/packages/nestjs/test/integrations/span-origin.test.ts index e4090b4b916c..8eba4fb68e18 100644 --- a/packages/nestjs/test/integrations/span-origin.test.ts +++ b/packages/nestjs/test/integrations/span-origin.test.ts @@ -4,7 +4,7 @@ import { getBullMQProcessSpanOptions, getEventSpanOptions, getMiddlewareSpanOptions, - httpOrigin, + HTTP_ORIGIN, } from '../../src/integrations/helpers'; function middlewareOrigin(componentType?: string): unknown { @@ -19,14 +19,14 @@ function bullmqOrigin(): unknown { return getBullMQProcessSpanOptions('q').attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]; } -describe('NestJS span origins', () => { - it('emits origins', () => { - expect(httpOrigin()).toBe('auto.http.orchestrion.nestjs'); - expect(middlewareOrigin()).toBe('auto.middleware.orchestrion.nestjs'); - expect(middlewareOrigin('guard')).toBe('auto.middleware.orchestrion.nestjs.guard'); - expect(middlewareOrigin('interceptor')).toBe('auto.middleware.orchestrion.nestjs.interceptor'); - expect(middlewareOrigin('pipe')).toBe('auto.middleware.orchestrion.nestjs.pipe'); - expect(eventOrigin()).toBe('auto.event.orchestrion.nestjs'); - expect(bullmqOrigin()).toBe('auto.queue.orchestrion.nestjs.bullmq'); +describe('NestJS span origin', () => { + it('emits the nestjs origins', () => { + expect(HTTP_ORIGIN).toBe('auto.http.nestjs'); + expect(middlewareOrigin()).toBe('auto.middleware.nestjs'); + expect(middlewareOrigin('guard')).toBe('auto.middleware.nestjs.guard'); + expect(middlewareOrigin('interceptor')).toBe('auto.middleware.nestjs.interceptor'); + expect(middlewareOrigin('pipe')).toBe('auto.middleware.nestjs.pipe'); + expect(eventOrigin()).toBe('auto.event.nestjs'); + expect(bullmqOrigin()).toBe('auto.queue.nestjs.bullmq'); }); }); diff --git a/packages/remix/src/server/integrations/tracing-channel.ts b/packages/remix/src/server/integrations/tracing-channel.ts index 4b14e4b2aeca..403332f87cee 100644 --- a/packages/remix/src/server/integrations/tracing-channel.ts +++ b/packages/remix/src/server/integrations/tracing-channel.ts @@ -24,7 +24,7 @@ import { } from '@sentry/conventions/attributes'; import { remixChannels } from '@sentry/server-utils/orchestrion'; -const ORIGIN = 'auto.http.orchestrion.remix'; +const ORIGIN = 'auto.http.remix'; const NOOP = (): void => {}; diff --git a/packages/remix/test/server/tracing-channel.test.ts b/packages/remix/test/server/tracing-channel.test.ts index 59255cec8cc5..bbd663e5ed78 100644 --- a/packages/remix/test/server/tracing-channel.test.ts +++ b/packages/remix/test/server/tracing-channel.test.ts @@ -45,7 +45,7 @@ describe('remixIntegration (Orchestrion-based)', () => { expect.objectContaining({ name: 'GET /users', attributes: expect.objectContaining({ - 'sentry.origin': 'auto.http.orchestrion.remix', + 'sentry.origin': 'auto.http.remix', 'sentry.kind': 'server', 'sentry.op': 'http.server', 'sentry.source': 'url', @@ -101,7 +101,7 @@ describe('remixIntegration (Orchestrion-based)', () => { expect.objectContaining({ name: 'LOADER routes/users.$userId', attributes: expect.objectContaining({ - 'sentry.origin': 'auto.http.orchestrion.remix', + 'sentry.origin': 'auto.http.remix', 'sentry.op': 'loader.remix', 'code.function': 'loader', 'http.method': 'GET', diff --git a/packages/server-utils/src/integrations/tracing-channel/amqplib.ts b/packages/server-utils/src/integrations/tracing-channel/amqplib.ts index ac5219d5e3de..e1eebdfe260a 100644 --- a/packages/server-utils/src/integrations/tracing-channel/amqplib.ts +++ b/packages/server-utils/src/integrations/tracing-channel/amqplib.ts @@ -36,8 +36,8 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // When enabled, the OTel 'Amqplib' integration is omitted from the default set. const INTEGRATION_NAME = 'Amqplib' as const; -const PUBLISHER_ORIGIN = 'auto.amqplib.orchestrion.publisher'; -const CONSUMER_ORIGIN = 'auto.amqplib.orchestrion.consumer'; +const PUBLISHER_ORIGIN = 'auto.amqplib.publisher'; +const CONSUMER_ORIGIN = 'auto.amqplib.consumer'; // Legacy messaging semantic-conventions, inlined to keep this integration free of `@opentelemetry/*` // deps. These mirror what the vendored OTel amqplib instrumentation has always emitted. We keep diff --git a/packages/server-utils/src/integrations/tracing-channel/anthropic.ts b/packages/server-utils/src/integrations/tracing-channel/anthropic.ts index ba5bfd4dc6d1..dfebcbaa72aa 100644 --- a/packages/server-utils/src/integrations/tracing-channel/anthropic.ts +++ b/packages/server-utils/src/integrations/tracing-channel/anthropic.ts @@ -24,9 +24,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // integration is deduplicated out of the default set. const INTEGRATION_NAME = 'Anthropic_AI' as const; -// Distinct from the proxy's `auto.ai.anthropic` so spans from the orchestrion path -// are attributable separately from the OTel/proxy one. -const ORIGIN = 'auto.ai.orchestrion.anthropic'; +const ORIGIN = 'auto.ai.anthropic'; // `stream` determines how the span is ended const INSTRUMENTED_CHANNELS = [ diff --git a/packages/server-utils/src/integrations/tracing-channel/aws-sdk/constants.ts b/packages/server-utils/src/integrations/tracing-channel/aws-sdk/constants.ts index 1f6fc9b28031..96aff7cf5bb6 100644 --- a/packages/server-utils/src/integrations/tracing-channel/aws-sdk/constants.ts +++ b/packages/server-utils/src/integrations/tracing-channel/aws-sdk/constants.ts @@ -5,8 +5,8 @@ * obsolete OTel conventions with no `@sentry/conventions` export. */ -/** The span origin every aws-sdk channel span carries, mirroring the uniform OTel `auto.otel.aws`. */ -export const AWS_SDK_ORIGIN = 'auto.aws.orchestrion.aws_sdk'; +/** The span origin every aws-sdk channel span carries. */ +export const AWS_SDK_ORIGIN = 'auto.aws.aws_sdk'; /** DynamoDB `db.system` value (an attribute value, not a key, so not covered by conventions). */ export const DB_SYSTEM_VALUE_DYNAMODB = 'dynamodb'; diff --git a/packages/server-utils/src/integrations/tracing-channel/aws-sdk/index.ts b/packages/server-utils/src/integrations/tracing-channel/aws-sdk/index.ts index d33bb8ba171c..ff5c4a5d9494 100644 --- a/packages/server-utils/src/integrations/tracing-channel/aws-sdk/index.ts +++ b/packages/server-utils/src/integrations/tracing-channel/aws-sdk/index.ts @@ -253,7 +253,7 @@ const _awsIntegration = (() => { * * Subscribes to the `orchestrion:@smithy/smithy-client:send` (and equivalent) diagnostics_channel * the orchestrion code transform injects into the AWS SDK's smithy `Client.prototype.send`, emitting - * spans identical to the OTel `@opentelemetry/instrumentation-aws-sdk` integration (with a distinct - * `auto.aws.orchestrion.aws_sdk` origin). Requires the orchestrion runtime hook or bundler plugin. + * spans identical to the OTel `@opentelemetry/instrumentation-aws-sdk` integration. Requires the + * orchestrion runtime hook or bundler plugin. */ export const awsIntegration = defineIntegration(_awsIntegration); diff --git a/packages/server-utils/src/integrations/tracing-channel/dataloader.ts b/packages/server-utils/src/integrations/tracing-channel/dataloader.ts index 8f687f9799af..854ed8247a96 100644 --- a/packages/server-utils/src/integrations/tracing-channel/dataloader.ts +++ b/packages/server-utils/src/integrations/tracing-channel/dataloader.ts @@ -20,7 +20,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; const INTEGRATION_NAME = 'Dataloader' as const; const MODULE_NAME = 'dataloader'; -const ORIGIN = 'auto.db.orchestrion.dataloader'; +const ORIGIN = 'auto.db.dataloader'; // `load`, `loadMany` and `batch` are cache reads; the rest are cache mutations that get no `op`. const CACHE_GET_OP = 'cache.get'; diff --git a/packages/server-utils/src/integrations/tracing-channel/firebase/firestore.ts b/packages/server-utils/src/integrations/tracing-channel/firebase/firestore.ts index 3075e581b2bf..a7f64a7f1859 100644 --- a/packages/server-utils/src/integrations/tracing-channel/firebase/firestore.ts +++ b/packages/server-utils/src/integrations/tracing-channel/firebase/firestore.ts @@ -14,8 +14,7 @@ import type { FirebaseApp, FirebaseOptions, FirestoreReference, FirestoreSetting /** * Opens the inactive `db.query` span for a Firestore operation. `bindTracingChannelToSpan` makes it the - * active span for the traced call and ends it when the call settles. Mirrors the OTel integration's span, - * with a distinct `auto.firebase.orchestrion.firestore` origin. + * active span for the traced call and ends it when the call settles. Mirrors the OTel integration's span. */ export function startFirestoreSpan(spanName: string, reference: FirestoreReference): Span { return startInactiveSpan({ @@ -23,7 +22,7 @@ export function startFirestoreSpan(spanName: string, reference: FirestoreReferen op: 'db.query', attributes: { [SENTRY_KIND]: 'client', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.firebase.orchestrion.firestore', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.firebase.firestore', [DB_OPERATION_NAME]: spanName, ...buildAttributes(reference), }, diff --git a/packages/server-utils/src/integrations/tracing-channel/firebase/functions.ts b/packages/server-utils/src/integrations/tracing-channel/firebase/functions.ts index 07501358bfca..1f38cae1c3c3 100644 --- a/packages/server-utils/src/integrations/tracing-channel/firebase/functions.ts +++ b/packages/server-utils/src/integrations/tracing-channel/firebase/functions.ts @@ -9,7 +9,7 @@ import { startSpanManual, } from '@sentry/core'; -const FUNCTIONS_ORIGIN = 'auto.firebase.orchestrion.functions'; +const FUNCTIONS_ORIGIN = 'auto.firebase.functions'; // Set on a wrapped handler so re-entrant `start` events don't double-wrap it. const WRAPPED = '__sentryFirebaseWrapped'; diff --git a/packages/server-utils/src/integrations/tracing-channel/firebase/index.ts b/packages/server-utils/src/integrations/tracing-channel/firebase/index.ts index c74d37a62f0b..c736b8e82729 100644 --- a/packages/server-utils/src/integrations/tracing-channel/firebase/index.ts +++ b/packages/server-utils/src/integrations/tracing-channel/firebase/index.ts @@ -27,7 +27,6 @@ const _firebaseIntegration = (() => { * Subscribes to the `orchestrion:@firebase/firestore:*` and `orchestrion:firebase-functions:*` * diagnostics_channels the orchestrion code transform injects into firestore's `addDoc`/`getDocs`/ * `setDoc`/`deleteDoc` and firebase-functions' `onX` registration functions, emitting spans identical - * to the OTel integration — with a distinct `auto.firebase.orchestrion.*` origin. Requires the - * orchestrion runtime hook or bundler plugin. + * to the OTel integration. Requires the orchestrion runtime hook or bundler plugin. */ export const firebaseIntegration = defineIntegration(_firebaseIntegration); diff --git a/packages/server-utils/src/integrations/tracing-channel/generic-pool.ts b/packages/server-utils/src/integrations/tracing-channel/generic-pool.ts index 8eeac1a744cb..9377c6d6344e 100644 --- a/packages/server-utils/src/integrations/tracing-channel/generic-pool.ts +++ b/packages/server-utils/src/integrations/tracing-channel/generic-pool.ts @@ -46,7 +46,7 @@ function instrumentGenericPool(): void { startInactiveSpan({ name: 'generic-pool.acquire', attributes: { - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.orchestrion.generic_pool', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.generic_pool', }, }), ); diff --git a/packages/server-utils/src/integrations/tracing-channel/google-genai.ts b/packages/server-utils/src/integrations/tracing-channel/google-genai.ts index 9c948f93d404..899e4b377d17 100644 --- a/packages/server-utils/src/integrations/tracing-channel/google-genai.ts +++ b/packages/server-utils/src/integrations/tracing-channel/google-genai.ts @@ -25,9 +25,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // integration is deduplicated out of the default set. const INTEGRATION_NAME = 'Google_GenAI' as const; -// Distinct from the proxy's `auto.ai.google_genai` so spans from the orchestrion path -// are attributable separately from the OTel/proxy one. -const ORIGIN = 'auto.ai.orchestrion.google_genai'; +const ORIGIN = 'auto.ai.google_genai'; // Each instrumented method maps to the gen_ai operation its span reports. const INSTRUMENTED_CHANNELS = [ diff --git a/packages/server-utils/src/integrations/tracing-channel/hapi-utils.ts b/packages/server-utils/src/integrations/tracing-channel/hapi-utils.ts index 67c1ac0e1a45..7bb9b7944232 100644 --- a/packages/server-utils/src/integrations/tracing-channel/hapi-utils.ts +++ b/packages/server-utils/src/integrations/tracing-channel/hapi-utils.ts @@ -110,7 +110,7 @@ function startMetadataSpan(metadata: SpanMetadata, original: () => unknown): unk op: `${metadata.attributes[AttributeNames.HAPI_TYPE]}.hapi`, attributes: { ...metadata.attributes, - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.orchestrion.hapi', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.hapi', }, }, original, diff --git a/packages/server-utils/src/integrations/tracing-channel/ioredis.ts b/packages/server-utils/src/integrations/tracing-channel/ioredis.ts index 09ea15140954..ef0ef9a8ed02 100644 --- a/packages/server-utils/src/integrations/tracing-channel/ioredis.ts +++ b/packages/server-utils/src/integrations/tracing-channel/ioredis.ts @@ -22,7 +22,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // only its ioredis monkey-patch is gated off in the node SDK when this is active. const INTEGRATION_NAME = 'IORedis' as const; -const ORIGIN = 'auto.db.orchestrion.redis'; +const ORIGIN = 'auto.db.redis'; // todo(v11): Let's drop this as this is already covered with host and port const ATTR_DB_CONNECTION_STRING = 'db.connection_string'; diff --git a/packages/server-utils/src/integrations/tracing-channel/kafkajs/spans.ts b/packages/server-utils/src/integrations/tracing-channel/kafkajs/spans.ts index 08e862f90d54..66dca8269c42 100644 --- a/packages/server-utils/src/integrations/tracing-channel/kafkajs/spans.ts +++ b/packages/server-utils/src/integrations/tracing-channel/kafkajs/spans.ts @@ -6,8 +6,7 @@ * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-kafkajs * - Upstream version: @opentelemetry/instrumentation-kafkajs@0.27.0 * - Span builders migrated to the `@sentry/core` span API. Kept byte-identical in span name/attributes - * for parity with the OTel integration this replaces; only the origin changes to - * `auto.kafkajs.orchestrion.*` to mark the injection path. + * for parity with the OTel integration this replaces. */ import { @@ -38,8 +37,8 @@ import { MESSAGING_SYSTEM_VALUE_KAFKA, } from './semconv'; -const PRODUCER_ORIGIN = 'auto.kafkajs.orchestrion.producer'; -const CONSUMER_ORIGIN = 'auto.kafkajs.orchestrion.consumer'; +const PRODUCER_ORIGIN = 'auto.kafkajs.producer'; +const CONSUMER_ORIGIN = 'auto.kafkajs.consumer'; // `@opentelemetry/api` `TraceFlags`, inlined to avoid an OTel dep: SAMPLED = 0x1, NONE = 0x0. const TRACE_FLAG_SAMPLED = 1; diff --git a/packages/server-utils/src/integrations/tracing-channel/knex.ts b/packages/server-utils/src/integrations/tracing-channel/knex.ts index 870f63d56740..8e781b460f0f 100644 --- a/packages/server-utils/src/integrations/tracing-channel/knex.ts +++ b/packages/server-utils/src/integrations/tracing-channel/knex.ts @@ -32,7 +32,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // NOTE: this uses the same name as the OTel integration by design. `@sentry/node`'s `knexIntegration` // picks this subscriber over the vendored OTel path when orchestrion injection is active. const INTEGRATION_NAME = 'Knex' as const; -const ORIGIN = 'auto.db.orchestrion.knex'; +const ORIGIN = 'auto.db.knex'; // Max length of the query text captured in `db.statement`; "..." is appended when truncated, so the // truncated statement caps at 1024 chars (1 KiB), matching `@opentelemetry/instrumentation-knex`. diff --git a/packages/server-utils/src/integrations/tracing-channel/koa.ts b/packages/server-utils/src/integrations/tracing-channel/koa.ts index c89104d56105..0efcd75623ba 100644 --- a/packages/server-utils/src/integrations/tracing-channel/koa.ts +++ b/packages/server-utils/src/integrations/tracing-channel/koa.ts @@ -18,7 +18,7 @@ import { setHttpServerSpanRouteAttribute } from '../../utils/setHttpServerSpanRo // Same name as the OTel integration. When enabled, the OTel 'Koa' integration is omitted from the default set. const INTEGRATION_NAME = 'Koa' as const; -const ORIGIN = 'auto.http.orchestrion.koa'; +const ORIGIN = 'auto.http.koa'; const LAYER_TYPE = { ROUTER: 'router', diff --git a/packages/server-utils/src/integrations/tracing-channel/mongodb.ts b/packages/server-utils/src/integrations/tracing-channel/mongodb.ts index f1ec717a8f3b..ecd641062c49 100644 --- a/packages/server-utils/src/integrations/tracing-channel/mongodb.ts +++ b/packages/server-utils/src/integrations/tracing-channel/mongodb.ts @@ -13,7 +13,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; const INTEGRATION_NAME = 'Mongo' as const; -const ORIGIN = 'auto.db.orchestrion.mongo'; +const ORIGIN = 'auto.db.mongo'; /** * what orchestrion's transform attaches to a channel context: diff --git a/packages/server-utils/src/integrations/tracing-channel/mongoose.ts b/packages/server-utils/src/integrations/tracing-channel/mongoose.ts index ad0460515912..9bbf63a72ce2 100644 --- a/packages/server-utils/src/integrations/tracing-channel/mongoose.ts +++ b/packages/server-utils/src/integrations/tracing-channel/mongoose.ts @@ -12,10 +12,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; const INTEGRATION_NAME = 'Mongoose' as const; -// Origin distinguishes the orchestrion path from the OTel/IITM path -// (`auto.db.otel.mongoose`) and the native diagnostics_channel path -// (`auto.db.mongoose.diagnostic_channel`). -const ORIGIN = 'auto.db.orchestrion.mongoose'; +const ORIGIN = 'auto.db.mongoose'; interface MongooseQuery { mongooseCollection?: MongooseLegacyCollection; diff --git a/packages/server-utils/src/integrations/tracing-channel/mysql.ts b/packages/server-utils/src/integrations/tracing-channel/mysql.ts index 1dee309c6c51..1647e5cf2f9b 100644 --- a/packages/server-utils/src/integrations/tracing-channel/mysql.ts +++ b/packages/server-utils/src/integrations/tracing-channel/mysql.ts @@ -88,7 +88,7 @@ const _mysqlIntegration = (() => { attributes: { [SENTRY_KIND]: 'client', [ATTR_DB_SYSTEM]: 'mysql', - [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.orchestrion.mysql', + [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.mysql', [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, portIsNumber ? portNumber : undefined, database), ...(database ? { [ATTR_DB_NAME]: database } : {}), ...(user ? { [ATTR_DB_USER]: user } : {}), diff --git a/packages/server-utils/src/integrations/tracing-channel/mysql2.ts b/packages/server-utils/src/integrations/tracing-channel/mysql2.ts index 01adf35982ad..836d2cdd471b 100644 --- a/packages/server-utils/src/integrations/tracing-channel/mysql2.ts +++ b/packages/server-utils/src/integrations/tracing-channel/mysql2.ts @@ -23,7 +23,7 @@ import { } from '@sentry/conventions/attributes'; const INTEGRATION_NAME = 'Mysql2' as const; -const ORIGIN = 'auto.db.orchestrion.mysql2'; +const ORIGIN = 'auto.db.mysql2'; const DB_SYSTEM_VALUE_MYSQL = 'mysql'; /** diff --git a/packages/server-utils/src/integrations/tracing-channel/openai.ts b/packages/server-utils/src/integrations/tracing-channel/openai.ts index a1a38994706f..1e2b39fe2bcd 100644 --- a/packages/server-utils/src/integrations/tracing-channel/openai.ts +++ b/packages/server-utils/src/integrations/tracing-channel/openai.ts @@ -22,9 +22,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // integration is deduplicated out of the default set. const INTEGRATION_NAME = 'OpenAI' as const; -// Distinct from the proxy's `auto.ai.openai` so spans from the orchestrion path -// are attributable separately from the OTel/proxy one. -const ORIGIN = 'auto.ai.orchestrion.openai'; +const ORIGIN = 'auto.ai.openai'; // Each instrumented `create` method maps to the gen_ai operation its span reports. const INSTRUMENTED_CHANNELS = [ diff --git a/packages/server-utils/src/integrations/tracing-channel/postgres-js.ts b/packages/server-utils/src/integrations/tracing-channel/postgres-js.ts index 0c7855cc9a82..e8183e187d1e 100644 --- a/packages/server-utils/src/integrations/tracing-channel/postgres-js.ts +++ b/packages/server-utils/src/integrations/tracing-channel/postgres-js.ts @@ -22,7 +22,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // integration of the same name is deduplicated out of the default set. const INTEGRATION_NAME = 'PostgresJs' as const; -const ORIGIN = 'auto.db.orchestrion.postgresjs'; +const ORIGIN = 'auto.db.postgresjs'; // Not part of `@sentry/conventions`, so we keep it inline (matches the OTel `PostgresJsInstrumentation`). const DB_RESPONSE_STATUS_CODE = 'db.response.status_code'; diff --git a/packages/server-utils/src/integrations/tracing-channel/postgres.ts b/packages/server-utils/src/integrations/tracing-channel/postgres.ts index 8bdd5965c782..ab0f75983482 100644 --- a/packages/server-utils/src/integrations/tracing-channel/postgres.ts +++ b/packages/server-utils/src/integrations/tracing-channel/postgres.ts @@ -21,7 +21,7 @@ const INTEGRATION_NAME = 'Postgres' as const; // Only the query span carries an origin (the connect/pool-connect spans don't, // so they default to 'manual'). -const ORIGIN = 'auto.db.orchestrion.postgres'; +const ORIGIN = 'auto.db.postgres'; // OpenTelemetry "OLD" db/net semantic-conventions, inlined to keep this // integration free of `@opentelemetry/*` deps. diff --git a/packages/server-utils/src/integrations/tracing-channel/redis.ts b/packages/server-utils/src/integrations/tracing-channel/redis.ts index c35b32aa9407..3edcd8f4f8e9 100644 --- a/packages/server-utils/src/integrations/tracing-channel/redis.ts +++ b/packages/server-utils/src/integrations/tracing-channel/redis.ts @@ -38,7 +38,7 @@ import { bindTracingChannelToSpan } from '../../tracing-channel'; // is fully gated off in the node SDK. const INTEGRATION_NAME = 'RedisChannel' as const; -const ORIGIN = 'auto.db.orchestrion.redis'; +const ORIGIN = 'auto.db.redis'; // todo(v11): drop this — it is already covered by host and port. const ATTR_DB_CONNECTION_STRING = 'db.connection_string'; diff --git a/packages/server-utils/src/integrations/tracing-channel/tedious.ts b/packages/server-utils/src/integrations/tracing-channel/tedious.ts index 76def3062b50..e2a313ccff29 100644 --- a/packages/server-utils/src/integrations/tracing-channel/tedious.ts +++ b/packages/server-utils/src/integrations/tracing-channel/tedious.ts @@ -28,7 +28,7 @@ import { CHANNELS } from '../../orchestrion/channels'; // NOTE: this uses the same name as the OTel integration by design. When orchestrion injection is active, // `_init` swaps the OTel `Tedious` integration out of the defaults and appends this one (matched by name). const INTEGRATION_NAME = 'Tedious' as const; -const ORIGIN = 'auto.db.orchestrion.tedious'; +const ORIGIN = 'auto.db.tedious'; // OTel db/net semantic-convention values/keys not exported by `@sentry/conventions`, inlined to match // what `@opentelemetry/instrumentation-tedious` emitted. diff --git a/packages/server-utils/src/mongoose/mongoose-legacy-span.ts b/packages/server-utils/src/mongoose/mongoose-legacy-span.ts index a2d133c517e3..9254d6d704fb 100644 --- a/packages/server-utils/src/mongoose/mongoose-legacy-span.ts +++ b/packages/server-utils/src/mongoose/mongoose-legacy-span.ts @@ -23,7 +23,6 @@ export interface StartMongooseLegacySpanOptions { collection: MongooseLegacyCollection | undefined; modelName: string | undefined; operation: string; - /** Span origin: distinguishes the OTel/IITM caller from orchestrion */ origin: string; parentSpan?: Span; } diff --git a/packages/server-utils/test/integrations/tracing-channel/ioredis.test.ts b/packages/server-utils/test/integrations/tracing-channel/ioredis.test.ts index 9ba064e6e309..c7d6008b3de5 100644 --- a/packages/server-utils/test/integrations/tracing-channel/ioredis.test.ts +++ b/packages/server-utils/test/integrations/tracing-channel/ioredis.test.ts @@ -33,7 +33,7 @@ describe('startIORedisCommandSpan', () => { 'net.peer.name': 'localhost', 'net.peer.port': 6379, 'db.statement': 'set test-key [1 other arguments]', - 'sentry.origin': 'auto.db.orchestrion.redis', + 'sentry.origin': 'auto.db.redis', }), }), ); diff --git a/packages/server-utils/test/orchestrion/firebase.test.ts b/packages/server-utils/test/orchestrion/firebase.test.ts index 66c0e962020a..63fc02eafd05 100644 --- a/packages/server-utils/test/orchestrion/firebase.test.ts +++ b/packages/server-utils/test/orchestrion/firebase.test.ts @@ -45,7 +45,7 @@ describe('startFirestoreSpan', () => { name: 'addDoc cities', op: 'db.query', attributes: expect.objectContaining({ - 'sentry.origin': 'auto.firebase.orchestrion.firestore', + 'sentry.origin': 'auto.firebase.firestore', 'db.operation.name': 'addDoc', 'db.collection.name': 'cities', 'db.namespace': '[DEFAULT]', @@ -109,7 +109,7 @@ describe('wrapFunctionsRegistration', () => { name: 'firebase.function.http.request', op: 'function.firebase', attributes: expect.objectContaining({ - 'sentry.origin': 'auto.firebase.orchestrion.functions', + 'sentry.origin': 'auto.firebase.functions', 'faas.trigger': 'http.request', 'faas.provider': 'firebase', }), @@ -146,7 +146,7 @@ describe('wrapFunctionsRegistration', () => { expect(captureExceptionSpy).toHaveBeenCalledWith( error, expect.objectContaining({ - mechanism: expect.objectContaining({ type: 'auto.firebase.orchestrion.functions' }), + mechanism: expect.objectContaining({ type: 'auto.firebase.functions' }), }), ); expect(span.end).toHaveBeenCalledTimes(1); diff --git a/packages/server-utils/test/orchestrion/postgres.test.ts b/packages/server-utils/test/orchestrion/postgres.test.ts index 6d9eba65d4d0..42a965296922 100644 --- a/packages/server-utils/test/orchestrion/postgres.test.ts +++ b/packages/server-utils/test/orchestrion/postgres.test.ts @@ -124,7 +124,7 @@ describe('postgresIntegration', () => { 'net.peer.port': 5432, 'db.connection_string': 'postgresql://localhost:5432/tests', 'db.statement': 'SELECT * FROM "User"', - 'sentry.origin': 'auto.db.orchestrion.postgres', + 'sentry.origin': 'auto.db.postgres', }), }), ); @@ -147,7 +147,7 @@ describe('postgresIntegration', () => { attributes: expect.objectContaining({ 'db.statement': 'SELECT * FROM "User" WHERE "email" = $1', 'db.postgresql.plan': 'select-user-by-email', - 'sentry.origin': 'auto.db.orchestrion.postgres', + 'sentry.origin': 'auto.db.postgres', }), }), );