Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A partir do .NET 11, as métricas http.client.open_connections e http.client.active_requests usam ObservableUpDownCounter<T> em vez de UpDownCounter<T>. Se o seu código utilizar MeterListener diretamente para escutar medições destes dois instrumentos, deixará de as receber através do callback do evento de medição.
Versão introduzida
.NET 11 RC 1
Comportamento anterior
Anteriormente, http.client.open_connections e http.client.active_requests eram instrumentos UpDownCounter<long> regulares.
HttpClient chamava Add no contador sempre que uma conexão ou pedido era iniciado ou terminado, pelo que um MeterListener que ativasse eventos de medição para qualquer um dos instrumentos recebia uma notificação push por cada chamada individual a Add.
Novo comportamento
A partir do .NET 11, http.client.open_connections e http.client.active_requests são ObservableUpDownCounter<long> instrumentos.
HttpClient mantém as contagens atuais internamente e só as reporta quando uma ferramenta de recolha solicita o valor atual. Um MeterListener que permite eventos de medição para qualquer um dos instrumentos já não recebe notificações push individuais. Em vez disso, tem de invocar MeterListener.RecordObservableInstruments() periodicamente para obter as medições atuais a pedido.
Ferramentas que já recolhem métricas por extração, como o SDK do OpenTelemetry, os exportadores do Prometheus, dotnet-counters, dotnet-monitor e o painel Aspire, não são afetadas porque já efetuam periodicamente a amostragem de instrumentos observáveis.
Tipo de mudança disruptiva
Esta mudança é uma mudança comportamental.
Motivo da mudança
As métricas http.client.open_connections e http.client.active_requests incluem tags de alta cardinalidade, como endereços do servidor e endereços de pares. Como estas métricas eram contadores regulares, todas as combinações únicas de valores de etiquetas observadas por um back-end de monitorização foram mantidas e agregadas indefinidamente, o que causou crescimento ilimitado da memória e aumento dos custos em alguns sistemas de monitorização. Contadores observáveis permitem HttpClient manter as contagens internamente, reportar apenas as combinações que estão atualmente ativas e eliminar entradas cuja contagem retorna a zero. Para mais informações, consulte o pedido de integração que introduziu esta alteração e a ocorrência relacionada sobre atributos de alta cardinalidade.
Ação recomendada
Se usar MeterListener diretamente para ler http.client.open_connections ou http.client.active_requests, chame RecordObservableInstruments() o seu ouvinte no intervalo em que pretende amostrar estas métricas, em vez de depender apenas do callback do evento de medição. Se consumir estas métricas através de uma ferramenta de recolha de métricas, de um exportador ou do Aspire painel de controlo, não é necessária qualquer ação porque essas ferramentas já retiram valores de instrumentos observáveis.