Skip to content

feat(names): Add span name rules for rpc spans - #714

Merged
pabloDeputter merged 7 commits into
mainfrom
pablo/aws-rpc-span-names
Oct 20, 2026
Merged

pabloDeputter merged 7 commits into
mainfrom
pablo/aws-rpc-span-names

Conversation

@pabloDeputter

@pabloDeputter pabloDeputter commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Description

Add span name rules for rpc spans; follows OTel semconv:

Added additional context to the rpc.service attribute as well since it's deprecated in OTel, but still set on AWS SDK spans.

@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sentry-conventions Ready Ready Preview Oct 20, 2026 8:14am UTC

Request Review

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Semver Impact of This PR

🟡 Minor (new features)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

Attributes

  • Add message_origin as a sentry.link.type value by JPeer264 in #724
  • Add aws.lambda.resource_mapping.id attribute by pabloDeputter in #710
  • Add object to the sentry.category values by pabloDeputter in #721
  • Add http.request.duration by loewenheim in #697

Names

  • Add span name rules for rpc spans by pabloDeputter in #714
  • Add queue.publish/create/receive/process/settle to messaging span names by pabloDeputter in #705

Other

  • (ops) Add object.copy op by pabloDeputter in #706
  • Add view.render op by alexander-alderman-webb in #699

Bug Fixes 🐛

  • (attributes) Apply consistent scrubbing across deprecations by mjq in #692

Documentation 📚

  • Clarify cache.ttl for 0, no expiry, and reads by s1gr1d in #725

Internal Changes 🔧

  • (attributes) Scrub S3 object keys by default by pabloDeputter in #713
  • (repo) Update CODEOWNERS to include @giortzisg by Lms24 in #708
  • Deprecate gen_ai.responses in favor of gen_ai.chat by alexander-alderman-webb in #703
  • Add deprecated messaging ops set by the Python SDK by alexander-alderman-webb in #693
  • Add view.response.render op, deprecated in favor of view.render by alexander-alderman-webb in #700
  • Add event.django op, deprecated in favor of function by alexander-alderman-webb in #698

🤖 This preview updates automatically when you update the PR.

@pabloDeputter
pabloDeputter marked this pull request as ready for review October 14, 2026 08:11

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 584e7a6. Configure here.

Comment thread model/name/rpc.json

@giortzisg giortzisg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed in person, it might make sense to separate the generic RPC and AWS span names into two different templates. Without the additional context of this PR a person seeing the convention would think that {rpc.service}.{rpc.method} is the default one.

pabloDeputter added a commit to getsentry/sentry-python that referenced this pull request Oct 15, 2026
### Description
boto3 spans now use `sentry.op = rpc` instead of `http.client`. Service
extensions can (and will in the future) provide a more specific op with
`get_span_op()`, e.g. `db` for DynamoDB.

### Why
- boto3 span represents an AWS api call, not an HTTP request; the HTTP
request is already captured as the as the `http.client` child
- JS already also defaults AWS SDK spans to `rpc`

It also lets these spans use new name and description rules in
sentry-conventions, e.g. (getsentry/sentry-conventions#714, #717), e.g.
`Lambda.Invoke billing` instead of `POST https://lambda.…`
@pabloDeputter

Copy link
Copy Markdown
Member Author

As discussed in person, it might make sense to separate the generic RPC and AWS span names into two different templates. Without the additional context of this PR a person seeing the convention would think that {rpc.service}.{rpc.method} is the default one.

An op gets only a single list of templates, so for this to work we would need create an new op, e.g. rpc.aws. Which I think is not really justified and unnecessary. I've expanded the brief to say that the first template is meant for AWS SDK spans and also added some additional context to rpc.service that it's deprecated in OTel for generic RPC spans.

@pabloDeputter
pabloDeputter merged commit 8f06e8d into main Oct 20, 2026
18 checks passed
@pabloDeputter
pabloDeputter deleted the pablo/aws-rpc-span-names branch October 20, 2026 08:17

This branch was successfully deployed

1 active deployment
Preview — 7c79c86d Deployed Oct 20, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants