HttpClient-Metrikbericht server.port
bedingungslos
Als httpClient-Metriken in .NET 8 hinzugefügt wurden, server.port
wurde sie in Übereinstimmung mit dem Status des Standards zu diesem Zeitpunkt als Conditionally Required
Attribut eingeführt. Bedingt erforderlich bedeutete, dass der Port nur gemeldet wurde, wenn er nicht mit dem Standardport des entsprechenden Protokolls übereinstimmt (80 für HTTP, 443 für HTTPS). Die Standardanforderungsebene des Attributs wurde jedoch seitdem geändert.Required
Um die Einhaltung des Open Telemetry-Standards aufrechtzuerhalten und gleichzeitig das Verhalten des Instruments miteinander konsistent zu halten, wurden die Instrumente http.client.request.duration
, und http.client.open_connections
http.client.connection.duration
wurden geändert, um das server.port
Attribut bedingungslos zu melden.
Diese Änderung kann vorhandene Abfragen in überwachungssoftware wie Prometheus unterbrechen.
Eingeführt in Version
.NET 9 Preview 7
Vorheriges Verhalten
http.client.request.duration
, http.client.connection.duration
und http.client.open_connections
gibt das server.port
Attribut nur an, wenn es nicht mit dem Standardport des entsprechenden Protokolls übereinstimmt (80 für HTTP, 443 für HTTPS).
Neues Verhalten
Das server.port
Attribut wird jetzt bedingungslos von den Instrumenten http.client.request.duration
, http.client.connection.duration
und http.client.open_connections
.
Typ des Breaking Changes
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Die Änderung behält die Einhaltung der Spezifikation "Open Telemetry" bei, während die Instrumente miteinander konsistent bleibenHttpClient
.
Empfohlene Maßnahme
Wenn Sie keine HttpClient-Metriken verwenden, ist keine Aktion erforderlich. Wenn Sie die http.client.request.duration
, http.client.connection.duration
oder http.client.open_connections
Instrumente verwenden, kann diese Änderung vorhandene Abfragen in Überwachungssoftware wie Prometheus unterbrechen.
Betroffene APIs
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)