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

Monitorowanie aplikacji internetowych za pomocą metryk na żywo z usługi Application Insights . Wybierz i przefiltruj metryki i liczniki wydajności, aby obserwować dane w czasie rzeczywistym i sprawdzać ślady stosu z przykładowych żądań i wyjątków, które zakończyły się niepowodzeniem. Środowisko metryk na żywo to zaawansowane narzędzie diagnostyczne w połączeniu z profilerem i debugerem migawek.

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.

Rozpocznij

  1. Włącz metryki na żywo, postępując zgodnie z wytycznymi specyficznymi dla języka:
  • 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ł kontroli, włączając uwierzytelnianie firmy Microsoft Entra, jeśli używasz filtrów niestandardowych.

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).

Niestandardowe wskaźniki wydajności 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ładowa telemetria: 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

Zabezpiecz kanał kontroli metryk na żywo, włączając uwierzytelnianie firmy Microsoft Entra, co uniemożliwia nieautoryzowane ujawnienie potencjalnie poufnych informacji wprowadzonych do filtrów niestandardowych.

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.

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

W poniższej sekcji omówiono typowe scenariusze rozwiązywania problemów dotyczące środowiska metryk na żywo.

Brak danych metryk na żywo

Środowisko metryk na żywo używa 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.

Sprawdź, czy usługa Application Insights jest włączona, a aplikacja korzysta z najnowszej wersji dystrybucji OpenTelemetry usługi Azure Monitor. Jeśli używasz klasycznego interfejsu API the.NET, zainstaluj pakiet NuGet usługi Application Insights .

Autoryzowanie połączonych serwerów: ta opcja nie będzie dostępna

Zdecydowanie odradzamy korzystanie z niezabezpieczonych kanałów.

Jeśli zdecydujesz się wypróbować filtry niestandardowe bez konfigurowania uwierzytelnionego kanału, musisz autoryzować połączone serwery w każdej nowej sesji lub gdy nowe serwery są dostępne w trybie online. Ponadto korzystanie z niezabezpieczonych kanałów zostanie automatycznie wyłączone po sześciu miesiącach.

W oknie dialogowym zostanie wyświetlone ostrzeżenie "Możesz przesyłać strumieniowo metryki i zdarzenia za pomocą filtrów niestandardowych, które są wysyłane z powrotem do aplikacji. Unikaj wprowadzania potencjalnie poufnych informacji (takich jak identyfikator klienta), dopóki nie skonfigurujesz uwierzytelnionego kanału. Jeśli jednak rozpoznasz i zaufasz wszystkim serwerom poniżej, możesz wypróbować filtry niestandardowe bez uwierzytelniania. Ta opcja nie będzie dostępna po ##/##/####. Serwery połączone bez uwierzytelniania:"

Aby naprawić to ostrzeżenie, zobacz Zabezpieczanie kanału sterowania.

Niska liczba monitorowanych wystąpień serwera

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.

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żesz zobaczyć 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 sondować 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