Partilhar via


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.duratione 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.duratione 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.duratione 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.

Nenhuma ação será necessária se você não confiar nas métricas do HttpClient. Se você usar o , http.client.connection.durationou http.client.open_connections instrumentos, essa alteração pode quebrar consultas existentes em software de monitoramento como Prometheushttp.client.request.duration.

APIs afetadas