Repository navigation
Conversation
size-limit report 📦Compared: b30e8d6 (PR test merge using develop at 24186f0) Against: 24186f0 (develop) · base run #63081 ✅ Baseline matches: this diff contains only this PR's changes.
|
The `.diagnostic_channel` suffix on span origins was left over from v10,
where it distinguished these spans from the OTel-based ones. The rest of
the v11 origins already dropped mechanism parts like `.otel` and
`.orchestrion`.
- `auto.graphql.diagnostic_channel` → `auto.graphql.graphql`: graphql
has a single instrumentation path, so the suffix carried no information.
The integration name stays, as in every other
`auto.<category>.<integration>` origin.
- `auto.db.{redis,mysql2,mongoose}.diagnostic_channel` →
`auto.db.{redis,mysql2,mongoose}.native_channel`: these integrations
still have two paths, the library's own tracing channels (newer
versions) and orchestrion-injected channels (older versions, plain
`auto.db.<lib>`). `native_channel` says what the distinction actually
is.
While at it, two origins that were inconsistent with their siblings:
- `auto.http.wintercg_fetch` → `auto.http.fetch`: Bun, Deno and
Cloudflare already use `auto.http.fetch` for the same instrumentation.
- `auto.grpc.serverless` → `auto.grpc.google_cloud`: `serverless` didn't
name the integration.
Spec violations (category, part count) are handled separately in #25602.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Use a span op category as the second origin part, keep origins at most
four parts, and stop encoding the instrumentation mechanism:
- auto.amqplib.* -> auto.queue.amqplib.*
- auto.kafkajs.* -> auto.queue.kafkajs.*
- auto.vercelai.channel -> auto.ai.vercelai
- auto.firebase.firestore -> auto.db.firebase.firestore
- auto.firebase.functions -> auto.function.firebase
- auto.aws.aws_sdk -> auto.rpc.aws_sdk
- auto.aws_lambda -> auto.function.aws_lambda
- auto.mcp.notification -> auto.function.mcp_server.notification
- auto.db.cloudflare.durable_object.sql -> auto.db.cloudflare.durable_object_sql
- auto.http.browser.{lcp,cls,inp} -> auto.ui.browser.{lcp,cls,inp}
Also spell out the origin rules in AGENTS.md and BUGBOT.md so new
origins follow them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
79f052c to
6945fb7
Compare
Optional E2E testsSome optional checks were not successful. They do not block the merge. 3 failing, 61 successful. See the run.
Successful checks
|
Lms24
left a comment
There was a problem hiding this comment.
Nice cleanup, thanks! One open question regarding ai vs. gen_ai but otherwise LGTM!
| - `SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN` (`'sentry.origin'`) with a proper span origin | ||
| - a proper origin must only contain [a-z], [A-Z], [0-9], `_` and `.` characters. | ||
| - a proper origin has at most four parts, `<type>.<category>.<integration_name>.<integration_part>`, and must not skip a part. `type` is `auto` or `manual`. | ||
| - `category` must be a span op category (e.g. `http`, `db`, `queue`, `function`, `ai`, `ui`, `rpc`), matching the span's op. Flag origins that put a library or vendor in the category slot (e.g. `auto.kafkajs.producer` instead of `auto.queue.kafkajs.producer`). |
There was a problem hiding this comment.
| - `category` must be a span op category (e.g. `http`, `db`, `queue`, `function`, `ai`, `ui`, `rpc`), matching the span's op. Flag origins that put a library or vendor in the category slot (e.g. `auto.kafkajs.producer` instead of `auto.queue.kafkajs.producer`). | |
| - `category` must be a span op category (e.g. `http`, `db`, `queue`, `function`, `gen_ai`, `ui`, `rpc`), matching the span's op. Flag origins that put a library or vendor in the category slot (e.g. `auto.kafkajs.producer` instead of `auto.queue.kafkajs.producer`). |
| attributes: expect.objectContaining({ | ||
| 'sentry.op': { type: 'string', value: 'gen_ai.invoke_agent' }, | ||
| 'sentry.origin': { type: 'string', value: 'auto.vercelai.channel' }, | ||
| 'sentry.origin': { type: 'string', value: 'auto.ai.vercelai' }, |
There was a problem hiding this comment.
l/m: if we want to double down on the "the second part must be a span op category", this should be
| 'sentry.origin': { type: 'string', value: 'auto.ai.vercelai' }, | |
| 'sentry.origin': { type: 'string', value: 'auto.gen_ai.vercelai' }, |
|
|
||
| /** The span origin every aws-sdk channel span carries. */ | ||
| export const AWS_SDK_ORIGIN = 'auto.aws.aws_sdk'; | ||
| export const AWS_SDK_ORIGIN = 'auto.rpc.aws_sdk'; |
There was a problem hiding this comment.
A DynamoDB span gets op db but origin auto.rpc.aws_sdk. If the origin category should match the op, that span should be auto.db.aws_sdk, SQS/SNS auto.queue.aws_sdk, and Bedrock auto.ai.aws_sdk.
| attributes: { | ||
| [SENTRY_OP]: FUNCTION_AWS, | ||
| [SENTRY_ORIGIN]: 'auto.aws_lambda', | ||
| [SENTRY_ORIGIN]: 'auto.function.aws_lambda', |
There was a problem hiding this comment.
Should this be auto.function.aws_serverless? The errors from this same handler already use aws_serverless as the name.
Several span origins didn't follow the trace origin spec (
<type>.<category>.<integration_name>.<integration_part>, wherecategoryis a span op category). Most put the library in the category slot, which makes it impossible to group origins by category the way ops are grouped. v11 is already renaming origins (#22722, #23627), so this is the window to fix them.auto.amqplib.{publisher,consumer}auto.queue.amqplib.{publisher,consumer}auto.kafkajs.{producer,consumer}auto.queue.kafkajs.{producer,consumer}auto.vercelai.channelauto.ai.vercelai(matches the otherauto.ai.<provider>origins)auto.firebase.firestoreauto.db.firebase.firestoreauto.firebase.functionsauto.function.firebaseauto.aws.aws_sdkauto.rpc.aws_sdkauto.aws_lambdaauto.function.aws_lambdaauto.mcp.notificationauto.function.mcp_server.notification(sits next toauto.function.mcp_server)auto.db.cloudflare.durable_object.sqlauto.db.cloudflare.durable_object_sql(was five parts)auto.http.browser.{lcp,cls,inp}auto.ui.browser.{lcp,cls,inp}(web vital spans, opui.webvital.*)The Vercel AI exception mechanism type moves along with its origin. AGENTS.md and BUGBOT.md now spell out the category and four-part rules so new origins are checked against them.
🤖 Generated with Claude Code