Ladění živých ASP.NET Azure Kubernetes Services pomocí ladicího programu snímků

Snapshot Debugger pořídí snímek vašich v produkčních aplikacích, když se spustí kód, který vás zajímá. Pokud chcete ladicímu programu dát pokyn, aby pořídil snímek, nastavte v kódu snímky a protokolovací body. Ladicí program vám umožní přesně zjistit, co se nepovedlo, aniž by to mělo vliv na provoz produkční aplikace. Snapshot Debugger vám může pomoct výrazně zkrátit dobu potřebnou k vyřešení problémů, ke kterým dochází v produkčních prostředích.

Snímkovací a protokolovací body jsou podobné zarážkám, ale na rozdíl od zarážek jejich dosažení nezpůsobí zastavení aplikace. Zachycení snímku na snappointu obvykle trvá 10 až 20 milisekund.

V tomto kurzu:

  • Spuštění ladicího programu snapshot
  • Nastavení přichycení a zobrazení snímku
  • Nastavení logpointu

Požadavky

  • Snapshot Debugger pro Azure Kubernetes Services je k dispozici pouze pro Visual Studio 2019 Enterprise nebo vyšší s úlohou vývoje pro Azure. (Pod položkou Jednotlivé komponenty najdete v části Ladění a testování>ladicího programu Snapshot.)

    Pokud ještě není nainstalovaný, nainstalujte Visual Studio 2019 Enterprise.

  • Kolekce snímků je dostupná pro následující webové aplikace Azure Kubernetes Services:

Otevřete projekt a spusťte Snapshot Debugger.

  1. Otevřete projekt, který chcete ladit snímky.

    Důležité

    Pokud chcete provést ladění snímků, musíte otevřít stejnou verzi zdrojového kódu , která je publikovaná ve službě Azure Kubernetes.

  2. Zvolte Debug > Attach Snapshot Debugger.... Vyberte prostředek AKS, do které se vaše webová aplikace nasadí, a účet úložiště Azure a potom klikněte na Připojit. Snapshot Debugger také podporuje Aplikace Azure Service a Azure Virtual Machines a Škálovací sady virtuálních počítačů.

    Launch the snapshot debugger from the Debug menu

    Select Azure Resource

    Poznámka:

    (Visual Studio 2019 verze 16.2 a novější) Snapshot Debugger povolil podporu cloudu Azure. Ujistěte se, že prostředky Azure i účet Azure Storage, které vyberete, jsou ze stejného cloudu. Pokud máte dotazy týkající se konfigurací dodržování předpisů Azure vašeho podniku, obraťte se na správce Azure.

Visual Studio je teď v režimu ladění snímků.

Snapshot debugging mode

V okně Moduly se zobrazí, kdy se všechny moduly načetly pro službu Aplikace Azure Service (výběrem možnosti Ladit > moduly systému Windows > otevřete toto okno).

Check the Modules window

Nastavení přichycení

  1. V editoru kódu klikněte na levý hřbet vedle řádku kódu, který vás zajímá, abyste nastavili snappoint. Ujistěte se, že se jedná o kód, o který víte, že se spustí.

    Set a snappoint

  2. Kliknutím na Spustit kolekci zapněte snappoint.

    Turn on the snappoint

    Tip

    Při prohlížení snímku nemůžete krokovat, ale do kódu můžete umístit několik přichycených bodů, abyste mohli sledovat provádění na různých řádcích kódu. Pokud máte v kódu více bodů snappointů, nástroj Snapshot Debugger zajistí, aby odpovídající snímky byly ze stejné relace koncového uživatele. Snapshot Debugger to dělá i v případě, že na vaši aplikaci narazilo mnoho uživatelů.

Pořízení snímku

Po nastavení přichycení můžete buď ručně vygenerovat snímek, a to tak, že přejdete do zobrazení prohlížeče vašeho webu a spustíte řádek kódu označeného nebo počkáte, až uživatelé vygenerují snímek ze svého používání webu.

Kontrola dat snímku

  1. Po dosažení bodu snappointu se snímek zobrazí v okně Diagnostické nástroje. Chcete-li toto okno otevřít, zvolte Ladit > nástroje > windows Zobrazit diagnostické nástroje.

    Open a snappoint

  2. Poklikáním na bod snappoint otevřete snímek v editoru kódu.

    Inspect snapshot data

    V tomto zobrazení můžete najet myší na proměnné a zobrazit data Tipy, použít okna Místní hodnoty, Kukátky a Zásobník volání a také vyhodnotit výrazy.

    Samotný web je stále aktivní a koncoví uživatelé nejsou ovlivněni. Ve výchozím nastavení se zachytí jenom jeden snímek na bod snappointu: po zachycení snímku se bod snappoint vypne. Pokud chcete zachytit další snímek na snappointu, můžete ho znovu zapnout kliknutím na Aktualizovat kolekci.

Do aplikace můžete také přidat další snappointy a zapnout je tlačítkem Aktualizovat kolekci.

Potřebujete pomoc? Stránky ladění snímků najdete v tématu Řešení potíží a známé problémy a nejčastější dotazy.

Nastavení podmíněného bodu snappointu

Pokud je obtížné znovu vytvořit konkrétní stav v aplikaci, zvažte použití podmíněného přichycení. Podmíněné přichycení pomáhají řídit, kdy pořídit snímek, například když proměnná obsahuje konkrétní hodnotu, kterou chcete zkontrolovat. Podmínky můžete nastavit pomocí výrazů, filtrů nebo počtu přístupů.

Vytvoření podmíněného bodu snappointu

  1. Klikněte pravým tlačítkem myši na ikonu zachytávání (duté koule) a zvolte Nastavení.

    Choose Settings

  2. V okně nastavení snappointu zadejte výraz.

    Type an expression

    Na předchozím obrázku se snímek pořídí pouze pro bod visitor.FirstName == "Dan"přichycení.

Nastavení logpointu

Kromě pořízení snímku při dosažení přichycení bodu snap-point můžete také nakonfigurovat snappoint pro protokolování zprávy (to znamená vytvořit protokolový bod). Můžete nastavit protokolovací body, aniž byste museli aplikaci znovu nasadit. Protokolovací body se spouští virtuálně a nezpůsobují žádný dopad nebo vedlejší účinky spuštěné aplikace.

Vytvoření protokolu

  1. Klikněte pravým tlačítkem myši na ikonu zachytávání (modrý šestiúhelník) a zvolte Nastavení.

  2. V okně nastavení snappointu vyberte Akce.

    Create a logpoint

  3. Do pole Zpráva můžete zadat novou zprávu protokolu, kterou chcete protokolovat. Proměnné ve zprávě protokolu můžete také vyhodnotit tak, že je umístíte do složených závorek.

    Pokud zvolíte okno Odeslat do výstupu, zobrazí se zpráva v okně Diagnostické nástroje.

    Logpoint data in the Diagnostic Tools window

    Pokud zvolíte možnost Odeslat do protokolu aplikace, zobrazí se při dosažení bodu protokolu zpráva kdekoli, kde uvidíte zprávy (System.Diagnostics.Tracenebo ILogger v .NET Core), jako je Přehledy aplikace.

V tomto kurzu jste se naučili používat snapshot Debugger pro Azure Kubernetes. Možná si budete chtít přečíst další podrobnosti o této funkci.