Skip to content

[HTTP] Remove peer.address from connection OTel counters#128940

Merged
ManickaP merged 2 commits into
dotnet:mainfrom
ManickaP:otel-http
Jun 4, 2026
Merged

[HTTP] Remove peer.address from connection OTel counters#128940
ManickaP merged 2 commits into
dotnet:mainfrom
ManickaP:otel-http

Conversation

@ManickaP
Copy link
Copy Markdown
Member

@ManickaP ManickaP commented Jun 3, 2026

OTel changed specification for these 2 tags to "Opt-In". We do not have any toggles for Opt-In tags and we simply omit them. Therefore, I'm removing them from the code.

OTel change: open-telemetry/semantic-conventions#3759
Contributes to #122752

@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Removes the network.peer.address tag from System.Net.Http connection metrics tag sets, aligning emitted dimensions with updated OpenTelemetry semantic conventions (where that attribute is now opt-in for http.client.open_connections) and reducing metric cardinality pressure.

Changes:

  • Stop emitting network.peer.address from SocketsHttpHandler connection metric tags.
  • Remove peer-address validation helper and usages from System.Net.Http functional metrics tests.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Metrics/ConnectionMetrics.cs Removes network.peer.address from the TagList used by connection metrics.
src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs Updates metrics functional test helpers to no longer validate network.peer.address.

Comment thread src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs
Comment thread src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs
Comment thread src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs Outdated
Copilot AI review requested due to automatic review settings June 3, 2026 11:07
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs:137

  • validPeerAddresses is no longer used to validate peer addresses (the peer-address tag was removed). It now only serves as a non-null sentinel to skip the duration range assertion, so the parameter name is misleading and makes the test harder to understand/maintain.
        protected static void VerifyConnectionDuration(string instrumentName, object measurement, KeyValuePair<string, object?>[] tags, Uri uri, Version? protocolVersion, IPAddress[] validPeerAddresses = null)
        {
            Assert.Equal(InstrumentNames.ConnectionDuration, instrumentName);
            double value = Assert.IsType<double>(measurement);

            // This flakes for remote requests on CI.
            if (validPeerAddresses is null)
            {

Comment thread src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs
Comment thread src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs
Comment thread src/libraries/System.Net.Http/tests/FunctionalTests/MetricsTest.cs
@ManickaP
Copy link
Copy Markdown
Member Author

ManickaP commented Jun 4, 2026

/azp list

@azure-pipelines
Copy link
Copy Markdown

CI/CD Pipelines for this repository:

@ManickaP
Copy link
Copy Markdown
Member Author

ManickaP commented Jun 4, 2026

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@martincostello
Copy link
Copy Markdown
Member

We do not have any toggles for Opt-In tags

Maybe this is something worth investigating separately?

The OTel HTTP instrumentation delegates to the runtime implementation since .NET 8, so if people wanted these we'd have to re-introduce functionality there to bring these attributes back for users who wanted them.

@ManickaP
Copy link
Copy Markdown
Member Author

ManickaP commented Jun 4, 2026

Filed #128985, likely will happen earliest in .NET 12 (i.e. won't be in 11).

@ManickaP ManickaP merged commit 9dd152c into dotnet:main Jun 4, 2026
93 of 103 checks passed
@ManickaP ManickaP deleted the otel-http branch June 4, 2026 17:05
ManickaP added a commit that referenced this pull request Jun 5, 2026
Fix for httpbin returning 503, which is out of our control.
Based on Kusto, started 28.5., seen in
#128940
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 11.0-preview6 milestone Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants