Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À partir de .NET 11, les métriques http.client.open_connections et ObservableUpDownCounter<T> utilisent UpDownCounter<T> au lieu de http.client.active_requests. Si votre code utilise MeterListener directement pour écouter les mesures de ces deux instruments, vous ne les recevez plus par l’intermédiaire de la fonction de rappel de l’événement de mesure.
Version introduite
.NET 11 RC 1
Comportement antérieur
Auparavant, http.client.open_connections et http.client.active_requests étaient des instruments standard UpDownCounter<long>.
HttpClient appelait Add sur le compteur chaque fois qu’une connexion ou une requête démarrait ou s’arrêtait, de sorte qu’un MeterListener qui activait les événements de mesure pour l’un ou l’autre instrument recevait une notification push pour chaque appel individuel à Add.
Nouveau comportement
À partir de .NET 11, http.client.open_connections et http.client.active_requests sont des instruments ObservableUpDownCounter<long>.
HttpClient maintient le nombre actuel en interne et les signale uniquement lorsqu’un outil de collection demande la valeur actuelle. Qui MeterListener active les événements de mesure pour l’un ou l’autre instrument ne reçoit plus de notifications Push individuelles. À la place, vous devez appeler MeterListener.RecordObservableInstruments() périodiquement pour récupérer les mesures actuelles à la demande.
Les outils qui collectent déjà des métriques sur une base d’extraction, tels que le Kit de développement logiciel (SDK) OpenTelemetry, les exportateurs Prometheus, dotnet-counterset dotnet-monitorle Aspire tableau de bord, ne sont pas affectés, car ils échantillonnent déjà régulièrement des instruments observables.
Type de changement avec rupture de compatibilité
Ce changement est un changement de comportement.
Raison du changement
Les métriques http.client.open_connections et http.client.active_requests incluent des étiquettes à cardinalité élevée, telles que les adresses de serveurs et de pairs. Étant donné que ces métriques étaient des compteurs réguliers, chaque combinaison unique de valeurs d’étiquettes observée par un back-end de surveillance a été conservée et agrégée indéfiniment, ce qui a provoqué une croissance de la mémoire illimitée et des coûts accrus dans certains systèmes de surveillance. Les compteurs observables permettent HttpClient de conserver les nombres en interne, de signaler uniquement les combinaisons actuellement actives et de supprimer les entrées dont le nombre revient à zéro. Pour plus d’informations, consultez la demande de tirage qui a apporté cette modification et le problème associé concernant les attributs de cardinalité élevée.
Action recommandée
Si vous utilisez MeterListener directement pour lire http.client.open_connections ou http.client.active_requests, appelez RecordObservableInstruments() sur votre écouteur à l’intervalle auquel vous souhaitez échantillonner ces métriques, au lieu de vous appuyer uniquement sur la fonction de rappel de l’événement de mesure. Si vous utilisez ces métriques via un outil de collecte de métriques, un exportateur ou le Aspire tableau de bord, aucune action n’est nécessaire, car ces outils extrayent déjà des valeurs à partir d’instruments observables.