Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab .NET 11 verwenden die Metriken ObservableUpDownCounter<T> und http.client.open_connectionshttp.client.active_requests anstelle von UpDownCounter<T>. Wenn Ihr Code MeterListener direkt verwendet, um Messwerte dieser beiden Instrumente zu empfangen, erhalten Sie diese nicht mehr über den Measurement-Event-Callback.
Eingeführt in Version
.NET 11 RC 1
Bisheriges Verhalten
Zuvor waren http.client.open_connections und http.client.active_requests reguläre UpDownCounter<long>-Instrumente.
HttpClient rief Add für den Zähler jedes Mal auf, wenn eine Verbindung oder Anforderung gestartet oder beendet wurde, sodass ein MeterListener, das Messereignisse für eines der beiden Instrumente aktiviert hatte, für jeden einzelnen Aufruf von Add eine Pushbenachrichtigung erhielt.
Neues Verhalten
Ab .NET 11 sind http.client.open_connections und http.client.active_requestsObservableUpDownCounter<long>-Instrumente.
HttpClient verwaltet die aktuellen Zählungen intern und meldet sie nur, wenn ein Sammlungstool nach dem aktuellen Wert fragt. Ein MeterListener, das Messereignisse für eines der beiden Instrumente aktiviert, erhält keine einzelnen Push-Benachrichtigungen mehr. Stattdessen müssen Sie regelmäßig aufrufen MeterListener.RecordObservableInstruments() , um die aktuellen Messungen bei Bedarf abzurufen.
Tools, die bereits Metriken auf Pullbasis sammeln, z. B. das OpenTelemetry SDK, Prometheus-Exporter, dotnet-counters, dotnet-monitorund das Aspire Dashboard, sind nicht betroffen, da sie bereits observierbare Instrumente in regelmäßigen Abständen probieren.
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Die Metriken http.client.active_requests und http.client.open_connections umfassen Tags mit hoher Kardinalität wie Server- und Peer-Adressen. Da es sich bei diesen Metriken um normale Zähler handelte, wurde jede eindeutige Kombination von Tag-Werten, die ein Monitoring-Backend erfasste, unbegrenzt gespeichert und aggregiert, was in einigen Monitoring-Systemen zu unbegrenztem Speicherwachstum und höheren Kosten führte. Beobachtbare Zähler ermöglichen es HttpClient, die Zählerstände intern zu verwalten, nur die Kombinationen zu melden, die derzeit aktiv sind, und Einträge zu entfernen, deren Zählerstand auf null zurückkehrt. Weitere Informationen finden Sie in der Pull-Anforderung, die diese Änderung vorgenommen hat , und das zugehörige Problem mit Attributen mit hoher Kardinalität.
Empfohlene Maßnahme
Wenn Sie MeterListener direkt verwenden, um http.client.open_connections oder http.client.active_requests zu lesen, rufen Sie RecordObservableInstruments() auf Ihrem Listener in dem Intervall auf, in dem Sie diese Metriken erfassen möchten, anstatt sich ausschließlich auf das Messereignis-Callback zu verlassen. Wenn Sie diese Metriken über ein Metriksammlungstool, einen Exporter oder das Aspire Dashboard nutzen, ist keine Aktion erforderlich, da diese Tools bereits Werte aus feststellbaren Instrumenten abrufen.