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 naquele momento. 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 de Telemetria Aberta, mantendo os comportamentos do instrumento consistentes entre si, os instrumentos http.client.request.duration
, http.client.connection.duration
e http.client.open_connections
foram alterados para relatar incondicionalmente o server.port
atributo.
Essa alteração pode quebrar consultas existentes em softwares de monitoramento como o Prometheus.
Versão introduzida
.NET 9 Visualização 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 corresponder à porta padrão do protocolo correspondente (80 para HTTP, 443 para HTTPS).
Novo comportamento
O server.port
atributo é agora incondicionalmente relatado pelos instrumentos http.client.request.duration
, http.client.connection.duration
e http.client.open_connections
.
Tipo de mudança de rutura
Esta mudança é uma mudança comportamental.
Razão para a alteração
A alteração mantém a conformidade com a especificação de Telemetria Aberta, mantendo HttpClient
os instrumentos consistentes entre si.
Ação recomendada
Nenhuma ação será necessária se você não confiar nas métricas do HttpClient. Se você usar o , http.client.connection.duration
ou http.client.open_connections
instrumentos, essa alteração pode quebrar consultas existentes em software de monitoramento como Prometheushttp.client.request.duration
.
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)