Raport server.port
metryk httpclient bezwarunkowo
Po dodaniu metryk httpclient na platformie .NET 8 server.port
został wprowadzony jako atrybut zgodnie ze stanem Conditionally Required
standardu w tym czasie. Warunkowo wymagane oznaczało, że port został zgłoszony tylko wtedy, gdy nie jest zgodny z domyślnym portem odpowiedniego protokołu (80 dla protokołu HTTP, 443 dla protokołu HTTPS). Jednak od tego czasu standardowy poziom wymagań atrybutu został zmieniony na Required
.
Aby zachować zgodność ze standardem Open Telemetry przy zachowaniu zachowania instrumentu zgodnego ze sobą, instrumenty http.client.request.duration
, http.client.connection.duration
i http.client.open_connections
zostały zmienione w celu bezwarunkowego zgłaszania atrybutu server.port
.
Ta zmiana może przerwać istniejące zapytania w oprogramowaniu do monitorowania, takim jak Prometheus.
Wprowadzona wersja
.NET 9 (wersja zapoznawcza 7)
Poprzednie zachowanie
http.client.request.duration
, http.client.connection.duration
i http.client.open_connections
zgłosił server.port
atrybut tylko wtedy, gdy nie jest zgodny z domyślnym portem odpowiedniego protokołu (80 dla protokołu HTTP, 443 dla protokołu HTTPS).
Nowe zachowanie
Atrybut server.port
jest teraz bezwarunkowo zgłaszany przez instrumenty http.client.request.duration
, http.client.connection.duration
i http.client.open_connections
.
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Zmiana zachowuje zgodność ze specyfikacją Open Telemetry, zachowując jednocześnie spójność HttpClient
instrumentów ze sobą.
Zalecana akcja
Nie jest wymagana żadna akcja, jeśli nie korzystasz z metryk HttpClient. Jeśli używasz instrumentów , lub http.client.open_connections
, http.client.connection.duration
ta zmiana może spowodować przerwanie istniejących zapytań w oprogramowaniu http.client.request.duration
do monitorowania, takim jak Prometheus.
Dotyczy interfejsów API
System.Net.Http.SocketsHttpHandler.Send(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
System.Net.Http.SocketsHttpHandler.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
- System.Net.Http.HttpClientHandler.Send(HttpRequestMessage, CancellationToken)
- System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage, CancellationToken)