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:
ASP.NET aplikace Core spuštěné v .NET Core 2.2 nebo novější v Debianu 9.
ASP.NET aplikace Core spuštěné v .NET Core 2.2 nebo novější v Alpine 3.8.
ASP.NET aplikací Core běžících v .NET Core 2.2 nebo novějším v Ubuntu 18.04.
Poznámka:
Abychom vám pomohli povolit podporu pro Snapshot Debugger v AKS, poskytli jsme úložiště obsahující sadu souborů Dockerfile, které demonstrují nastavení imagí Dockeru.
Otevřete projekt a spusťte Snapshot Debugger.
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.
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čů.
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ů.
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).
Nastavení přichycení
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í.
Kliknutím na Spustit kolekci zapněte 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
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.
Poklikáním na bod snappoint otevřete snímek v editoru kódu.
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
Klikněte pravým tlačítkem myši na ikonu zachytávání (duté koule) a zvolte Nastavení.
V okně nastavení snappointu zadejte výraz.
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
Klikněte pravým tlačítkem myši na ikonu zachytávání (modrý šestiúhelník) a zvolte Nastavení.
V okně nastavení snappointu vyberte Akce.
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.
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.Trace
neboILogger
v .NET Core), jako je Přehledy aplikace.
Související obsah
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.