Jaké diagnostické nástroje jsou k dispozici v .NET Core?
Článek
Software se nechová vždy podle očekávání, ale .NET Core má nástroje a rozhraní API, které vám pomůžou tyto problémy rychle a efektivně diagnostikovat.
Tento článek vám pomůže najít různé nástroje, které potřebujete.
Debuggery
Ladicí programy umožňují pracovat s programem. Pozastavení, přírůstkové provádění, zkoumání a obnovení poskytuje přehled o chování kódu. Ladicí program je dobrou volbou pro diagnostiku funkčních problémů, které lze snadno reprodukovat.
Testování jednotek
Testování částí je klíčovou součástí kontinuální integrace a nasazování vysoce kvalitního softwaru. Testy jednotek jsou navržené tak, aby vám poskytly včasné upozornění, když něco přerušíte.
Instrumentace pro pozorovatelnost
.NET podporuje standardní techniky instrumentace v oboru s využitím metrik, protokolů a distribuovaných trasování. Instrumentace je kód přidaný do softwarového projektu, který zaznamenává, co dělá. Tyto informace se pak dají shromažďovat v souborech, databázích nebo v paměti a analyzovat je, abyste pochopili, jak softwarový program funguje. Často se používá v produkčních prostředích k monitorování problémů a jejich diagnostice. Modul runtime .NET obsahuje integrovanou instrumentaci, která může být volitelně povolená a rozhraní API, která umožňují přidat vlastní instrumentaci specializovanou pro vaši aplikaci.
Metriky
Metriky jsou číselné měření zaznamenané v průběhu času za účelem monitorování výkonu a stavu aplikace. Metriky se často používají k generování výstrah při zjištění potenciálních problémů. Metriky mají velmi nízkou režii na výkon a mnoho služeb je konfiguruje jako vždy zapnutou telemetrii.
Protokoly
Protokolování je technika, kdy je kód instrumentován k vytvoření protokolu, záznam zajímavých událostí, ke kterým došlo při spuštění programu. Často se ve výchozím nastavení konfiguruje základní sada událostí protokolu a pro diagnostiku konkrétních problémů je možné povolit rozsáhlejší protokolování na vyžádání. Režie na výkon je proměnná v závislosti na tom, kolik dat se protokoluje.
Distribuované trasování
Distribuované trasování je specializovaná forma protokolování, která pomáhá lokalizovat chyby a problémy s výkonem v aplikacích distribuovaných napříč několika počítači nebo procesy. Tato technika sleduje požadavky prostřednictvím korelace aplikace, kterou společně provádějí různé komponenty aplikace a oddělují je od jiné práce, kterou aplikace může provádět pro souběžné požadavky. Je možné sledovat všechny požadavky a vzorkování je možné volitelně použít k vázání režijních nákladů na výkon.
Výpisy stavu systému
Výpis paměti je soubor, který obsahuje snímek procesu v době vytvoření. To může být užitečné při zkoumání stavu aplikace pro účely ladění.
Symboly
Symboly jsou mapování mezi zdrojovým kódem a binárním souborem vytvořeným kompilátorem. Běžně se používají ladicí programy .NET k překladu čísel zdrojových řádků, názvů místních proměnných a dalších typů diagnostických informací.
Shromažďování diagnostických dat v kontejnerech
Stejné diagnostické nástroje, které se používají v nekontenerizovaných linuxových prostředích, lze použít také ke shromažďování diagnostiky v kontejnerech. K zajištění toho, aby nástroje fungovaly v kontejneru Dockeru, je potřeba jen pár změn použití.
Globální nástroje diagnostiky .NET Core
dotnet-counters
dotnet-counters je nástroj pro monitorování výkonu pro monitorování stavu na první úrovni a prošetřování výkonu. Sleduje hodnoty čítače výkonu EventCounter publikované prostřednictvím rozhraní API. Můžete například rychle monitorovat například využití procesoru nebo četnost výjimek, které se v aplikaci .NET Core vyvolává.
dotnet-dump
Nástroj dotnet-dump je způsob, jak shromažďovat a analyzovat Windows a linuxové výpisy paměti jádra bez nativního ladicího programu.
dotnet-gcdump
Nástroj dotnet-gcdump je způsob, jak shromáždit výpisy paměti uvolňování paměti živých procesů .NET.
dotnet-trace
.NET Core zahrnuje to, co se označuje jako EventPipe to, přes která jsou vystavená diagnostická data. Nástroj dotnet-trace umožňuje využívat zajímavá data profilace z vaší aplikace, která vám můžou pomoct ve scénářích, kdy potřebujete způsobit zpomalení aplikací.
dotnet-stack
Nástroj dotnet-stack umožňuje rychle vytisknout spravované zásobníky pro všechna vlákna v běžícím procesu .NET.
dotnet-symbol
dotnet-symbol stahuje soubory (symboly, DAC/DBI, hostitelské soubory atd.) potřebné k otevření základního výpisu paměti nebo minidumpu. Tento nástroj použijte, pokud potřebujete symboly a moduly k ladění souboru výpisu paměti zachyceného na jiném počítači.
PerfCollect je skript bash, který můžete použít ke shromažďování trasování a perfLTTng k podrobnější analýze výkonu aplikací .NET běžících v distribucích Linuxu.
Využijte službu Web App Down, Crash Monitoring a Ask Genie k řešení potíží. Pomocí těchto nástrojů můžete monitorovat dostupnost aplikací a platforem, identifikovat neošetřené výjimky, zachytit výpisy paměti a kontejner volání a najít oblasti vyšetřování a diagnostiky.
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.