Vyhledání a diagnostika výjimek modulu runtime pomocí Application Insights

Application Insights shromažďuje telemetrii z vaší aplikace, aby vám pomohla identifikovat a diagnostikovat výjimky za běhu. Tento kurz vás provede tímto procesem s vaší aplikací. Získáte informace o těchto tématech:

  • Upravte projekt tak, aby povolte sledování výjimek.
  • Identifikujte výjimky pro různé komponenty vaší aplikace.
  • Zobrazení podrobností o výjimce
  • Stáhněte si snímek výjimky do sady Visual Studio pro ladění.
  • Analyzujte podrobnosti neúspěšných požadavků pomocí dotazovacího jazyka.
  • Vytvořte novou pracovní položku, která opraví chybný kód.

Požadavky

Pro absolvování tohoto kurzu potřebujete:

  • Nainstalujte Sadu Visual Studio 2019 s následujícími úlohami:
    • Vývoj pro ASP.NET a web
    • Vývoj pro Azure
  • Stáhnout a nainstalovat Visual Studio Snapshot Debugger.
  • Povolení nástroje Visual Studio Snapshot Debugger
  • Nasazení aplikace .NET do Azure a povolení sady Application Insights SDK
  • Upravte kód ve vývojovém nebo testovacím prostředí tak, aby se vygenerovala výjimka, protože kurz sleduje identifikaci výjimky ve vaší aplikaci.

Přihlášení k Azure

Přihlaste se k webu Azure Portal.

Analýza selhání

Služba Application Insights shromažďuje všechna selhání ve vaší aplikaci. Umožňuje zobrazit jejich četnost v různých operacích, abyste se mohli zaměřit na ty problémy s nejvyšším dopadem. Pak můžete přejít k podrobnostem o těchto selháních a identifikovat původní příčinu.

  1. Vyberte Application Insights a pak vyberte své předplatné.

  2. Pokud chcete otevřít podokno Selhání, vyberte v nabídce Prošetřitselhání nebo vyberte graf Neúspěšné žádosti.

    Snímek obrazovky znázorňující neúspěšné žádosti

  3. Podokno Neúspěšné žádosti zobrazuje počet neúspěšných požadavků a počet uživatelů ovlivněných jednotlivými operacemi aplikace. Seřazením těchto informací podle uživatele můžete identifikovat chyby, které uživatele ovlivňují nejvíce. V tomto příkladu jsou pravděpodobně kandidáty na šetření get Employees/Create a GET Customers/Details kvůli velkému počtu selhání a ovlivněných uživatelů. Výběrem operace zobrazíte další informace o této operaci v pravém podokně.

    Snímek obrazovky s podoknem Neúspěšné žádosti

  4. Zmenšením časového okna si přibližte období, kde má míra selhání špičku.

    Snímek obrazovky s oknem Neúspěšné žádosti

  5. Výběrem tlačítka s počtem vyfiltrovaných výsledků si prohlédněte související ukázky. Navrhované ukázky obsahují související telemetrii ze všech komponent, a to i v případě, že vzorkování mohlo platit v některé z nich. Výběrem výsledku hledání zobrazíte podrobnosti o selhání.

    Snímek obrazovky znázorňující ukázky neúspěšných požadavků

  6. Podrobnosti neúspěšného požadavku ukazují Ganttův diagram, který ukazuje, že v této transakci došlo ke dvěma selháním závislostí, což také přispělo k více než 50 % celkové doby trvání transakce. Toto prostředí představuje veškerou telemetrii napříč komponentami distribuované aplikace, které souvisejí s tímto ID operace. Výběrem libovolné položky zobrazíte jejich podrobnosti na pravé straně.

    Snímek obrazovky s podrobnostmi neúspěšné žádosti

  7. V podrobnostech o operacích se také zobrazuje výjimka formátu, která zřejmě způsobila selhání. Vidíte, že příčinou je neplatné PSČ. Můžete otevřít snímek ladění a zobrazit informace o ladění na úrovni kódu v sadě Visual Studio.

    Snímek obrazovky s podrobnostmi o výjimce

Identifikace chyb kódu

Snapshot Debugger shromažďuje snímky nejčastěji se vyskytujících výjimek v aplikaci, aby vám pomohl při diagnostice jejich hlavní příčiny v produkčním prostředí. Snímky ladění můžete zobrazit na portálu a podívat se do zásobníku volání a zkontrolovat proměnné v každém rámci zásobníku volání. Potom můžete zdrojový kód ladit stažením snímku a jeho otevřením v sadě Visual Studio 2019 Enterprise.

  1. Ve vlastnostech výjimky vyberte Otevřít snímek ladění.

  2. Otevře se podokno Snímek ladění se zásobníkem volání pro požadavek. Vyberte libovolnou metodu pro zobrazení hodnot všech místních proměnných v době požadavku. Počínaje metodou top v tomto příkladu můžete vidět místní proměnné, které nemají žádnou hodnotu.

    Snímek obrazovky znázorňující podokno Snímek ladění

  3. První volání, které má platné hodnoty, je ValidZipCode. Vidíte, že psč bylo poskytnuto s písmeny, která se nedají přeložit na celé číslo. Zdá se, že tento problém je chyba v kódu, která se musí opravit.

    Snímek obrazovky znázorňující chybu v kódu, který je potřeba opravit

  4. Tento snímek si pak můžete stáhnout do sady Visual Studio, kde najdete skutečný kód, který je potřeba opravit. Uděláte to tak, že vyberete Stáhnout snímek.

  5. Snímek se načte do aplikace Visual Studio.

  6. Teď můžete spustit ladicí relaci v Visual Studio Enterprise, která rychle identifikuje řádek kódu, který způsobil výjimku.

    Snímek obrazovky znázorňující výjimku v kódu

Použití analytických dat

Všechna data shromážděná službou Application Insights se ukládají ve službě Azure Log Analytics, která poskytuje bohatý dotazovací jazyk, který můžete použít k analýze dat různými způsoby. Tato data můžete použít k analýze požadavků, které vygenerovaly výjimku, kterou zkoumáte.

  1. Výběrem informací CodeLens nad kódem zobrazíte telemetrii poskytovanou službou Application Insights.

    Snímek obrazovky znázorňující kód v CodeLens

  2. Výběrem možnosti Analyzovat dopad otevřete Application Insights Analytics. Obsahuje několik dotazů, které poskytují podrobnosti o neúspěšných požadavcích, jako jsou ovlivnění uživatelé, prohlížeče a oblasti.

    Snímek obrazovky s oknem Application Insights, které obsahuje několik dotazů

Přidání pracovní položky

Pokud připojíte Application Insights ke sledovacímu systému, jako je Azure DevOps nebo GitHub, můžete pracovní položku vytvořit přímo z Application Insights.

  1. Vraťte se do podokna Vlastnosti výjimky v Application Insights.

  2. Vyberte Nová pracovní položka.

  3. Otevře se podokno Nová pracovní položka s již vyplněnými podrobnostmi o výjimce. Před uložením můžete přidat další informace.

    Snímek obrazovky s podoknem Nová pracovní položka

Další kroky

Teď, když jste se naučili identifikovat výjimky modulu runtime, přejděte k dalšímu kurzu, kde se dozvíte, jak identifikovat a diagnostikovat problémy s výkonem.