Relatório de métricas server.port
HttpClient incondicionalmente
Quando as métricas HttpClient foram adicionadas no .NET 8, server.port
foi introduzido como um Conditionally Required
atributo de acordo com o estado do padrão na época. Ser condicionalmente necessário significava que a porta só era relatada se não correspondesse à porta padrão do protocolo correspondente (80 para HTTP, 443 para HTTPS). No entanto, o nível de requisito padrão do atributo foi alterado para Required
.
Para manter a conformidade com o padrão Open Telemetry e, ao mesmo tempo, manter os comportamentos do instrumento consistentes entre si, os instrumentos http.client.request.duration
, , e http.client.open_connections
foram alterados para relatar incondicionalmente o server.port
atributohttp.client.connection.duration
.
Essa alteração pode interromper as consultas existentes em softwares de monitoramento como o Prometheus.
Versão introduzida
.NET 9 Preview 7
Comportamento anterior
http.client.request.duration
, http.client.connection.duration
e http.client.open_connections
relatou o server.port
atributo somente se ele não correspondesse à porta padrão do protocolo correspondente (80 para HTTP, 443 para HTTPS).
Novo comportamento
O server.port
atributo agora é relatado incondicionalmente pelos instrumentos http.client.request.duration
, http.client.connection.duration
, e http.client.open_connections
.
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
A alteração mantém a conformidade com a especificação Open Telemetry, mantendo HttpClient
os instrumentos consistentes entre si.
Ação recomendada
Nenhuma ação será necessária se você não confiar nas métricas HttpClient. Se você usar os instrumentos , http.client.connection.duration
, ou http.client.open_connections
, , essa alteração poderá interromper as consultas existentes em software de monitoramento como o http.client.request.duration
Prometheus.
APIs afetadas
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)