Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het vaststellen van prestatieproblemen van uw toepassing kan lastig zijn, met name wanneer uw app wordt uitgevoerd in een productieomgeving in de dynamische cloud. Infrastructuur, framework of toepassingscode die de aanvraag in de pijplijn verwerkt, kan leiden tot trage reacties in uw toepassing.
Codeoptimalisaties, een op AI gebaseerde service in Azure Application Insights, werken samen met de Application Insights Profiler voor .NET. Samen detecteren ze prestatieproblemen met CPU- en geheugengebruik op codeniveau. Ze bieden aanbevelingen voor het oplossen van deze problemen.
Neem weloverwogen beslissingen en optimaliseer uw code met behulp van realtime prestatiegegevens en inzichten die zijn verzameld uit uw productieomgeving.
Codeoptimalisaties en Application Insights Profiler voor .NET
De .NET Profiler en Code Optimizations werken samen om een holistische benadering van prestatieprobleemdetectie te bieden.
Codeoptimalisaties
Code Optimizations identificeert, analyseert en lost de profileringsgegevens op die door de Application Insights Profiler voor .NET zijn verzameld. Naarmate de .NET Profiler gegevens uploadt naar Application Insights, analyseert ons machine learning model enkele gegevens om te vinden waar de code van de toepassing kan worden geoptimaliseerd. Codeoptimalisaties:
- Geeft geaggregeerde gegevens weer die in de loop van de tijd zijn verzameld.
- Hiermee worden gegevens verbonden met de methoden en functies in uw toepassingscode.
- Beperkt de schuld door knelpunten in de code te vinden.
- Biedt prestatiecorrecties op codeniveau op basis van inzichten.
Identificeren
Op de geconsolideerde overzichtspagina Code Optimizations ziet u alle codeoptimalisaties in uw Azure abonnementen en Application Insights-resources in de Azure portal.
Codeoptimalisaties verzamelen inzichten uit gegevens die zijn verzameld door de .NET Profiler en uit momentopnamen van de Snapshot Debugger, indien ingeschakeld. U kunt knelpunten in uw code identificeren en aanbevelingen op codeniveau controleren voor ontwikkel-, test-, preproductie- en productieomgevingen.
Analyseren
Nadat de gegevens van uw omgeving zijn verzameld uit de .NET Profiler-traceringen en momentopnamen van Snapshot Debugger, biedt Code-optimalisaties aanbevelingen op codeniveau op uurbasis indien ingeschakeld. In de samengevoegde gegevensweergave ziet u standaard een doorlopend 24-uursvenster met onlangs geïdentificeerde problemen, met een geschiedenis van 30 dagen waarmee u eerdere gebeurtenissen kunt bekijken en analyseren.
Oplossen
Nadat u codeoptimalisaties hebt geïdentificeerd en geanalyseerd, kunt u de knop Details kopiëren in Azure Portal gebruiken om de inzichtcontext handmatig naar uw favoriete hulpprogramma te brengen, zoals GitHub Copilot.
U kunt ook een GitHub probleem maken op de pagina Codeoptimalisaties in de Azure portal en deze toewijzen aan de GitHub Copilot-coderingsagent. Van daaruit opent GitHub Copilot een pull request en voert codewijziging-commits door op basis van codeoptimalisaties.
Demovideo
Application Insights Profiler voor .NET
De .NET Profiler richt zich op het traceren van specifieke aanvragen, tot in milliseconden. Het biedt een uitstekend overzicht van problemen in uw toepassing en algemene aanbevolen procedures om ze op te lossen.
Met Application Insights Profiler voor .NET kunt u prestatietraceringen vastleggen, identificeren en weergeven voor uw toepassing die wordt uitgevoerd in Azure, ongeacht het scenario. Het traceringsproces van .NET Profiler vindt automatisch plaats, op schaal en heeft geen negatieve invloed op uw gebruikers. De .NET Profiler identificeert:
- De gemiddelde, snelste en langzaamste responstijden voor de webaanvragen die door uw klanten worden verzonden.
- Het dynamische codepad besteedt de meeste tijd aan het verwerken van een bepaalde webaanvraag.
Schakel profiler voor .NET in voor al uw Azure toepassingen om gegevens te verzamelen met de volgende triggers:
- Samplingtrigger: Profiler wordt ongeveer één keer per uur voor twee minuten gestart.
- CPU-trigger: Start Profiler wanneer het CPU-gebruikspercentage hoger is dan 80 procent.
- Geheugentrigger: Start Profiler wanneer het geheugengebruik hoger is dan 80 procent.
Elk van deze triggers kan worden geconfigureerd, ingeschakeld of uitgeschakeld.
Kosten en overhead
Codeoptimalisaties worden automatisch gegenereerd nadat Application Insights Profiler voor .NET is ingeschakeld. Profiler verzamelt standaard iedere uur gedurende 30 seconden actief traceringen of bij hoge CPU- of geheugengebruik voor 30 seconden. De uurtraceringen ( ook wel steekproeven genoemd) zijn ideaal voor proactieve afstemming. De hoge CPU- en geheugentraceringen ( triggers genoemd) zijn handig voor reactieve probleemoplossing.
Opmerking
Wanneer de Application Insights Profiler voor .NET actief wordt uitgevoerd en traceringen verzamelt, wordt doorgaans tussen 5% en 15% cpu- en geheugenoverhead aan uw server toegevoegd.
Er zijn geen extra kosten voor het opslaan van gegevens die zijn vastgelegd door .NET Profiler. De gegevens worden na 15 dagen automatisch verwijderd.
Voor sommige functies voor codeoptimalisaties, zoals suggesties voor oplossingen op codeniveau, is Copilot vereist voor GitHub of Copilot voor Azure.
.NET Profiler inschakelen
Naarmate frameworks en Azure-services zich ontwikkelen, kunt u .NET Profiler inschakelen voor uw .NET-apps die worden uitgevoerd in Azure met behulp van verschillende opties.
| Azure-dienst | Inschakelen | Bijzonderheden |
|---|---|---|
| De meeste Azure services | Codewijziging in uw toepassing (meest universeel) |
Als uw .NET-app wordt uitgevoerd op varianten van Azure PaaS-services of -containers, kunt u kiezen tussen twee opties voor het inschakelen van .NET Profiler: - Application Insights Profiler voor ASP.NET Core die gebruikmaakt van de Application Insights SDK of - NieuweAzure Monitor OpenTelemetry Profiler voor .NET (Preview) die gebruik maakt van Azure Monitor OpenTelemetry Distro |
| Azure App Service | Geen codewijziging voor uw toepassing | Omdat profiler vooraf is geïnstalleerd, kunt u Profiler inschakelen voor .NET in Azure Portal voor: - Azure App Service - .NET-app op Windows - Azure Functions - App Serviceplan |
| Virtual Machines | Geen codewijziging voor uw toepassing | Nadat de Application Insights SDK is ingeschakeld in uw toepassingscode, kunt u profiler voor .NET inschakelen in uw ARM-sjabloon. - Azure Virtual Machines en Virtual Machine Scale Sets voor Windows - Azure Service Fabric |
Details en voorbeelden voor het inschakelen van Profiler voor .NET
-
- Azure Container Apps
- Azure Kubernetes Services
- Azure Container Instances
Azure Virtual Machines en Virtual Machine Scale Sets voor Windows
Opmerking
U kunt ook de Java Profiler gebruiken voor Azure Application Insights bewaken, momenteel als preview-versie.
Ondersteunde regio's
Codeoptimalisaties zijn beschikbaar in dezelfde regio's als Application Insights. U kunt de beschikbare regio's controleren met behulp van de volgende opdracht:
az account list-locations -o table
U kunt een expliciete regio instellen met behulp van verbindingsreeks s. Zie Voorbeelden van verbindingsreeksen voor meer informatie.
Beperkingen
Profiler
-
Het profileren van web-apps:
- U kunt de .NET Profiler zonder extra kosten gebruiken, hoewel uw web-app minimaal moet worden gehost in de Basic-laag van de functie Web Apps.
- U kunt slechts één profiler aan elke web-app koppelen.
Codeoptimalisaties
- vereisten voor Storage:
- Op dit moment werken code-optimalisaties alleen met de standaard Profiler- of Application Insights-opslag. Het is niet compatibel met Bring-Your-Own-Storage (BYOS).
Probleemoplossingsproces
Profiler
Als u de profiler hebt ingeschakeld voor .NET maar geen traceringen ziet, raadpleegt u de Troubleshooting-handleiding.
Codeoptimalisaties
Ondervindt u problemen? Raadpleeg de gids voor probleemoplossing voor codeoptimalisaties voor scenariooplossingen.
Verwante inhoud
Meer informatie over het inschakelen van de .NET Profiler met codeoptimalisaties in uw Azure-service: