Dela via


Övervaka och analysera körningsbeteende med kodoptimeringar

Det kan vara svårt att diagnostisera programmets prestandaproblem, särskilt när du kör i en produktionsmiljö i det dynamiska molnet. Långsamma svar i ditt program kan orsakas av infrastruktur, ramverk eller programkod som hanterar begäran i pipelinen.

Kodoptimeringar, en AI-baserad tjänst i Azure Application Insights, fungerar tillsammans med Application Insights Profiler för .NET för att identifiera problem med processor- och minnesanvändning på kodnivå och ge rekommendationer om hur du åtgärdar dem.

Fatta välgrundade beslut och optimera koden med hjälp av prestandadata och insikter i realtid som samlats in från din produktionsmiljö.

Du kan granska dina kodoptimeringar i Azure-portalen.

Kodoptimeringar och Application Insights Profiler för .NET

.NET Profiler och kodoptimeringar fungerar tillsammans för att ge en holistisk metod för identifiering av prestandaproblem.

Kodoptimeringar

Kodoptimeringar identifierar, analyserar och löser de profileringsdata som samlas in av Application Insights Profiler för .NET. När .NET Profiler laddar upp data till Application Insights analyserar vår maskininlärningsmodell en del av data för att ta reda på var programmets kod kan optimeras. Kodoptimeringar:

  • Visar aggregerade data som samlats in över tid.
  • Ansluter data med metoderna och funktionerna i programkoden.
  • Begränsar den skyldige genom att hitta flaskhalsar i koden.
  • Tillhandahåller prestandakorrigeringar på kodnivå baserat på insikter.

Identifiera

Med hjälp av den konsoliderade översiktssidan för kodoptimering kan du se alla rekommendationer för kodoptimering i dina Azure-prenumerationer och Application Insights-resurser i Azure-portalen. Identifiera flaskhalsar i koden och granska rekommendationer på kodnivå för utvecklings-, test-, förproduktions- och produktionsmiljöer.

Analysera

När miljöns data har samlats in ger kodoptimeringar rekommendationer på kodnivå varje timme. Som standard visar den aggregerade datavyn ett rullande 24-timmarsfönster med nyligen identifierade problem, med en 30-dagars historik där du kan granska och analysera tidigare händelser.

Lös problemet

När du har identifierat och analyserat kodoptimeringsresultatet kan du lösa dessa problem i koden med hjälp av tilläggen För kodoptimeringar i Visual Studio och Visual Studio Code . Med dessa tillägg interagerar du med GitHub Copilot för att ta emot en kodkorrigering som baseras på insikter om kodoptimeringar.

Du kan också skapa ett GitHub-problem från sidan Kodoptimeringar i Azure-portalen och tilldela det till GitHub Copilot-kodningsagenten. Därifrån öppnar GitHub Copilot en pull-begäran och pushar kodändringar baserat på insikter om kodoptimering.

Demovideo

Application Insights Profiler för .NET

.NET Profiler fokuserar på att spåra specifika begäranden, ned till millisekunderna. Det ger en utmärkt "helhetsbild" av problem i ditt program och allmänna metodtips för att åtgärda dem.

Med Application Insights Profiler för .NET kan du samla in, identifiera och visa prestandaspårningar för ditt program som körs i Azure, oavsett scenario. Spårningsprocessen för .NET Profiler sker automatiskt i stor skala och påverkar inte användarna negativt. .NET Profiler identifierar:

  • Medianvärde, snabbaste och långsammaste svarstid för varje webbförfrågan dina kunder gör.
  • Kodsökvägen "frekvent" ägnar mest tid till att hantera en viss webbbegäran.

Aktivera Profiler för .NET i alla dina Azure-program för att samla in data med följande utlösare:

  • Samplingsutlösare: Startar Profiler slumpmässigt ungefär en gång i timmen i två minuter.
  • CPU-utlösare: Startar Profiler när cpu-användningsprocenten är över 80 procent.
  • Minnesutlösare: Startar Profiler när minnesanvändningen är över 80 procent.

Var och en av dessa utlösare kan konfigureras, aktiveras eller inaktiveras.

Kostnader och omkostnader

Kodoptimeringar genereras automatiskt när Application Insights Profiler för .NET har aktiverats. Profiler samlar som standard aktivt in spårningar varje timme i 30 sekunder eller under perioder med hög CPU- eller minnesanvändning i 30 sekunder. Spårningar varje timme (kallas sampling) är bra för proaktiv justering, medan höga CPU- och minnesspårningar (kallas utlösare) är användbara för reaktiv felsökning.

Anmärkning

När Application Insights Profiler för .NET aktivt kör och samlar in spårningar lägger den vanligtvis till mellan 5 % till 15 % av processor- och minneskostnaderna till servern.

Det finns ingen extra kostnad för att lagra data som samlas in av .NET Profiler. Data tas bort automatiskt efter 15 dagar.

Vissa kodoptimeringsfunktioner (till exempel förslag på kodnivåkorrigering) kräver Copilot för GitHub och/eller Copilot för Azure.

Aktivera .NET Profiler

Allt eftersom ramverk och Azure-tjänster utvecklas kan du aktivera .NET Profiler för dina .NET-appar som körs i Azure via ett antal alternativ.

Azure-tjänst Så här aktiverar du Detaljer
De flesta Azure-tjänster Kodändring i ditt program
(mest universella)
Om din .NET-app körs på varianter av Azure PaaS-tjänster eller Containrar kan du välja mellan två alternativ för att aktivera .NET Profiler:
- Application Insights Profiler för ASP.NET Core som använder Application Insights SDK, eller
- NyAzure Monitor OpenTelemetry Profiler för .NET (förhandsversion) som använder Azure Monitor OpenTelemetry Distro
Azure App Service Ingen kodändring för ditt program Eftersom Profiler är förinstallerat kan du aktivera Profiler för .NET i portalen för:
- Azure App Service – .NET-app i Windows
- Azure Functions – App Service-plan
Virtuella datorer Ingen kodändring för ditt program När du har aktiverat Application Insights SDK i programkoden kan du aktivera Profiler för .NET i ARM-mallen.
- Skalningsuppsättningar för virtuella Azure-datorer och virtuella datorer för Windows
- Azure Service Fabric

Information och exempel för att aktivera Profiler för .NET

Anmärkning

Du kan också använda Java Profiler för Azure Monitor Application Insights, för närvarande i förhandsversion.

Regioner som stöds

Kodoptimeringar är tillgängliga i samma regioner som Application Insights. Du kan kontrollera de tillgängliga regionerna med hjälp av följande kommando:

az account list-locations -o table

Du kan ange en explicit region med hjälp av anslutningssträng. Läs mer om anslutningssträngar med exempel.

Begränsningar

Profilering av webbappar:

  • Även om du kan använda .NET Profiler utan extra kostnad måste webbappen finnas på den grundläggande nivån för funktionen Web Apps i Azure App Service, åtminstone.
  • Du kan bara koppla en profilerare till varje webbapp.

Felsökning

  • Profiler

    Om du har aktiverat Profiler för .NET men inte ser spårningar kan du läsa felsökningsguiden.

  • Kodoptimeringar

    Stöter du på problem? I felsökningsguiden för kodoptimeringar finns scenariolösningar.

Nästa steg

Lär dig hur du aktiverar .NET Profiler med kodoptimeringar i din Azure-tjänst: