Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Raport
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.durationi 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.durationi 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.durationi 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.request.duration , http.client.connection.durationta zmiana może spowodować przerwanie istniejących zapytań w oprogramowaniu http.client.open_connectionsdo 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)