Znajdowanie i diagnozowanie problemów z wydajnością za pomocą usługi Azure Application Insights

Usługa Azure Application Insights gromadzi dane telemetryczne z Twojej aplikacji, aby pomóc w analizie jej działania i wydajności. Tymi informacjami można się posłużyć przy identyfikowaniu stwierdzonych problemów albo identyfikowaniu usprawnień do aplikacji, które miałyby największy wpływ na użytkowników. Ten samouczek przedstawia proces analizowania wydajności składników serwera aplikacji i perspektywy klienta. Omawiane kwestie:

  • Identyfikowanie wydajności operacji po stronie serwera
  • Analizowanie operacji serwera w celu określenia głównej przyczyny niskiej wydajności
  • Identyfikowanie najwolniejszych operacji po stronie klienta
  • Analizowanie szczegółów wyświetleń stron przy użyciu języka zapytań

Wymagania wstępne

W celu ukończenia tego samouczka:

Zaloguj się do platformy Azure.

Zaloguj się do witryny Azure Portal na stronie https://portal.azure.com.

Identyfikowanie wolnych operacji serwera

Usługa Application Insights zbiera informacje o wydajności różnych operacji w aplikacji. Identyfikując operacje o najdłuższym czasie trwania, możesz zdiagnozować potencjalne problemy albo najlepiej ukierunkować trwające prace programistyczne w celu podniesienia ogólnej wydajności aplikacji.

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

  2. Aby otworzyć panel Wydajność, wybierz pozycję Wydajność z menu Zbadaj albo kliknij wykresCzas odpowiedzi serwera.

    Performance

  3. Panel Wydajność przedstawia wydajność i średni czas trwania każdej operacji dla aplikacji. Te informacje mogą posłużyć do zidentyfikowania tych operacji, które mają największy wpływ na użytkowników. W tym przykładzie dobrymi kandydatami do przyjrzenia się bliżej są operacje GET Customers/Details i GET Home/Index z powodu ich względnie długiego czasu trwania i względnie dużej liczby wywołań. Inne operacje mogą mieć dłuższy czas trwania, ale są rzadko wywoływane, więc efekt ich poprawienia będzie niewielki.

    Performance server panel

  4. Wykres przedstawia obecnie średni czas trwania wybranych operacji w czasie. Możesz przełączyć się na 95. percentyl, aby znaleźć problemy z wydajnością. Dodaj operacje, które Cię interesują, przypinając je do wykresu. To pokazuje, że istnieją wzrosty wartości warte zbadania. Wyizoluj je jeszcze bardziej, zmniejszając przedział czasu wykresu.

    Pin operations

  5. Panel wydajności po prawej stronie pokazuje rozkład czasów trwania różnych żądań dla wybranej operacji. Zmniejsz okno, aby rozpocząć w okolicy 95. percentyla. Z karty ze szczegółowymi informacjami „3 najważniejsze zależności” można szybko odczytać, że zależności zewnętrzne najprawdopodobniej wpływają na spowolnienie transakcji. Kliknij przycisk z liczbą próbek, aby wyświetlić listę próbek. Następnie możesz wybrać dowolną próbkę, aby wyświetlić szczegóły transakcji.

  6. Na pierwszy rzut oka zobaczysz, że wywołanie tabeli Fabrikamaccount Azure Table najbardziej wpływa na całkowity czas trwania transakcji. Zobaczysz też, że wyjątek spowodował jego niepowodzenia. Możesz kliknąć dowolną pozycję na liście, aby wyświetlić jej szczegóły po prawej stronie. Dowiedz się więcej o środowisku diagnostyki transakcji

    Operation end-to-end details

  7. Profiler pomaga uzyskać dalszą diagnostykę poziomu kodu, pokazując rzeczywisty kod, który został uruchomiony dla operacji i czas wymagany dla każdego kroku. Niektóre operacje mogą nie mieć śladu, ponieważ profiler jest uruchamiany okresowo. Z upływem czasu coraz więcej operacji powinno mieć ślady. Aby uruchomić profiler dla operacji, kliknij pozycję Ślady narzędzia Profiler.

  8. Ślad pokazuje indywidualne zdarzenia dla każdej operacji, więc można zdiagnozować główną przyczynę obecnego czasu trwania całej operacji. Kliknij jeden z przykładów u góry, które mają najdłuższy czas trwania.

  9. Kliknij pozycję Ścieżka gorąca , aby wyróżnić określoną ścieżkę zdarzeń, które najbardziej przyczyniają się do całkowitego czasu trwania operacji. W tym przykładzie widać, że najwolniejsze wywołanie pochodzi z metody FabrikamFiberAzureStorage.GetStorageTableData. Częścią zabierającą najwięcej czasu jest metoda CloudTable.CreateIfNotExist. Jeśli ten wiersz kodu jest wywoływany po każdym wywołaniu funkcji, niepotrzebnie używane będą wywołanie sieciowe i zasób procesora CPU. Najlepszym sposobem poprawienia kodu jest umieszczenie tego wiersza w jakiejś metodzie startowej, która jest wykonywana tylko raz.

    Profiler details

  10. Obszar Porada dotycząca wydajności u góry ekranu potwierdza ocenę, że nadmierny czas trwania wynika z oczekiwania. Kliknij link oczekiwanie, aby otworzyć dokumentację omawiającą interpretowanie różnych typów zdarzeń.

    Performance tip

  11. Aby uzyskać dalszą analizę, możesz kliknąć pozycję Pobierz ślad, aby pobrać ślad. Te dane można wyświetlić przy użyciu narzędzia PerfView.

Używanie danych dzienników dla serwera

Dzienniki udostępnia zaawansowany język zapytań, który umożliwia analizowanie wszystkich danych zebranych przez usługę Application Szczegółowe informacje. Możesz jej używać do wykonywania głębokiej analizy danych żądań i wydajności.

  1. Wróć do panelu szczegółów operacji i kliknij pozycję Logs iconWyświetl w dziennikach (analiza)

  2. Dzienniki są otwierane z zapytaniem dla każdego z widoków w panelu. Zapytania te można uruchomić w proponowanej formie lub dostosować do własnych wymagań. Pierwsze zapytanie pokazuje czas trwania operacji w miarę upływu czasu.

    logs query

Identyfikowanie wolnych operacji klienta

Oprócz identyfikowania procesów serwera do zoptymalizowania, usługa Application Insights może analizować perspektywę przeglądarek klienta. To może pomóc zidentyfikować potencjalne ulepszenia do składników klienta, a nawet zidentyfikować problemy z różnymi przeglądarkami i lokalizacjami.

  1. Wybierz pozycję Przeglądarka w obszarze Zbadaj , a następnie kliknij pozycję Wydajność przeglądarki lub wybierz pozycję Wydajność w obszarze Zbadaj i przejdź do karty Przeglądarka , klikając przycisk przełącznika serwera/przeglądarki w prawym górnym rogu, aby otworzyć podsumowanie wydajności przeglądarki. Ma ono postać wizualnego podsumowania różnych danych telemetrycznych dla Twojej aplikacji z perspektywy przeglądarki.

    Browser summary

  2. Wybierz jedną z nazw operacji, a następnie kliknij niebieski przycisk przykłady w prawym dolnym rogu i wybierz operację. Spowoduje to wyświetlenie pełnych szczegółów transakcji i po prawej stronie można wyświetlić właściwości widoku strony. Umożliwia to wyświetlenie szczegółów klienta żądającego strony, w tym typu przeglądarki i jego lokalizacji. Te informacje mogą pomóc w określeniu, czy występują problemy z wydajnością powiązane z konkretnymi typami klientów.

    Page view

Używanie danych dzienników dla klienta

Podobnie jak dane zebrane pod kątem wydajności serwera, Szczegółowe informacje aplikacja udostępnia wszystkie dane klienta na potrzeby głębokiej analizy przy użyciu dzienników.

  1. Wróć do podsumowania przeglądarki i kliknij pozycję Logs iconWyświetl w dziennikach (analiza)

  2. Dzienniki są otwierane z zapytaniem dla każdego z widoków w panelu. Pierwsze zapytanie pokazuje czas trwania dla różnych wyświetleń stron w miarę upływu czasu.

    Logs query

Następne kroki

Teraz, gdy już wiesz, jak identyfikować wyjątki czasu wykonywania, przejdź do następnego samouczka, aby dowiedzieć się, jak tworzyć alerty w odpowiedzi na błędy.