Udostępnij za pośrednictwem


Metryki na żywo: monitorowanie i diagnozowanie 1-sekundowego opóźnienia

Monitoruj dynamiczną, produkcyjną aplikację internetową przy użyciu metryk na żywo (znanych również jako QuickPulse) z usługi Application Insights. Możesz wybierać i filtrować metryki i liczniki wydajności, aby obserwować je w czasie rzeczywistym bez żadnych zakłóceń w usłudze. Możesz również sprawdzić ślady stosu z przykładowych żądań i wyjątków, które zakończyły się niepowodzeniem. Wraz z profilerem i debugerem migawek metryki na żywo zapewniają zaawansowane i nieinwazyjne narzędzie diagnostyczne dla aktywnej witryny internetowej.

Uwaga

Metryki na żywo obsługują tylko protokół TLS 1.2. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów.

Za pomocą metryk na żywo można wykonywać następujące czynności:

  • Zweryfikuj poprawkę podczas jej wydania, obserwując liczbę wydajności i błędów.
  • Obejrzyj efekt obciążeń testowych i zdiagnozuj problemy na żywo.
  • Skoncentruj się na konkretnych sesjach testowych lub odfiltruj znane problemy, wybierając i filtrując metryki, które chcesz obejrzeć.
  • Pobieranie śladów wyjątków w miarę ich śledzenia.
  • Poeksperymentuj z filtrami, aby znaleźć najbardziej odpowiednie wskaźniki KPI.
  • Monitoruj dowolny licznik wydajności systemu Windows na żywo.
  • Łatwo zidentyfikuj serwer, na którym występują problemy, i przefiltruj wszystkie kluczowe wskaźniki wydajności/kanał informacyjny na żywo tylko do tego serwera.

Zrzut ekranu przedstawiający kartę metryk na żywo.

Metryki na żywo są obecnie obsługiwane w przypadku aplikacji ASP.NET, ASP.NET Core, Azure Functions, Java i Node.js.

Uwaga

Liczba monitorowanych wystąpień serwera wyświetlanych przez metryki na żywo może być niższa niż rzeczywista liczba wystąpień przydzielonych dla aplikacji. Ta niezgodność jest taka, ponieważ wiele nowoczesnych serwerów internetowych zwalnia aplikacje, które nie odbierają żądań przez pewien czas w celu zaoszczędzenia zasobów. Ponieważ metryki na żywo zliczają tylko serwery, na których jest obecnie uruchomiona aplikacja, serwery, które już zwolniły ten proces, nie zostaną uwzględnione w tej sumie.

Rozpocznij

Ważne

Aby włączyć usługę Application Insights, upewnij się, że została ona aktywowana w witrynie Azure Portal, a aplikacja korzysta z najnowszej wersji pakietu NuGet openTelemetry usługi Azure Monitor Lub klasycznego pakietu NuGet usługi Application Insights. Bez pakietu NuGet niektóre dane telemetryczne są wysyłane do usługi Application Insights, ale dane telemetryczne nie będą wyświetlane w okienku metryk na żywo.

  1. Postępuj zgodnie z wytycznymi specyficznymi dla języka, aby włączyć metryki na żywo:
  • ASP.NET: Nieobsługiwane.
  • ASP.NET Core: domyślnie włączone.
  • Java: domyślnie włączone.
  • Node.js: domyślnie włączone.
  • Python: przekaż enable_live_metrics=True element do configure_azure_monitorelementu . Aby uzyskać więcej informacji, zobacz dokumentację dystrybucji OpenTelemetry usługi Azure Monitor.
  1. Otwórz zasób usługi Application Insights dla aplikacji w witrynie Azure Portal. Wybierz pozycję Metryki na żywo, które są wyświetlane w obszarze Zbadaj w menu po lewej stronie.

  2. Zabezpiecz kanał kontrolny, jeśli możesz używać poufnych danych, takich jak nazwy klientów w filtrach.

Uwaga

31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie udostępnimy już aktualizacji ani obsługi funkcji. Przejście do parametry połączenia w celu skorzystania z nowych funkcji.

Jak metryki na żywo różnią się od eksploratora metryk i usługi Log Analytics?

Możliwości Transmisja strumieniowa na żywo Eksplorator metryk i usługa Log Analytics
Opóźnienie Dane wyświetlane w ciągu jednej sekundy. Zagregowane w ciągu kilku minut.
Brak przechowywania Dane są utrwalane na wykresie, a następnie są odrzucane. Dane przechowywane przez 90 dni.
Na żądanie Dane są przesyłane strumieniowo tylko po otwarciu okienka metryk na żywo. Dane są wysyłane za każdym razem, gdy zestaw SDK jest zainstalowany i włączony.
Bezpłatna Za dane transmisji strumieniowej na żywo nie są naliczane opłaty. Podlega cenom.
Próbkowanie Wszystkie wybrane metryki i liczniki są przesyłane. Próbkowane są błędy i ślady stosu. Zdarzenia można próbkować.
Kanał sterowania Sygnały kontroli filtru są wysyłane do zestawu SDK. Zalecamy zabezpieczenie tego kanału. Komunikacja jest jednym ze sposobów, do portalu.

Wybieranie i filtrowanie metryk

Te funkcje są dostępne w usługach ASP.NET, ASP.NET Core i Azure Functions (wersja 2).

Niestandardowy wskaźnik KPI można monitorować na żywo, stosując dowolne filtry w dowolnej telemetrii usługi Application Insights z portalu. Wybierz kontrolkę filtru wyświetlaną po kliknięciu myszy na dowolnych wykresach. Poniższy wykres wykreśli niestandardowy wskaźnik KPI liczby żądań z filtrami dla atrybutów adresów URL i czasu trwania . Zweryfikuj filtry za pomocą sekcji podglądu strumienia, która pokazuje kanał informacyjny na żywo danych telemetrycznych pasujących do kryteriów określonych w dowolnym momencie.

Zrzut ekranu przedstawiający częstotliwość żądań filtru.

Możesz monitorować wartość inną niż Liczba. Opcje zależą od typu strumienia, który może być dowolnym telemetrią usługi Application Insights, takimi jak żądania, zależności, wyjątki, ślady, zdarzenia lub metryki. Może to być również własna miara niestandardowa.

Zrzut ekranu przedstawiający konstruktora zapytań w żądaniu z metryką niestandardową.

Oprócz telemetrii usługi Application Insights można również monitorować dowolny licznik wydajności systemu Windows. Wybierz ją z opcji strumienia i podaj nazwę licznika wydajności.

Metryki na żywo są agregowane w dwóch punktach: lokalnie na każdym serwerze, a następnie na wszystkich serwerach. Wartość domyślną można zmienić na jednej z nich, wybierając inne opcje na odpowiednich listach rozwijanych.

Przykładowe dane telemetryczne: niestandardowe zdarzenia diagnostyczne na żywo

Domyślnie kanał informacyjny na żywo zdarzeń przedstawia przykłady niepomyślnych żądań i wywołań zależności, wyjątków, zdarzeń i śladów. Wybierz ikonę filtru, aby zobaczyć zastosowane kryteria w dowolnym momencie.

Zrzut ekranu przedstawiający przycisk Filtr.

Podobnie jak w przypadku metryk, można określić dowolne kryteria dla dowolnego typu telemetrii usługi Application Insights. W tym przykładzie wybieramy określone błędy i zdarzenia żądań.

Zrzut ekranu przedstawiający konstruktora zapytań.

Uwaga

Obecnie w przypadku kryteriów opartych na komunikatach o wyjątku użyj najbardziej zewnętrznego komunikatu wyjątku. W poprzednim przykładzie, aby odfiltrować łagodny wyjątek z wewnętrznym komunikatem wyjątku (poniżej< ogranicznika "--" "Klient rozłączony", użyj komunikatu, który nie zawiera kryteriów "Błąd odczytu zawartości żądania".

Aby wyświetlić szczegóły elementu w kanale informacyjnym na żywo, wybierz go. Możesz wstrzymać kanał informacyjny, wybierając pozycję Wstrzymaj lub przewijając w dół i wybierając element. Kanał informacyjny na żywo jest wznawiany po powrocie do góry lub po wybraniu licznika elementów zebranych podczas jego wstrzymania.

Zrzut ekranu przedstawiający okno Przykładowe dane telemetryczne z wybranym wyjątkiem i szczegóły wyjątku wyświetlane w dolnej części okna.

Filtrowanie według wystąpienia serwera

Jeśli chcesz monitorować określone wystąpienie roli serwera, możesz filtrować według serwera. Aby filtrować, wybierz nazwę serwera w obszarze Serwery.

Zrzut ekranu przedstawiający przykładowe niepowodzenia na żywo.

Zabezpieczanie kanału sterowania

Filtry niestandardowe metryk na żywo umożliwiają kontrolowanie, które dane telemetryczne aplikacji są przesyłane strumieniowo do okienka metryk na żywo w witrynie Azure Portal. Kryteria filtrów są wysyłane do aplikacji instrumentowanych za pomocą zestawu SDK usługi Application Insights. Wartość filtru może potencjalnie zawierać poufne informacje, takie jak identyfikator klienta. Aby zachować bezpieczeństwo tej wartości i zapobiec potencjalnemu ujawnieniu nieautoryzowanych aplikacji, należy zabezpieczyć kanał metryk na żywo przy użyciu uwierzytelniania firmy Microsoft Entra.

Uwaga

30 września 2025 r. klucze interfejsu API używane do strumieniowego przesyłania danych telemetrycznych metryk na żywo do usługi Application Insights zostaną wycofane. Po tej dacie aplikacje korzystające z kluczy interfejsu API nie będą mogły wysyłać danych metryk na żywo do zasobu usługi Application Insights. Uwierzytelnione pozyskiwanie danych telemetrycznych na potrzeby przesyłania strumieniowego metryk na żywo do usługi Application Insights będzie konieczne przy użyciu uwierzytelniania firmy Microsoft Entra dla usługi Application Insights.

Istnieje możliwość wypróbowania filtrów niestandardowych bez konieczności konfigurowania uwierzytelnionego kanału. Wybierz dowolną ikonę filtru i autoryzuj połączone serwery. Jeśli wybierzesz tę opcję, musisz autoryzować podłączone serwery raz na nową sesję lub za każdym razem, gdy nowy serwer pojawi się w trybie online.

Ostrzeżenie

Zdecydowanie odradzamy korzystanie z niezabezpieczonych kanałów i wyłączymy tę opcję sześć miesięcy po rozpoczęciu korzystania z niej. W oknie dialogowym Autoryzowanie połączonych serwerów zostanie wyświetlona data wyłączenia tej opcji.

Zrzut ekranu przedstawiający okno dialogowe Autoryzowanie połączonych serwerów.

Tabela obsługiwanych funkcji

Język Metryki podstawowe Performance metrics (Metryki wydajności) Filtrowanie niestandardowe Przykładowa telemetria Podział procesora CPU według procesu
.NET Framework Obsługiwane (LTS) Obsługiwane (LTS) Obsługiwane (LTS) Obsługiwane (LTS) Obsługiwane (LTS)
.NET Core (target=.NET Framework) Obsługiwane (LTS) Obsługiwane (LTS) Obsługiwane (LTS) Obsługiwane (LTS) Obsługiwane (LTS)
.NET Core (target=.NET Core) Obsługiwane (LTS) Obsługiwane* Obsługiwane (LTS) Obsługiwane (LTS) Nieobsługiwane
Azure Functions w wersji 2 Obsługiwane Obsługiwane Obsługiwane Obsługiwane Nieobsługiwane
Java Obsługiwane (wersja 2.0.0 lub nowsza) Obsługiwane (wersja 2.0.0 lub nowsza) Nieobsługiwane Obsługiwane (wersja 3.2.0 lub nowsza) Nieobsługiwane
Node.js Obsługiwane (wersja 1.3.0 lub nowsza) Obsługiwane (wersja 1.3.0 lub nowsza) Nieobsługiwane Obsługiwane (wersja 1.3.0 lub nowsza) Nieobsługiwane
Python Obsługiwane (dystrybucja w wersji 1.6.0 lub nowszej) Nieobsługiwane Nieobsługiwane Nieobsługiwane Nieobsługiwane

Podstawowe metryki obejmują liczbę żądań, zależności i wyjątków. Metryki wydajności (liczniki wydajności) obejmują pamięć i procesor CPU. Przykładowe dane telemetryczne przedstawiają strumień szczegółowych informacji dotyczących żądań i zależności, wyjątków, zdarzeń i śladów.

Obsługa platformy PerfCounters różni się nieznacznie w różnych wersjach platformy .NET Core, które nie są przeznaczone dla programu .NET Framework:

  • Metryki narzędzia PerfCounters są obsługiwane podczas uruchamiania w usłudze aplikacja systemu Azure service dla systemu Windows (zestaw SDK platformy ASP.NET Core w wersji 2.4.1 lub nowszej).
  • Narzędzie PerfCounters jest obsługiwane, gdy aplikacja jest uruchomiona na dowolnej maszynie z systemem Windows dla aplikacji przeznaczonych dla platformy .NET Core LTS lub nowszej.
  • Narzędzie PerfCounters jest obsługiwane, gdy aplikacja działa w dowolnym miejscu (na przykład Linux, Windows, app service dla systemu Linux lub kontenerów) w najnowszych wersjach, ale tylko w przypadku aplikacji przeznaczonych dla platformy .NET Core LTS lub nowszej.

Rozwiązywanie problemów

Metryki na żywo używają różnych adresów IP niż inne dane telemetryczne usługi Application Insights. Upewnij się, że te adresy IP są otwarte w zaporze. Sprawdź również, czy porty wychodzące dla metryk na żywo są otwarte w zaporze serwerów.

Zgodnie z opisem w ogłoszeniu o migracji protokołu TLS 1.2 platformy Azure metryki na żywo obsługują teraz tylko protokół TLS 1.2. Jeśli używasz starszej wersji protokołu TLS, okienko metryk na żywo nie wyświetla żadnych danych. W przypadku aplikacji opartych na programie .NET Framework 4.5.1 zobacz Włączanie protokołu Transport Layer Security (TLS) 1.2 na klientach — Configuration Manager w celu obsługi nowszej wersji protokołu TLS.

Brak konfiguracji dla platformy .NET

  1. Sprawdź, czy używasz najnowszej wersji pakietu NuGet Microsoft.ApplicationInsights.PerfCounterCollector.

  2. ApplicationInsights.config Edytuj plik:

    • Sprawdź, czy parametry połączenia wskazuje używany zasób usługi Application Insights.
    • QuickPulseTelemetryModule Znajdź opcję konfiguracji. Jeśli tak nie jest, dodaj go.
    • QuickPulseTelemetryProcessor Znajdź opcję konfiguracji. Jeśli tak nie jest, dodaj go.
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. Uruchom ponownie aplikację.

Komunikat o stanie "Dane są tymczasowo niedostępne"

Podczas przechodzenia do metryk na żywo może zostać wyświetlony baner z komunikatem o stanie: "Dane są tymczasowo niedostępne. Aktualizacje naszego stanu są publikowane tutaj https://aka.ms/aistatus "

Postępuj zgodnie z linkiem do strony stanu platformy Azure i sprawdź, czy wystąpiła awaria aktywacji wpływająca na usługę Application Insights. Sprawdź, czy zapory i rozszerzenia przeglądarki nie blokują dostępu do metryk na żywo, jeśli wystąpi awaria. Na przykład niektóre popularne rozszerzenia ad-blocker blokują połączenia z *.monitor.azure.com. Aby użyć pełnych możliwości metryk na żywo, wyłącz rozszerzenie ad-blocker lub dodaj regułę wykluczania dla domeny *.livediagnostics.monitor.azure.com do ad-blocker, zapory itp.

Nieoczekiwana duża liczba żądań do livediagnostics.monitor.azure.com

Zestawy SDK usługi Application Insights używają interfejsu API REST do komunikowania się z punktami końcowymi QuickPulse, które zapewniają metryki na żywo dla aplikacji internetowej. Domyślnie zestawy SDK sondują punkty końcowe co pięć sekund, aby sprawdzić, czy wyświetlasz okienko metryk na żywo w witrynie Azure Portal.

Jeśli otworzysz metryki na żywo, zestawy SDK przełączą się do trybu wyższej częstotliwości i wysyłają nowe metryki do funkcji QuickPulse co sekundę. Dzięki temu można monitorować i diagnozować aplikację na żywo z 1-sekundowym opóźnieniem, ale także generuje większy ruch sieciowy. Aby przywrócić normalny przepływ ruchu, nawiąż od okienka metryk na żywo.

Uwaga

Wywołania interfejsu API REST wykonywane przez zestawy SDK do punktów końcowych quickPulse nie są śledzone przez usługę Application Insights i nie mają wpływu na wywołania zależności ani inne metryki. Można je jednak zobaczyć w innych narzędziach do monitorowania sieci.

Następne kroki