Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Począwszy od wersji .NET 11 metryki http.client.open_connections i http.client.active_requests używają ObservableUpDownCounter<T> zamiast UpDownCounter<T>. Jeśli kod używa MeterListener bezpośrednio do nasłuchiwania pomiarów z tych dwóch instrumentów, nie otrzymujesz ich już za pośrednictwem wywołania zwrotnego zdarzenia pomiaru.
Wersja wprowadzona
.NET 11 RC 1
Poprzednie zachowanie
Wcześniej http.client.open_connections i http.client.active_requests były zwykłymi UpDownCounter<long> instrumentami.
HttpClient była wywoływana Add na liczniku za każdym razem, gdy połączenie lub żądanie było rozpoczynane albo kończone, więc MeterListener, które włączało zdarzenia pomiarowe dla któregokolwiek z tych instrumentów, otrzymywało powiadomienie push dla każdego pojedynczego wywołania Add.
Nowe zachowanie
Począwszy od .NET 11, http.client.open_connections i http.client.active_requests są ObservableUpDownCounter<long> instrumentami.
HttpClient utrzymuje bieżące liczby wewnętrznie i zgłasza je tylko wtedy, gdy narzędzie kolekcji prosi o bieżącą wartość. Element MeterListener, który umożliwia rejestrowanie zdarzeń pomiarowych dla jednego lub drugiego instrumentu, nie otrzymuje już indywidualnych powiadomień push. Zamiast tego należy okresowo wywoływać MeterListener.RecordObservableInstruments(), aby w razie potrzeby pobrać aktualne pomiary.
Narzędzia, które już zbierają metryki w modelu pull, takie jak OpenTelemetry SDK, eksportery Prometheus, dotnet-counters, dotnet-monitor oraz pulpit nawigacyjny Aspire, pozostają bez zmian, ponieważ już okresowo próbkują instrumenty obserwowalne.
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Metryki http.client.open_connections i http.client.active_requests obejmują tagi o wysokiej liczności, takie jak adresy serwerów i peerów. Ponieważ metryki te były zwykłymi licznikami, każda unikatowa kombinacja wartości tagów zaobserwowana przez zaplecze systemu monitorowania była przechowywana i agregowana bezterminowo, co powodowało nieograniczony wzrost zużycia pamięci i zwiększenie kosztów w niektórych systemach monitorowania. Liczniki obserwowalne pozwalają elementowi HttpClient utrzymywać zliczenia wewnętrznie, raportować tylko kombinacje, które są obecnie aktywne, oraz usuwać wpisy, dla których liczba wystąpień spada z powrotem do zera. Aby uzyskać więcej informacji, zobacz żądanie ściągnięcia, które dokonało tej zmiany , oraz powiązany problem dotyczący atrybutów o wysokiej kardynalności.
Zalecana akcja
Jeśli używasz MeterListener bezpośrednio do odczytu http.client.open_connections lub http.client.active_requests, wywołuj RecordObservableInstruments() dla odbiornika nasłuchującego w odstępach, z jakimi chcesz próbkować te metryki, zamiast polegać wyłącznie na wywołaniu zwrotnym zdarzenia pomiarowego. Jeśli te metryki są używane za pomocą narzędzia do zbierania metryk, eksportera lub pulpitu Aspire nawigacyjnego, nie jest wymagana żadna akcja, ponieważ te narzędzia już ściągają wartości z obserwowalnych instrumentów.