Diagnostické nástroje pro .NET Core 3.0

Od verze: .NET Core 3.0
Miroslav Holec

Miroslav Holec

30. září. 2019

.NET Core 3.0 podporuje balík nových diagnostických nástrojů, které mají vývojáři zdarma k dispozici a které umožňují snadno diagnostikovat .NET Core aplikace.

Global Tools

Diagnostické nástroje fungují pouze pro aplikace, které běží nad .NET Core 3.0. Aplikace automaticky emitují různé metriky nebo události, které umí sbírat tzv. global tools a následně je vizualizovat v konzoli. Každý global tool je nutné separátně instalovat.

dotnet-counters

Tento nástroj umí pracovat s metrikami .NET Core aplikace a ukázat v reálném čase využití CPU, operační paměti a garbage collectoru. Instalovat je můžete příkazem:

dotnet tool install --global dotnet-counters

dotnet-trace

Nástroj dotnet-trace pracuje s událostmi (diag traces), které jsou sbírány skrze Windows Event Tracing nebo LTTng na Linuxu. Spuštěním nástroje dojde k profilování aplikace a vytvoření netperf souboru, který lze analyzovat v PerfView. Pro linux a mac lze netperf konvertovat do formátu speedscope (JSON) a analyzovat jej v aplikaci speedscope online. Nástroj můžete instalovat příkazem:

dotnet tool install --global dotnet-dump

dotnet-dump

Zatím pouze pro Windows a Linux můžete použít nástroj dotnet-dump, který umí vytvořit dump vybraného procesu.

dotnet tool install --global dotnet-dump

Na linuxu je oproti Windows dostupná i podpora analýzy dumpu příkazem:

dotnet dump analyze dump-name

LLDB

Pro vývojáře v prostředí Linuxu a macOS se nabízí také využití nástroje LLDB. Pomocí něj se lze připojit k .NET Core procesu a analyzovat jej. K tomu je potřeba SOS plugin, který lze opět instalovat jako dotnet global tool:

dotnet tool install -g dotnet-sos

Abyste nemuseli plugin do LLDB pokaždé připojovat, stačí provolat:

dotnet-sos install

a po dalším spuštění LLDB se automaticky zpřístupní i SOS. Řada příkazů z SOS se navíc zpřístupní skrze aliasy přímo v LLDB.

V LLDB lze dále nastavit symbol server zavoláním příkazu

setsymbolserver -ms

Více o diagnostických nástrojích včetně příkladů se dočtete na GitHubu.

TOP Termíny školení

ASP.NET Core se dočkal již své třetí verze a nabízí řadu možností pro vývoj webových aplikací a služeb. I v roce 2020 mám vypsané termíny na nejrůznější témata od základů .NET Core přes vývoj REST API až po mikroslužby pomocí gRPC.

Termín Místo
🍀 Novinky a změny v ASP.NET Core 3.x leden 2020 Praha více
🍀 Vývoj REST API v .NET Core (třídenní) leden 2020 Praha více
🍀 Vývoj aplikací v ASP.NET Core březen 2020 Praha více
🍀 Microservices v ASP.NET Core gRPC březen 2020 Praha více
🍀 Vývoj REST API v .NET Core (dvoudenní) březen 2020 Praha více
🍀 Tipy a triky pro ASP.NET Core březen 2020 Praha více

👨‍🎓 Čerstvá školení 2020
👍 Vývoj aplikací v ASP.NET Core
👍 Vývoj REST služeb v .NET Core
👍 Microservices v ASP.NET Core gRPC
👍 Tipy a triky v ASP.NET Core
👍 Změny v ASP.NET Core 3.x