Monitorování a analýza chování modulu runtime pomocí optimalizací kódu

Diagnostika problémů s výkonem vaší aplikace může být obtížná, zejména když vaše aplikace běží v produkčním prostředí v dynamickém cloudu. Infrastruktura, rámec nebo kód aplikace, který zpracovává požadavek v potrubí, může způsobit pomalé reakce aplikace.

Optimalizace kódu, služba založená na umělé inteligenci v Azure Application Insights, funguje společně s profilerem Application Insights pro .NET. Společně detekují problémy s výkonem procesoru a paměti na úrovni kódu. Poskytují doporučení, jak tyto problémy vyřešit.

Proveďte informovaná rozhodnutí a optimalizujte kód pomocí dat o výkonu v reálném čase a přehledů shromážděných z produkčního prostředí.

Optimalizace kódu a profiler systému Application Insights pro .NET

Profiler .NET a optimalizace kódu spolupracují, aby poskytovaly holistický přístup k detekci problémů s výkonem.

Optimalizace kódu

Optimalizace kódu identifikuje, analyzuje a řeší data profilace shromážděná profilerem Application Insights pro .NET. Vzhledem k tomu, že profiler .NET nahrává data do Application Insights, náš model machine learning analyzuje některá data a zjistí, kde je možné optimalizovat kód aplikace. Optimalizace kódu:

  • Zobrazí agregovaná data shromážděná v průběhu času.
  • Spojuje data s metodami a funkcemi v kódu aplikace.
  • Zužuje příčinu hledáním kritických bodů v kódu.
  • Poskytuje opravy výkonu na úrovni kódu na základě přehledů.

Identifikovat

Na stránce s přehledem Optimalizace kódu můžete v Azure portal zobrazit všechny optimalizace kódu v rámci předplatných Azure a prostředků Application Insights.

Optimalizace kódu shromáždí přehledy z dat shromážděných profilerem .NET a ze snímků snapshot debuggeru, pokud je tato možnost povolená. V kódu můžete identifikovat kritické body a zkontrolovat doporučení na úrovni kódu pro vývoj, testování, předprodukční a produkční prostředí.

Analyzovat

Jakmile jsou data z vašeho prostředí shromážděna z tras .NET Profileru a snímků Debuggeru, pokud jsou povolena, optimalizace kódu poskytují doporučení na úrovni kódu každou hodinu. Ve výchozím nastavení agregované zobrazení dat zobrazuje 24hodinové okno nedávno zjištěných problémů s 30denní historií, ve které můžete zkontrolovat a analyzovat minulé události.

Vyřešit

Jakmile identifikujete a analyzujete optimalizace kódu, můžete pomocí tlačítka Kopírovat podrobnosti na webu Azure Portal ručně přenést kontext přehledu k vašemu oblíbenému nástroji, jako je GitHub Copilot.

Problém s GitHub můžete vytvořit také na stránce Optimalizace kódu v Azure portal a assignovat ho k agentovi kódování GitHub Copilot. Odtud GitHub Copilot otevře žádost o přijetí změn a odešle potvrzení změn kódu na základě optimalizace kódu.

Ukázkové video

Application Insights Profiler pro .NET

Profiler .NET se zaměřuje na trasování konkrétních požadavků až do milisekund. Poskytuje vynikající přehled o problémech ve vaší aplikaci a obecné osvědčené postupy pro jejich řešení.

S profilerem Application Insights pro .NET můžete zachytit, identifikovat a zobrazit trasování výkonu vaší aplikace spuštěné v Azure bez ohledu na scénář. Proces trasování .NET Profileru probíhá automaticky, ve velkém měřítku a nemá negativní vliv na vaše uživatele. Profiler .NET identifikuje:

  • Medián, nejrychlejší a nejpomalejší dobu odezvy pro jednotlivé webové požadavky provedené vašimi zákazníky.
  • Cesta k horkému kódu tráví nejvíce času zpracováním konkrétního webového požadavku.

Povolte Profiler pro .NET ve všech aplikacích Azure, aby shromažďoval data s následujícími triggery:

  • Spouštěč vzorkování: Spustí Profiler náhodně přibližně jednou za hodinu po dobu dvou minut.
  • Trigger procesoru: Spustí Profiler, když je procento využití procesoru nad 80 procent.
  • Spouštěč paměti: Spustí Profiler, když využití paměti přesáhne 80 procent.

Každá z těchto aktivačních událostí může být nakonfigurovaná, povolená nebo zakázaná.

Náklady a režijní náklady

Optimalizace kódu se generují automaticky po povolení profileru Application Insights pro .NET. Ve výchozím nastavení Profiler aktivně shromažďuje trasování každou hodinu po dobu 30 sekund nebo během období vysokého využití procesoru nebo paměti po dobu 30 sekund. Hodinové sledování (označované jako vzorkování) je skvělé pro proaktivní ladění. Vysoké stopy procesoru a paměti (označované jako triggery) jsou užitečné pro reaktivní odstraňování problémů.

Poznámka:

Když je profiler Application Insights pro .NET aktivně spuštěný a shromažďuje trasování, obvykle přidává serveru režii procesoru a paměti od 5 % do 15 %.

žádné dodatečné náklady za ukládání dat zachycených nástrojem .NET Profiler. Data se automaticky odstraní po 15 dnech.

Některé funkce optimalizace kódu, jako jsou návrhy oprav na úrovni kódu, vyžadují Copilot pro GitHub nebo Copilot pro Azure.

Povolení profileru .NET

S tím, jak se architektury a služby Azure vyvíjejí, můžete povolit .NET Profiler pro vaše aplikace .NET běžící v Azure pomocí různých možností.

služba Azure Jak povolit Podrobnosti
Většina služeb Azure Změna kódu v aplikaci
(většina univerzálních)
Pokud vaše .NET aplikace běží na variantách služeb paaS nebo kontejnerů Azure, můžete si vybrat mezi dvěma možnostmi povolení .NET Profileru:
- Profiler aplikace Application Insights pro ASP.NET Core, který používá sadu Application Insights SDK nebo
- NovýProfiler OpenTelemetry služby Azure Monitor pro .NET (Preview), který používá distribuci OpenTelemetry služby Azure Monitor
Azure App Service Žádná změna kódu pro vaši aplikaci Vzhledem k tomu, že je Profiler předinstalovaný, můžete profiler pro .NET povolit na webu Azure Portal pro:
- Azure App Service – .NET aplikace na Windows
- Azure Functions – plán App Service
Virtual Machines Žádná změna kódu pro vaši aplikaci Po povolení sady Application Insights SDK v kódu aplikace můžete v šabloně ARM povolit Profiler pro .NET.
- Azure Virtual Machines a sady škálovacích virtuálních počítačů pro Windows
- Azure Service Fabric

Podrobnosti a příklady povolení profileru pro .NET

Poznámka:

Můžete také použít Java Profiler pro Azure Monitor Application Insights, který je aktuálně v předběžné verzi.

Podporované oblasti

Optimalizace kódu jsou dostupné ve stejných oblastech jako Application Insights. Dostupné oblasti můžete zkontrolovat pomocí následujícího příkazu:

az account list-locations -o table

Explicitní oblast můžete nastavit pomocí připojovací řetězec. Další informace najdete v příkladech připojovacího řetězce.

Omezení

Profiler

  • Profilování webových aplikací:
    • Můžete používat Profiler .NET bez dalších poplatků, i když vaše webová aplikace musí být hostovaná minimálně ve funkci Web Apps na úrovni Basic.
    • Ke každé webové aplikaci můžete připojit pouze jeden profiler.

Optimalizace kódu

  • požadavky na úložiště:
    • Optimalizace kódu v současné době fungují jenom s výchozím profilerem nebo úložištěm Application Insights. Není kompatibilní s funkcí Bring-Your-Own-Storage (BYOS).

Řešení problémů

Zjistěte, jak povolit profiler .NET pomocí optimalizace kódu ve službě Azure: