Skip to content

feat(resource): add resource.deployment.environment#266

Merged
mjq merged 1 commit intomainfrom
mjq/add-deployment-environment
Mar 3, 2026
Merged

feat(resource): add resource.deployment.environment#266
mjq merged 1 commit intomainfrom
mjq/add-deployment-environment

Conversation

@mjq
Copy link
Member

@mjq mjq commented Feb 24, 2026

Description

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. (see #196)

deployment.environment.name was introduced in OTel's semantic conventions v1.27.0 (Aug 2024) 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.

PR Checklist

  • I have run yarn test and verified that the tests pass.
  • I have run yarn generate && yarn format to generate and format code and docs.

If an attribute was added:

  • The attribute is in a namespace (e.g. nextjs.function_id, not function_id)
  • I have used the correct value for pii (i.e. maybe or true. Use false only for values that should never be scrubbed such as IDs)
    • false to match sentry.environment (presumably because the product depends on the exact given value)

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.
@mjq mjq requested review from a team, Lms24, cleptric, lcian and nsdeschenes as code owners February 24, 2026 16:34
@github-actions
Copy link

github-actions bot commented Feb 24, 2026

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 ✨

  • (resource) Add resource.deployment.environment by mjq in #266

Bug Fixes 🐛

  • (gen_ai) Input and output token description by obostjancic in #261

Documentation 📚

  • Update README with up-to-date links by ericapisani in #258

Internal Changes 🔧

  • (deps) Bump svelte from 5.48.1 to 5.51.5 by dependabot in #260
  • (deps-dev) Bump tar from 7.5.7 to 7.5.8 by dependabot in #259

🤖 This preview updates automatically when you update the PR.

@mjq mjq enabled auto-merge (squash) February 24, 2026 16:46
@jflayhart
Copy link

thanks y'all!

@mjq mjq merged commit 5e5df00 into main Mar 3, 2026
12 checks passed
@mjq mjq deleted the mjq/add-deployment-environment branch March 3, 2026 08:05
ericapisani added a commit that referenced this pull request Mar 3, 2026
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>
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>
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