Uh oh!
There was an error while loading. Please reload this page.
feat!: Rename deprecated net. span attributes - #23301
Conversation
s1gr1d
commented
Aug 11, 2026
bugbot run |
| String and regular-expression matching for `tracePropagationTargets` is now case-insensitive. | ||
| ### Span attribute changes |
There was a problem hiding this comment.
I added all already existing entries regarding attribute changes under this heading.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
size-limit report 📦
|
# Conflicts: # packages/node/src/integrations/tracing/redis/cache.ts
s1gr1d
commented
Aug 12, 2026
bugbot run |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
JPeer264
left a comment
There was a problem hiding this comment.
LGTM. Just got smol suggestions. Also the title should have a !
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
net. span attributesnet. span attributesPart of the v11 migration away from attributes `@sentry/conventions` marks deprecated. Scoped to the `http.*` attributes on HTTP spans; the `net.*` attributes are migrated separately in #23301. Straight renames: `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.response_content_length` -> `http.response.body.size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. `http.request_content_length`, `http.request_content_length_uncompressed`, `http.response_content_length_uncompressed` and `http.status_text` are left alone — they are not in `@sentry/conventions` at all, so they have no replacement to move to. Three cases needed more than a rename: - `http.target` carried pathname *and* query, while `url.path` is the pathname only. The core server span set neither `url.query` nor `url.fragment`, so dropping `http.target` would have lost the query — it now sets both, which the node server span already did. - Consumers that matched on `http.target` were repointed at `url.path`: the react-router low-quality-transaction filter and the TanStack Start tunnel-route filter, both `ignoreSpans` rules against our own spans that would otherwise have silently stopped matching. The Next.js readers keep `http.target` as a fallback behind a `url.path` primary, since they also see spans from a user's own OpenTelemetry instrumentation. All other read-side fallbacks are untouched for the same reason. - `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. `no-unfiltered-url-attributes` no longer guards `http.target`: nothing sets it, and its replacement `url.path` is a bare pathname with no query to filter. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Develop landed the same `net.*` -> `server.*`/`network.*` rename for db and messaging spans (#23422), plus a `db.*` rename (#23408) and a restructure of the redis/mysql2/mongoose integrations, so that half of this branch is superseded. Conflicts in `packages/server-utils` and the db/messaging test assertions resolve to develop's version; the orchestrion e2e test apps develop deleted in #23349 stay deleted. `docs/migration/v11-end-state.md` keeps this branch's sectioned layout and `net.*` mapping table with develop's added entries folded in. The branch's own work - the HTTP server and client network attributes in core, node, cloudflare and deno - is unaffected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
| newAttributes[SERVER_PORT] = localPort; | ||
| newAttributes[NETWORK_LOCAL_ADDRESS] = localAddress; | ||
| newAttributes[NETWORK_LOCAL_PORT] = localPort; | ||
| newAttributes[CLIENT_ADDRESS] = collectClientAddress ? remoteAddress : undefined; |
There was a problem hiding this comment.
client.address should hold the real client address behind any intermediary like a proxy (per otel spec). Since client.address is an alias of http.client_ip, we could just do the same as with http.client_ip in line 186 (which will be removed in #23423) and set the IP from the x-forwarded-for header instead (and maybe keep the socket's address as a fallback)
s1gr1d
commented
Aug 24, 2026
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 6842701. Configure here.
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. Scoped to the `http.*` attributes on HTTP spans; the `net.*` attributes are migrated separately in #23301. Straight renames: `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.response_content_length` -> `http.response.body.size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. `http.request_content_length`, `http.request_content_length_uncompressed`, `http.response_content_length_uncompressed` and `http.status_text` are left alone — they are not in `@sentry/conventions` at all, so they have no replacement to move to. Three cases needed more than a rename: - `http.target` carried pathname *and* query, while `url.path` is the pathname only. The core server span set neither `url.query` nor `url.fragment`, so dropping `http.target` would have lost the query — it now sets both, which the node server span already did. - Consumers that matched on `http.target` were repointed at `url.path`: the react-router low-quality-transaction filter and the TanStack Start tunnel-route filter, both `ignoreSpans` rules against our own spans that would otherwise have silently stopped matching. The Next.js readers keep `http.target` as a fallback behind a `url.path` primary, since they also see spans from a user's own OpenTelemetry instrumentation. All other read-side fallbacks are untouched for the same reason. - `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. `no-unfiltered-url-attributes` no longer guards `http.target`: nothing sets it, and its replacement `url.path` is a bare pathname with no query to filter. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. Scoped to the `http.*` attributes on HTTP spans; the `net.*` attributes are migrated separately in #23301. Straight renames: `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.response_content_length` -> `http.response.body.size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. `http.request_content_length`, `http.request_content_length_uncompressed`, `http.response_content_length_uncompressed` and `http.status_text` are left alone — they are not in `@sentry/conventions` at all, so they have no replacement to move to. Three cases needed more than a rename: - `http.target` carried pathname *and* query, while `url.path` is the pathname only. The core server span set neither `url.query` nor `url.fragment`, so dropping `http.target` would have lost the query — it now sets both, which the node server span already did. - Consumers that matched on `http.target` were repointed at `url.path`: the react-router low-quality-transaction filter and the TanStack Start tunnel-route filter, both `ignoreSpans` rules against our own spans that would otherwise have silently stopped matching. The Next.js readers keep `http.target` as a fallback behind a `url.path` primary, since they also see spans from a user's own OpenTelemetry instrumentation. All other read-side fallbacks are untouched for the same reason. - `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. `no-unfiltered-url-attributes` no longer guards `http.target`: nothing sets it, and its replacement `url.path` is a bare pathname with no query to filter. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. Scoped to the `http.*` attributes on HTTP spans; the `net.*` attributes are migrated separately in #23301. Straight renames: `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.response_content_length` -> `http.response.body.size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. `http.request_content_length`, `http.request_content_length_uncompressed`, `http.response_content_length_uncompressed` and `http.status_text` are left alone — they are not in `@sentry/conventions` at all, so they have no replacement to move to. Three cases needed more than a rename: - `http.target` carried pathname *and* query, while `url.path` is the pathname only. The core server span set neither `url.query` nor `url.fragment`, so dropping `http.target` would have lost the query — it now sets both, which the node server span already did. - Consumers that matched on `http.target` were repointed at `url.path`: the react-router low-quality-transaction filter and the TanStack Start tunnel-route filter, both `ignoreSpans` rules against our own spans that would otherwise have silently stopped matching. The Next.js readers keep `http.target` as a fallback behind a `url.path` primary, since they also see spans from a user's own OpenTelemetry instrumentation. All other read-side fallbacks are untouched for the same reason. - `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. `no-unfiltered-url-attributes` no longer guards `http.target`: nothing sets it, and its replacement `url.path` is a bare pathname with no query to filter. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Related to Linear: https://linear.app/getsentry/issue/SDK-1348/align-network-span-attributes | v10 attribute | v11 attribute | | --------------- | ----------------------- | | `net.host.name` | `server.address` | | `net.host.ip` | `network.local.address` | | `net.host.port` | `network.local.port` | | `net.peer.name` | `server.address` | | `net.peer.ip` | `network.peer.address` | | `net.peer.port` | `network.peer.port` | | `net.transport` | `network.transport` | --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. Scoped to the `http.*` attributes on HTTP spans; the `net.*` attributes are migrated separately in #23301. Straight renames: `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.response_content_length` -> `http.response.body.size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. `http.request_content_length`, `http.request_content_length_uncompressed`, `http.response_content_length_uncompressed` and `http.status_text` are left alone — they are not in `@sentry/conventions` at all, so they have no replacement to move to. Three cases needed more than a rename: - `http.target` carried pathname *and* query, while `url.path` is the pathname only. The core server span set neither `url.query` nor `url.fragment`, so dropping `http.target` would have lost the query — it now sets both, which the node server span already did. - Consumers that matched on `http.target` were repointed at `url.path`: the react-router low-quality-transaction filter and the TanStack Start tunnel-route filter, both `ignoreSpans` rules against our own spans that would otherwise have silently stopped matching. The Next.js readers keep `http.target` as a fallback behind a `url.path` primary, since they also see spans from a user's own OpenTelemetry instrumentation. All other read-side fallbacks are untouched for the same reason. - `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. `no-unfiltered-url-attributes` no longer guards `http.target`: nothing sets it, and its replacement `url.path` is a bare pathname with no query to filter. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. This PR covers the renames on HTTP spans, all of them 1:1 with no behavior change. `http.target` and the Node body size behavior change follow in stacked PRs; the `net.*` attributes are migrated separately in #23301. `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.status_text` -> `http.response.status_text`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.request_content_length` -> `http.request.body.size`, `http.request_content_length_uncompressed` -> `http.request.body.decoded_size`, `http.response_content_length` -> `http.response.body.size`, `http.response_content_length_uncompressed` and `http.decoded_response_content_length` -> `http.response.body.decoded_size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. The last two legacy response body size names meant the same thing — the decoded response body size. Node HTTP spans used `http.response_content_length_uncompressed`, browser resource spans used `http.decoded_response_content_length`. Which of the encoded and decoded attribute an HTTP span sets is unchanged here: the code still branches on whether a `content-encoding` header is present. That branching is what the stacked body size PR addresses. `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. This PR covers the renames on HTTP spans, all of them 1:1 with no behavior change. `http.target` and the Node body size behavior change follow in stacked PRs; the `net.*` attributes are migrated separately in #23301. `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.status_text` -> `http.response.status_text`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.request_content_length` -> `http.request.body.size`, `http.request_content_length_uncompressed` -> `http.request.body.decoded_size`, `http.response_content_length` -> `http.response.body.size`, `http.response_content_length_uncompressed` and `http.decoded_response_content_length` -> `http.response.body.decoded_size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. The last two legacy response body size names meant the same thing — the decoded response body size. Node HTTP spans used `http.response_content_length_uncompressed`, browser resource spans used `http.decoded_response_content_length`. Which of the encoded and decoded attribute an HTTP span sets is unchanged here: the code still branches on whether a `content-encoding` header is present. That branching is what the stacked body size PR addresses. `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. This PR covers the renames on HTTP spans, all of them 1:1 with no behavior change. `http.target` and the Node body size behavior change follow in stacked PRs; the `net.*` attributes are migrated separately in #23301. `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.status_text` -> `http.response.status_text`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.request_content_length` -> `http.request.body.size`, `http.request_content_length_uncompressed` -> `http.request.body.decoded_size`, `http.response_content_length` -> `http.response.body.size`, `http.response_content_length_uncompressed` and `http.decoded_response_content_length` -> `http.response.body.decoded_size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. The last two legacy response body size names meant the same thing — the decoded response body size. Node HTTP spans used `http.response_content_length_uncompressed`, browser resource spans used `http.decoded_response_content_length`. Which of the encoded and decoded attribute an HTTP span sets is unchanged here: the code still branches on whether a `content-encoding` header is present. That branching is what the stacked body size PR addresses. `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Part of the v11 migration away from attributes `@sentry/conventions` marks deprecated. This PR covers the renames on HTTP spans, all of them 1:1 with no behavior change. `http.target` and the Node body size behavior change follow in stacked PRs; the `net.*` attributes are migrated separately in #23301. `http.method` -> `http.request.method`, `http.status_code` -> `http.response.status_code`, `http.status_text` -> `http.response.status_text`, `http.scheme` -> `url.scheme`, `http.user_agent` -> `user_agent.original`, `http.request_content_length` -> `http.request.body.size`, `http.request_content_length_uncompressed` -> `http.request.body.decoded_size`, `http.response_content_length` -> `http.response.body.size`, `http.response_content_length_uncompressed` and `http.decoded_response_content_length` -> `http.response.body.decoded_size`, `http.response_transfer_size` -> `http.response.size`, and `url.same_origin` -> `http.request.same_origin`. The last two legacy response body size names meant the same thing — the decoded response body size. Node HTTP spans used `http.response_content_length_uncompressed`, browser resource spans used `http.decoded_response_content_length`. Which of the encoded and decoded attribute an HTTP span sets is unchanged here: the code still branches on whether a `content-encoding` header is present. That branching is what the stacked body size PR addresses. `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements — `server.address`, `network.protocol.version` and `client.address` — are introduced by #23301, so setting them here too would mean two PRs writing the same keys with different values. `SanitizedRequestData`, the shape backing `http` breadcrumb data, now keys the method as `http.request.method`. Span attributes in the touched files are now imported from `@sentry/conventions/attributes` rather than written as string literals. That is what surfaced `url.same_origin` as deprecated; as a literal it was invisible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This PR covers the 1:1 renames and removals on HTTP spans. `http.target` and the Node body size behavior change follow in stacked PRs. | Old Attribute | New Attribute | |---|---| | `http.method` | `http.request.method` | | `http.status_code` | `http.response.status_code` | | `http.status_text` | `http.response.status_text` | | `http.scheme` | `url.scheme` | | `http.user_agent` | `user_agent.original` | | `http.request_content_length` | `http.request.body.size` | | `http.request_content_length_uncompressed` | `http.request.body.decoded_size` | | `http.response_content_length` | `http.response.body.size` | | `http.response_content_length_uncompressed` | `http.response.body.decoded_size`| | `http.decoded_response_content_length` | `http.response.body.decoded_size` | | `http.response_transfer_size` | `http.response.size` | | `url.same_origin` | `http.request.same_origin` | `http.host`, `http.flavor` and `http.client_ip` are dropped without a replacement being set here. Their replacements (`server.address`, `network.protocol.version` and `client.address`) are already being set (introduced in #23301). part of #18895 Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three gaps that the alias symmetry test cannot catch, because it only seeds a group from attributes that already carry a non-empty `alias` array: - `net.peer.name` replaces onto `server.address` but was not part of that alias group. It now joins it, like `http.host`, which is ambiguous in the same way. - `net.sock.peer.port` replaces onto `network.peer.port` and neither named the other. The equivalent host pair already does. - `net.transport` changes its values from `ip_tcp` and `ip_udp` to `tcp` and `udp`, so it needs a transformation rather than a plain rename. Adds `net_transport_to_network_transport`. `net.host.port` and `net.peer.port` are left untouched: both correctly replace onto `server.port`, while `network.local.port` and `network.peer.port` descend from the `net.sock.*` attributes. Replaced by getsentry/sentry-javascript#23301 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three gaps that the alias symmetry test cannot catch, because it only seeds a group from attributes that already carry a non-empty `alias` array: - `net.peer.name` replaces onto `server.address` but was not part of that alias group. It now joins it, like `http.host`, which is ambiguous in the same way. - `net.sock.peer.port` replaces onto `network.peer.port` and neither named the other. The equivalent host pair already does. - `net.transport` changes its values from `ip_tcp` and `ip_udp` to `tcp` and `udp`, so it needs a transformation rather than a plain rename. Adds `net_transport_to_network_transport`. `net.host.port` and `net.peer.port` are left untouched: both correctly replace onto `server.port`, while `network.local.port` and `network.peer.port` descend from the `net.sock.*` attributes. Replaced by getsentry/sentry-javascript#23301 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three gaps that the alias symmetry test cannot catch, because it only seeds a group from attributes that already carry a non-empty `alias` array: - `net.peer.name` replaces onto `server.address` but was not part of that alias group. It now joins it, like `http.host`, which is ambiguous in the same way. - `net.sock.peer.port` replaces onto `network.peer.port` and neither named the other. The equivalent host pair already does. - `net.transport` changes its values from `ip_tcp` and `ip_udp` to `tcp` and `udp`, so it needs a transformation rather than a plain rename. Adds `net_transport_to_network_transport`. `net.host.port` and `net.peer.port` are left untouched: both correctly replace onto `server.port`, while `network.local.port` and `network.peer.port` descend from the `net.sock.*` attributes. Replaced by getsentry/sentry-javascript#23301 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…transport` `net.peer.name` replaces onto `server.address` and `net.sock.peer.port` replaces onto `network.peer.port`, but neither pair named the other side. Both alias groups are complete now. `net.transport` changes its values on the replacement, from `ip_tcp` and `ip_udp` to `tcp` and `udp`, so the old value cannot be copied over. It moves from `_status: "backfill"` to `_status: null` and keeps `network.transport` as the replacement. Replaced by getsentry/sentry-javascript#23301 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…transport` `net.peer.name` replaces onto `server.address` and `net.sock.peer.port` replaces onto `network.peer.port`, but neither pair named the other side. Both alias groups are complete now. `net.transport` changes its values on the replacement, from `ip_tcp` and `ip_udp` to `tcp` and `udp`, so the old value cannot be copied over. It moves from `_status: "backfill"` to `_status: null` and keeps `network.transport` as the replacement. Replaced by getsentry/sentry-javascript#23301 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…transport` (#588) `net.peer.name` replaces onto `server.address` and `net.sock.peer.port` replaces onto `network.peer.port`, but neither pair named the other side. Both alias groups are complete now. `net.transport` changes its values on the replacement, from `ip_tcp` and `ip_udp` to `tcp` and `udp`, so the old value cannot be copied over. It moves from `_status: "backfill"` to `_status: null` and keeps `network.transport` as the replacement. Replaced by getsentry/sentry-javascript#23301 Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Related to Linear: https://linear.app/getsentry/issue/SDK-1348/align-network-span-attributes
net.host.nameserver.addressnet.host.ipnetwork.local.addressnet.host.portnetwork.local.portnet.peer.nameserver.addressnet.peer.ipnetwork.peer.addressnet.peer.portnetwork.peer.portnet.transportnetwork.transport