Znajdowanie i diagnozowanie wyjątków środowiska uruchomieniowego za pomocą usługi Application Insights

Usługa Application Insights zbiera dane telemetryczne z aplikacji, aby ułatwić identyfikowanie i diagnozowanie wyjątków środowiska uruchomieniowego. W tym samouczku przedstawiono ten proces dla Twojej aplikacji. Omawiane kwestie:

  • Zmodyfikuj projekt, aby włączyć śledzenie wyjątków.
  • Identyfikowanie wyjątków dla różnych składników aplikacji.
  • Wyświetl szczegóły wyjątku.
  • Pobierz migawkę wyjątku do programu Visual Studio na potrzeby debugowania.
  • Analizowanie szczegółów nieudanych żądań przy użyciu języka zapytań.
  • Utwórz nowy element roboczy, aby poprawić wadliwy kod.

Wymagania wstępne

W celu ukończenia tego samouczka:

  • Zainstaluj program Visual Studio 2019 przy użyciu następujących obciążeń:
    • Tworzenie aplikacji na platformie ASP.NET i aplikacji internetowych
    • Tworzenie aplikacji na platformie Azure
  • Pobierz i zainstaluj rozszerzenie Visual Studio Snapshot Debugger.
  • Włączanie debugera migawek programu Visual Studio
  • Wdrażanie aplikacji .NET na platformie Azure i włączanie zestawu SDK usługi Application Insights
  • Zmodyfikuj kod w środowisku projektowym lub testowym, aby wygenerować wyjątek, ponieważ samouczek śledzi identyfikację wyjątku w aplikacji.

Logowanie do platformy Azure

Zaloguj się w witrynie Azure Portal.

Analizowanie błędów

Usługa Application Insights zbiera wszelkie dane o awariach w aplikacji. Dzięki temu można wyświetlać ich częstotliwość w różnych operacjach, aby ułatwić skoncentrowanie wysiłków na tych problemach z najwyższym wpływem. Następnie możesz przejść do szczegółów tych błędów, aby zidentyfikować główną przyczynę.

  1. Wybierz pozycję Application Insights, a następnie wybierz swoją subskrypcję.

  2. Aby otworzyć okienko Błędy , wybierz pozycję Błędy w menu Zbadaj lub wybierz wykres Żądania nieudane .

    Zrzut ekranu przedstawiający nieudane żądania.

  3. Okienko Żądania zakończonych niepowodzeniem zawiera liczbę żądań zakończonych niepowodzeniem i liczbę użytkowników, których dotyczy każda operacja dla aplikacji. Posortując te informacje według użytkownika, można zidentyfikować te błędy, które najbardziej wpływają na użytkowników. W tym przykładzie funkcja GET Employees/Create i GET Customers/Details prawdopodobnie będzie można zbadać z powodu dużej liczby awarii i użytkowników, których dotyczy problem. Wybranie operacji powoduje wyświetlenie dodatkowych informacji o tej operacji w okienku po prawej stronie.

    Zrzut ekranu przedstawiający okienko Żądania nieudane.

  4. Zmniejsz przedział czasu, aby przybliżyć okres, w którym współczynnik błędów wykazuje największy wzrost.

    Zrzut ekranu przedstawiający okno Żądania nieudane.

  5. Zapoznaj się z powiązanymi przykładami, wybierając przycisk z liczbą filtrowanych wyników. Sugerowane próbki mają powiązane dane telemetryczne ze wszystkich składników, nawet jeśli próbkowanie mogło zostać zastosowane w dowolnym z nich. Wybierz wynik wyszukiwania, aby wyświetlić szczegóły błędu.

    Zrzut ekranu przedstawiający przykłady żądań niepowodzenie.

  6. Szczegóły nieudanego żądania pokazują wykres Gantta, który pokazuje, że w tej transakcji wystąpiły dwa błędy zależności, które również przyczyniły się do ponad 50% całkowitego czasu trwania transakcji. To środowisko przedstawia wszystkie dane telemetryczne między składnikami aplikacji rozproszonej powiązanej z tym identyfikatorem operacji. Możesz wybrać dowolny element, aby wyświetlić ich szczegóły po prawej stronie.

    Zrzut ekranu przedstawiający szczegóły żądania niepowodzenie.

  7. Szczegóły operacji pokazują również wyjątek formatu, który wydaje się spowodować awarię. Widać, że jest to spowodowane nieprawidłowym kodem pocztowym. Możesz otworzyć migawkę debugowania, aby wyświetlić informacje o debugowaniu na poziomie kodu w programie Visual Studio.

    Zrzut ekranu przedstawiający szczegóły wyjątku.

Identyfikowanie błędnego kodu

Rozszerzenie Snapshot Debugger zbiera migawki najczęściej występujących wyjątków w Twojej aplikacji, aby pomóc Ci w diagnozowaniu głównej przyczyny problemu w środowisku produkcyjnym. Migawki debugowania można wyświetlić w portalu, aby zobaczyć stos wywołań i sprawdzić zmienne w każdej ramce tego stosu. Następnie możesz debugować kod źródłowy, pobierając migawkę i otwierając ją w programie Visual Studio 2019 Enterprise.

  1. We właściwościach wyjątku wybierz pozycję Otwórz migawkę debugowania.

  2. Zostanie otwarte okienko Migawka debugowania z stosem wywołań dla żądania. Wybierz dowolną metodę, aby wyświetlić wartości wszystkich zmiennych lokalnych w momencie żądania. Począwszy od pierwszej metody w tym przykładzie, można zobaczyć zmienne lokalne, które nie mają wartości.

    Zrzut ekranu przedstawiający okienko Migawka debugowania.

  3. Pierwsze wywołanie z prawidłowymi wartościami to ValidZipCode. Widać, że kod pocztowy został dostarczony z literami, których nie można przetłumaczyć na liczbę całkowitą. Ten problem wydaje się być błędem w kodzie, który musi zostać rozwiązany.

    Zrzut ekranu przedstawiający błąd w kodzie, który musi zostać poprawiony.

  4. Następnie możesz pobrać tę migawkę do programu Visual Studio, gdzie można zlokalizować rzeczywisty kod, który musi zostać poprawiony. W tym celu wybierz pozycję Pobierz migawkę.

  5. Migawka zostanie załadowana do programu Visual Studio.

  6. Teraz możesz uruchomić sesję debugowania w programie Visual Studio Enterprise, która szybko zidentyfikuje wiersz kodu będący przyczyną wyjątku.

    Zrzut ekranu przedstawiający wyjątek w kodzie.

Korzystanie z danych analizy

Wszystkie dane zbierane przez usługę Application Insights są przechowywane w usłudze Azure Log Analytics, która udostępnia zaawansowany język zapytań, którego można użyć do analizowania danych na różne sposoby. Te dane umożliwiają analizowanie żądań, które wygenerowały wyjątek, który badasz.

  1. Wybierz informacje CodeLens powyżej kodu, aby wyświetlić dane telemetryczne dostarczone przez usługę Application Insights.

    Zrzut ekranu przedstawiający kod w funkcji CodeLens.

  2. Wybierz pozycję Analizuj wpływ , aby otworzyć analizę usługi Application Insights. Jest ona wypełniana kilkoma zapytaniami, które zawierają szczegółowe informacje na temat żądań, które zakończyły się niepowodzeniem, takie jak użytkownicy, przeglądarki i regiony, których dotyczy problem.

    Zrzut ekranu przedstawiający okno usługi Application Insights zawierające kilka zapytań.

Dodawanie elementu roboczego

Jeśli połączysz usługę Application Insights z systemem śledzenia, takim jak Azure DevOps lub GitHub, możesz utworzyć element roboczy bezpośrednio z usługi Application Insights.

  1. Wróć do okienka Właściwości wyjątku w usłudze Application Insights.

  2. Wybierz pozycję Nowy element roboczy.

  3. Zostanie otwarte okienko Nowy element roboczy ze szczegółowymi informacjami o już wypełnionym wyjątku. Przed zapisaniem można dodać więcej informacji.

    Zrzut ekranu przedstawiający okienko Nowy element roboczy.

Następne kroki

Teraz, gdy wiesz już, jak identyfikować wyjątki środowiska uruchomieniowego, przejdź do następnego samouczka, aby dowiedzieć się, jak identyfikować i diagnozować problemy z wydajnością.