Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
A partir de .NET 11, las métricas http.client.open_connections y http.client.active_requests usan ObservableUpDownCounter<T> en lugar de UpDownCounter<T>. Si su código utiliza MeterListener directamente para recibir mediciones de estos dos instrumentos, ya no las recibirá a través de la devolución de llamada del evento de medición.
Versión introducida
.NET 11 RC 1
Comportamiento anterior
Antes, http.client.open_connections y http.client.active_requests eran UpDownCounter<long> instrumentos normales.
HttpClient invocaba Add al contador cada vez que se iniciaba o se detenía una conexión o una solicitud, por lo que un MeterListener que había habilitado los eventos de medición para cualquiera de los dos instrumentos recibía una notificación push por cada invocación individual de Add.
Nuevo comportamiento
A partir de .NET 11, http.client.open_connections y http.client.active_requests son ObservableUpDownCounter<long> instrumentos.
HttpClient mantiene los recuentos actuales internamente y solo los informa cuando una herramienta de recopilación solicita el valor actual. Un MeterListener que habilita los eventos de medición para cualquiera de los dos instrumentos ya no recibe notificaciones push individuales. En su lugar, debe llamar a MeterListener.RecordObservableInstruments() periódicamente para obtener las mediciones actuales bajo demanda.
Las herramientas que ya recopilan métricas mediante extracción, como el SDK de OpenTelemetry, los exportadores de Prometheus, dotnet-counters, dotnet-monitor y el panel Aspire, no se ven afectadas porque ya realizan un muestreo periódico de los instrumentos observables.
Tipo de cambio disruptivo
Este es un cambio de comportamiento.
Motivo del cambio
Las métricas http.client.open_connections y http.client.active_requests incluyen etiquetas de alta cardinalidad, como direcciones de servidor y de pares. Dado que estas métricas eran contadores normales, cada combinación única de valores de etiquetas que observaba un sistema backend de monitorización se retenía y agregaba indefinidamente, lo que provocaba un crecimiento ilimitado del uso de memoria y un aumento de los costes en algunos sistemas de monitorización. Los contadores observables permiten HttpClient mantener los recuentos internamente, notificar solo las combinaciones que están activas actualmente y quitar entradas cuyo recuento vuelve a cero. Para obtener más información, consulta la solicitud de incorporación de cambios que introdujo esta modificación y la incidencia relacionada sobre los atributos de alta cardinalidad.
Acción recomendada
Si utilizas MeterListener directamente para leer http.client.open_connections o http.client.active_requests, llama a RecordObservableInstruments() en tu listener con la periodicidad con la que desees muestrear estas métricas, en lugar de depender únicamente de la llamada de retorno del evento de medición. Si consume estas métricas a través de una herramienta de recopilación de métricas, un exportador o el Aspire panel, no se necesita ninguna acción porque esas herramientas ya extraen valores de instrumentos observables.