feat(resource): add resource.deployment.environment#266
Merged
Conversation
We currently have a definition for `resource.deployment.environment.name`, deprecated for `sentry.environment` with a `backfill` policy. That means that incoming spans using the OpenTelemetry conventional attribute `deployment.environment.name` in their span's `resource` will get the value copied to `sentry.environment` in Relay, which makes the environment filters work across the product. `deployment.environment.name` was introduced in OTel's semantic conventions v1.27.0 as a replacement for `deployment.environment`, which was deprecated at that time. One of our customers is still using this deprecated attribute, and I'm sure they're not alone in that. Define `resource.deployment.environment` as a deprecated, backfilled attribute so that clients using it, too will get working environment filters in the product.
Semver Impact of This PR🟡 Minor (new features) 📋 Changelog PreviewThis is how your changes will appear in the changelog. New Features ✨
Bug Fixes 🐛
Documentation 📚
Internal Changes 🔧
🤖 This preview updates automatically when you update the PR. |
|
thanks y'all! |
cleptric
approved these changes
Mar 3, 2026
ericapisani
added a commit
that referenced
this pull request
Mar 4, 2026
Add a changelog field to attribute JSON files that tracks how each attribute has changed across sentry-conventions release versions. This includes the schema extension, a generation script that derives changelog entries from git tags and commit history, updates to both TypeScript and Python code generators, docs UI rendering, and validation tests. Co-Authored-By: Claude <noreply@anthropic.com> * style: Fix biome formatting and lint errors Run biome formatter across all JSON model files to inline short arrays, and replace non-null assertions with optional chaining or type casts to satisfy biome's noNonNullAssertion rule. Co-Authored-By: Claude <noreply@anthropic.com> * feat: Merge changelogs instead of replacing on re-generation Preserve manually added descriptions, hand-curated entries, and other manual edits when re-running the changelog generation script. Previously the script would completely replace existing changelog data on every run. Add mergeChangelogs() that indexes by version, unions PR numbers, preserves existing descriptions, keeps manual-only entries, and re-sorts newest-first. Add unit tests covering edge cases. Co-Authored-By: Claude <noreply@anthropic.com> * feat: Add 'next' version support and changelog promotion on release Support unreleased changes tracked as "next" entries in attribute changelogs. When a new release tag is created, "next" entries are automatically promoted to the new version while preserving manually-added descriptions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Display changelog of attributes with 'next' version support Show the attribute changelog in the AttributeCard component, including entries with version 'next' (displayed without a 'v' prefix). Update compareVersions to handle 'next' correctly and export it for reuse in tests, removing the duplicate implementation. Co-Authored-By: Claude <noreply@anthropic.com> * ref(changelog): Simplify sort comparator and add perf TODO Remove redundant 'next' guards in the sort comparator — compareVersions already handles 'next' correctly, making those checks dead code. Add a TODO comment noting the O(files × versions) git subprocess cost and suggesting a future batch approach using `git diff --name-only`. Co-Authored-By: Claude <noreply@anthropic.com> * fix(lint): Replace delete operator with undefined assignment Biome's noDelete lint rule flags the delete operator for performance. Since changelog is an optional field and JSON.stringify omits undefined values, the behavior is identical. Co-Authored-By: Claude <noreply@anthropic.com> * feat(changelog): Add 'next' version changelog entries for attributes Add changelog entries with version 'next' to attributes modified by PRs #261, #264, #265, #266, and #267. This tracks upcoming changes for the next release across AI, tool, and deployment environment attributes. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
We currently have a definition for
resource.deployment.environment.name, deprecated forsentry.environmentwith abackfillpolicy. That means that incoming spans using the OpenTelemetry conventional attributedeployment.environment.namein their span'sresourcewill get the value copied tosentry.environmentin Relay, which makes the environment filters work across the product. (see #196)deployment.environment.namewas introduced in OTel's semantic conventions v1.27.0 (Aug 2024) as a replacement fordeployment.environment, which was deprecated at that time. One of our customers is still using this deprecated attribute, and I'm sure they're not alone in that. Defineresource.deployment.environmentas a deprecated, backfilled attribute so that clients using it, too will get working environment filters in the product.PR Checklist
yarn testand verified that the tests pass.yarn generate && yarn formatto generate and format code and docs.If an attribute was added:
nextjs.function_id, notfunction_id)pii(i.e.maybeortrue. Usefalseonly for values that should never be scrubbed such as IDs)falseto matchsentry.environment(presumably because the product depends on the exact given value)