Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Software se nechová vždy tak, jak byste očekávali, ale .NET má nástroje a rozhraní API, které vám pomůžou tyto problémy rychle a efektivně diagnostikovat.
Nativní nasazení AOT je aplikační model, který je k dispozici od verze .NET 7. Informace o podpoře diagnostiky .NET 8 pro nativní aplikace AOT najdete v tématu Nativní diagnostika AOT.
Tento článek vám pomůže najít různé nástroje, které potřebujete.
Ladící programy
Ladicí programy umožňují interakci s programem. Pozastavení, přírůstkové spouště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.
Profilátory
Profilátory umožňují analyzovat výkon programu. Můžete shromažďovat data o využití paměti, využití procesoru a dalších metrikách za účelem diagnostiky a pochopení problémů s výkonem.
Instrumentace pro pozorovatelnost
.NET podporuje techniky instrumentace oborových standardů s využitím metrik, protokolů a distribuovaných trasování, které se běžně označují jako tři pilíře pozorovatelnosti.
Instrumentace je kód, který se přidá do softwarového projektu, který zaznamená, co dělá. Tyto informace je pak možné shromažďovat v souborech, databázích nebo v paměti a analyzovat je, abyste pochopili, jak softwarový program funguje. To se často používá v produkčních prostředích k monitorování problémů a jejich diagnostice. Modul runtime .NET má integrovanou instrumentaci, která může být volitelně povolená a rozhraní API, která umožňují přidat vlastní instrumentaci specializovanou pro vaši aplikaci.
Záznamy
Protokolování je technika, kdy se kód instrumentuje k vytvoření protokolu, záznam zajímavých událostí, ke kterým došlo při spuštění programu. Často je ve výchozím nastavení nakonfigurovaná 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.
Ve většiněpřípadůch
ILogger podporuje rychlé strukturované protokolování, flexibilní konfiguraci a kolekci běžných jímek, včetně konzoly , což se zobrazí při spuštění aplikace ASP.NET.
ILogger Rozhraní také může sloužit jako fasáda nad mnoha implementacemi protokolování třetích stran, které nabízejí bohaté funkce a rozšiřitelnost.
Metrics
Metriky jsou číselné hodnoty 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. Výjimky se často zaznamenávají jako metriky a dají se shrnout, aby se snížila kardinalita dat. Další informace najdete v tématu Souhrn výjimek.
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říč více 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 může aplikace provádět pro souběžné požadavky. Je možné trasovat 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.
Shromažďování instrumentace
Data instrumentace se dají z aplikace vycházet několika způsoby, mezi které patří:
- OpenTelemetry – multiplatformní standard neutrální pro dodavatele pro shromažďování a export telemetrie
- Nástroje rozhraní příkazového řádku .NET, jako jsou čítače dotnet
- dotnet-monitor – agent pro shromažďování trasování a telemetrie
- Knihovny nebo kód aplikace třetích stran mohou číst informace z System.Diagnostics.Metricsrozhraní API ILogger<TCategoryName>a System.Diagnostics.Activity rozhraní API.
Specializovaná diagnostika
Pokud ladění nebo pozorovatelnost nestačí, podporuje .NET další diagnostické mechanismy, jako jsou EventSource, Dumps, DiagnosticSource. Další informace najdete ve specializovaném článku o diagnostice .
Diagnostické nástroje
.NET podporuje řadu nástrojů rozhraní příkazového řádku , které je možné použít k diagnostice vašich aplikací.
Kurzy diagnostiky .NET Core
Odladit únik paměti
Kurz: Ladění nevracení paměti vás provede vyhledáním nevrácené paměti. Nástroj dotnet-counters slouží k potvrzení úniku a nástroj dotnet-dump se používá k diagnostice úniku.
Odstraňování problémů s vysokým využitím procesoru
Kurz: Ladění vysokého využití procesoru vás provede zkoumáním vysokého využití procesoru. K potvrzení vysokého využití procesoru používá nástroj dotnet-counters . Pak vás provede používáním nástroje Trace pro analýzu výkonu (dotnet-trace) nebo Linuxu perf ke shromažďování a zobrazení profilu využití procesoru.
Ladění vzájemného zablokování
Kurz: Ladění zablokování ukazuje, jak pomocí nástroje dotnet-dump prozkoumat vlákna a zámky.
Ladění hladovění fondu vláken
Kurz: Ladění hladového fondu vláken ukazuje, jak použít dotnet-counters a dotnet-stack nástroje pro zkoumání hladovění ThreadPool.
Ladění StackOverflow
Kurz: Ladění StackOverflow ukazuje, jak ladit v Linuxu StackOverflowException .
Ladění výpisů systému Linux
Ladění výpisů systému Linux vysvětluje, jak shromažďovat a analyzovat výpisy v Linuxu.
Měření výkonu pomocí EventCounters
Kurz: Měření výkonu pomocí EventCounters v .NET ukazuje, jak pomocí EventCounter rozhraní API měřit výkon v aplikaci .NET.
Vytvoření vlastního diagnostického nástroje
Klientská knihovna diagnostiky umožňuje napsat vlastní diagnostický nástroj, který je nejvhodnější pro váš scénář diagnostiky. Další informace najdete v referenčních informacích k rozhraní MICROSOFT.Diagnostics.NETCore.Client API.