Report server.port
delle metriche HttpClient in modo incondizionato
Quando le metriche HttpClient sono state aggiunte in .NET 8, server.port
è stato introdotto come Conditionally Required
attributo in base allo stato dello standard in quel momento. Essendo obbligatorio in modo condizionale, significa che la porta è stata segnalata solo se non corrisponde alla porta predefinita del protocollo corrispondente (80 per HTTP, 443 per HTTPS). Tuttavia, il livello di requisito standard dell'attributo è stato modificato in Required
.
Per mantenere la conformità allo standard Open Telemetry mantenendo i comportamenti dello strumento coerenti tra loro, gli strumenti http.client.request.duration
, http.client.connection.duration
e http.client.open_connections
sono stati modificati in modo non condizionale per segnalare l'attributo server.port
.
Questa modifica può interrompere le query esistenti nel software di monitoraggio come Prometheus.
Versione introdotta
.NET 9 Anteprima 7
Comportamento precedente
http.client.request.duration
, http.client.connection.duration
e http.client.open_connections
ha segnalato l'attributo server.port
solo se non corrisponde alla porta predefinita del protocollo corrispondente (80 per HTTP, 443 per HTTPS).
Nuovo comportamento
L'attributo server.port
è ora segnalato in modo incondizionato dagli strumenti http.client.request.duration
, http.client.connection.duration
e http.client.open_connections
.
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
La modifica mantiene la conformità con la specifica Open Telemetry mantenendo HttpClient
gli strumenti coerenti tra loro.
Azione consigliata
Non è necessaria alcuna azione se non si fa affidamento sulle metriche HttpClient. Se si usano gli http.client.request.duration
strumenti , http.client.connection.duration
o http.client.open_connections
, questa modifica potrebbe interrompere le query esistenti nel software di monitoraggio come Prometheus.
API interessate
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)