Problemen met Application Insights Profiler voor .NET oplossen
In dit artikel vindt u stappen voor probleemoplossing en informatie waarmee u Application Insights Profiler voor .NET kunt gebruiken.
Gebruikt u het juiste .NET Profiler-eindpunt?
Momenteel zijn de enige regio's die eindpuntwijzigingen vereisen Azure Government en Microsoft Azure beheerd door 21Vianet.
App-instelling | Cloud voor de Amerikaanse overheid | China-cloud |
---|---|---|
ApplicationInsightsProfilerEndpoint | https://profiler.monitor.azure.us |
https://profiler.monitor.azure.cn |
ApplicationInsightsEndpoint | https://dc.applicationinsights.us |
https://dc.applicationinsights.azure.cn |
Wordt uw app uitgevoerd op de juiste versie?
Profiler wordt ondersteund op .NET Framework later dan 4.6.2.
Als uw web-app een ASP.NET Core-toepassing is, moet deze worden uitgevoerd op de meest recente ondersteunde ASP.NET Core-runtime.
Gebruikt u het juiste Azure-serviceplan?
Profiler voor .NET wordt momenteel niet ondersteund in gratis of gedeelde App Service-abonnementen. Voer een upgrade uit naar een van de basisplannen voor Profiler om aan de slag te gaan.
Notitie
Het Azure Functions-verbruiksplan wordt niet ondersteund. Zie live Azure Functions-app profilen met Application Insights.
Zoekt u binnen het juiste tijdsbestek naar .NET Profiler-gegevens?
Als de gegevens die u probeert weer te geven ouder zijn dan twee weken, probeert u het tijdfilter te beperken en het opnieuw te proberen. Traceringen worden na zeven dagen verwijderd.
Bent u op de hoogte van de steekproeffrequentie en overhead van .NET Profiler?
De .NET Profiler voert willekeurig twee minuten per uur uit op elke virtuele machine die als host fungeert voor toepassingen waarvoor Profiler is ingeschakeld.
Notitie
Wanneer application Insights Profiler voor .NET actief wordt uitgevoerd en traceringen wordt verzameld, wordt meestal tussen 5% en 15% van de CPU- en geheugenoverhead aan uw server toegevoegd.
Er zijn geen extra kosten verbonden aan het opslaan van gegevens die zijn vastgelegd door .NET Profiler. De gegevens worden na 15 dagen automatisch verwijderd.
Hebt u toegang tot de gateway?
Controleer of een firewall of proxy's uw toegang tot deze webpagina niet blokkeren.
Ziet u time-outs of moet u controleren of de .NET Profiler wordt uitgevoerd?
Profileringsgegevens worden alleen geüpload wanneer deze kunnen worden gekoppeld aan een aanvraag die is opgetreden terwijl Profiler werd uitgevoerd. De .NET Profiler verzamelt gegevens gedurende twee minuten per uur. U kunt de Profiler ook activeren door een profileringssessie te starten.
Profiler schrijft traceringsberichten en aangepaste gebeurtenissen naar uw Application Insights-resource. U kunt deze gebeurtenissen gebruiken om te zien hoe profiler wordt uitgevoerd.
Zoek naar traceringsberichten en aangepaste gebeurtenissen die door de .NET Profiler naar uw Application Insights-resource worden verzonden.
Selecteer Zoeken in uw Application Insights-resource in het bovenste menu.
Gebruik de volgende zoekreeks om de relevante gegevens te vinden:
stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
De voorgaande zoekresultaten bevatten twee voorbeelden van zoekopdrachten uit twee AI-resources:
Als de toepassing geen aanvragen ontvangt terwijl Profiler wordt uitgevoerd, wordt in het bericht uitgelegd dat het uploaden is geannuleerd vanwege geen activiteit.
Profiler heeft aangepaste gebeurtenissen gestart en verzonden toen er aanvragen werden gedetecteerd die plaatsvonden terwijl Profiler werd uitgevoerd. Als de
ServiceProfilerSample
aangepaste gebeurtenis wordt weergegeven, betekent dit dat een profiel is vastgelegd en beschikbaar is in het deelvenster Prestaties van Application Insights.
Als er geen records worden weergegeven, wordt Profiler niet uitgevoerd of duurde het te lang om te reageren. Zorg ervoor dat Profiler is ingeschakeld in uw Azure-service.
De .NET Profiler is ingeschakeld, maar er zijn geen traceringen vastgelegd
Zelfs wanneer profiler is ingeschakeld, kunnen traceringen niet worden vastgelegd of geüpload, met name in deze situaties:
Geen binnenkomende aanvragen voor uw toepassing:
U kunt uw toepassing handmatig aanroepen of een beschikbaarheidstest of een belastingstest maken.Er zijn geen binnenkomende telemetriegegevens bevestigd door Application Insights:
- Als er verkeer naar uw toepassing komt: controleer of er binnenkomende aanvragen worden weergegeven in Application Insights Live Metrics.
- Als de
Incoming Requests
grafieken leeg zijn (geen gegevens of nul weergeven): los problemen met Application Insights op. - Als u uw .NET-toepassing host op Azure-app Service: probeer de stappen voor probleemoplossing voor App Service .NET.
Profiler-instelling voor sampling is uitgeschakeld:
Als er nog steeds geen profilertraceringen beschikbaar zijn, controleert u de instelling Profiler Sampling.- Open de blade Prestaties van Application Insights>.
- Klik op Profiler.
- Klik op de knop Triggers .
- Controleer in de triggerinstellingen of de wisselknop Sampling is ingeschakeld.
Nog steeds geen traceringen geüpload?
Maak een ondersteuningsaanvraag of vraag de ondersteuning van de Azure-community. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.
Dubbel tellen in parallelle threads
Wanneer twee of meer parallelle threads zijn gekoppeld aan een aanvraag, kan de totale tijdmeting in de stackviewer langer zijn dan de duur van de aanvraag. In dat geval is de totale threadtijd meer dan de werkelijke verstreken tijd.
Een thread kan bijvoorbeeld wachten op de andere om te worden voltooid. De kijker probeert deze situatie te detecteren en laat het oninterest wachten weg. Als u dit doet, wordt er aan de kant van het weergeven van te veel informatie in plaats van weg te laten wat kritieke informatie kan zijn.
Wanneer u parallelle threads in uw traceringen ziet, bepaalt u welke threads wachten, zodat u het dynamische pad voor de aanvraag kunt identificeren. Normaal gesproken wacht de thread die snel een wachtstatus krijgt, op de andere threads. Richt u op de andere threads en negeer de tijd in de wachtende threads.
Problemen met .NET Profiler in uw specifieke Azure-service oplossen
In de volgende secties wordt u stapsgewijs begeleid bij het oplossen van problemen met Profiler in Azure-app Service of Azure Cloud Services.
Azure App Service
Controleer of de .NET Profiler goed werkt:
Voor uw web-app is Application Insights ingeschakeld met de juiste instellingen.
De WebJob ApplicationInsightsProfiler3 wordt uitgevoerd. De webtaak controleren:
Ga naar Kudu. In Azure Portal:
- Selecteer geavanceerde hulpprogramma's in het linkerdeelvenster in uw App Service-exemplaar.
- Selecteer Zoeken.
Selecteer in het bovenste menu Extra>WebJobs-dashboard. Het deelvenster WebJobs wordt geopend.
Als ApplicationInsightsProfiler3 niet wordt weergegeven, start u de App Service-toepassing opnieuw.
Als u de details van de webtaak, inclusief het logboek, wilt weergeven, selecteert u de koppeling ApplicationInsightsProfiler3 . Het deelvenster Details van doorlopende webtaak wordt geopend.
Als de .NET Profiler nog steeds niet voor u werkt, downloadt u het logboek en verzendt u een ondersteuning voor Azure ticket.
Controleer de statuspagina van de site-extensie van Diagnostic Services
Als u de .NET Profiler hebt ingeschakeld via het deelvenster Application Insights in de portal, wordt deze beheerd door de site-extensie Diagnostic Services. U kunt de statuspagina van deze extensie controleren door naar https://{site-name}.scm.azurewebsites.net/DiagnosticServices
.
Notitie
Het domein van de koppeling naar de statuspagina is afhankelijk van de cloud. Dit domein is hetzelfde als de Kudu-beheersite voor App Service.
Op de statuspagina ziet u de installatiestatus van de agents voor .NET Profiler en Snapshot Debugger . Als er een onverwachte fout is opgetreden, wordt deze weergegeven, samen met de stappen voor het oplossen van deze fout.
U kunt de Kudu-beheersite voor App Service gebruiken om de basis-URL van deze statuspagina op te halen:
- Open uw App Service-toepassing in Azure Portal.
- Selecteer Geavanceerde hulpprogramma's.
- Selecteer Zoeken.
- Op de Kudu-beheersite:
- Voeg
/DiagnosticServices
toe aan de URL. - Selecteer Enter.
- Voeg
Het eindigt als https://<kudu-url>/DiagnosticServices
.
Er wordt een statuspagina weergegeven die lijkt op het volgende voorbeeld.
Notitie
Installatie zonder code van Application Insights Profiler voor .NET volgt het .NET Core-ondersteuningsbeleid. Zie .NET Core-ondersteuningsbeleid voor meer informatie over ondersteunde runtimes.
Handmatige installatie
Wanneer u .NET Profiler configureert, worden er updates doorgevoerd in de instellingen van de web-app. Indien nodig kunt u de updates handmatig toepassen.
Te veel actieve profileringssessies
In Azure-app Service geldt een limiet van slechts één profileringssessie tegelijk. Deze limiet wordt afgedwongen op VM-niveau voor alle toepassingen en implementatiesites die worden uitgevoerd in een App Service-plan. Deze limiet geldt ook voor profileringssessies die zijn gestart via Problemen vaststellen en oplossen, Kudu en Application Insights Profiler voor .NET.
Als de .NET Profiler probeert een sessie te starten wanneer er al een sessie wordt uitgevoerd, wordt er een fout vastgelegd in het toepassingslogboek en ook het logboek voor continue webtaken voor ApplicationInsightsProfiler3
.
Mogelijk ziet u een van de volgende berichten in de logboeken:
Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E
De foutcode 0xE111005E
geeft aan dat een profileringssessie niet kan worden gestart omdat er al een andere sessie wordt uitgevoerd.
Als u de fout wilt voorkomen, verplaatst u sommige web-apps naar een ander App Service-plan of schakelt u profiler uit op sommige toepassingen. Als u implementatiesites gebruikt, moet u alle ongebruikte sites stoppen.
Implementatiefout: Map niet leeg 'D:\home\site\wwwroot\App_Data\jobs'
Als u uw web-app opnieuw implementeert in een Web Apps-resource waarvoor .NET Profiler is ingeschakeld, ziet u mogelijk het volgende bericht:
"Map niet leeg 'D:\home\site\wwwroot\App_Data\jobs'"
Deze fout treedt op als u Web Deploy uitvoert vanuit scripts of vanuit Azure Pipelines. Los dit op door de volgende implementatieparameters toe te voegen aan de webimplementatietaak:
-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'
Met deze parameters verwijdert u de map die wordt gebruikt door Application Insights Profiler voor .NET en deblokkert u het herployproces. Ze hebben geen invloed op het Profiler-exemplaar dat momenteel wordt uitgevoerd.
Wordt Application Insights Profiler voor .NET uitgevoerd?
Profiler wordt uitgevoerd als een doorlopende webtaak in de web-app. U kunt de resource van de web-app openen in Azure Portal. Controleer in het deelvenster WebJobs de status van ApplicationInsightsProfiler. Als deze niet wordt uitgevoerd, opent u Logboeken voor meer informatie.
VM's en Azure Cloud Services
Ga als volgt te werk om te zien of de .NET Profiler correct is geconfigureerd door Azure Diagnostics:
Controleer of de inhoud van de geïmplementeerde Azure Diagnostics-configuratie is wat u verwacht.
Zorg ervoor dat Azure Diagnostics de juiste iKey doorgeeft op de Profiler-opdrachtregel.
Controleer het Profiler-logboekbestand om te zien of de .NET Profiler is uitgevoerd, maar er een fout is geretourneerd.
De instellingen controleren die zijn gebruikt voor het configureren van Azure Diagnostics:
Meld u aan bij de virtuele machine (VM).
Open het logboekbestand op deze locatie. De invoegtoepassingsversie is mogelijk nieuwer op uw computer.
Voor VM's:
c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
Voor Azure Cloud Services:
c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
Zoek in het bestand naar de tekenreeks
WadCfg
om de instellingen te vinden die zijn doorgegeven aan de VIRTUELE machine om Azure Diagnostics te configureren.Controleer of de iKey die wordt gebruikt door de .NET Profiler-sink juist is.
Controleer de opdrachtregel waarmee Profiler wordt gestart. De opdrachtregelargumenten bevinden zich in het volgende bestand (het station kan zijn
c:
ofd:
en de map is mogelijk verborgen):Voor VM's:
C:\ProgramData\ApplicationInsightsProfiler\config.json
Voor Azure Cloud Services:
D:\ProgramData\ApplicationInsightsProfiler\config.json
Zorg ervoor dat de iKey op de Profiler-opdrachtregel juist is.
Als u het pad in het voorgaande config.json bestand gebruikt, controleert u het profiler-logboekbestand met de naam
BootstrapN.log
. Hiermee wordt het volgende weergegeven:- De foutopsporingsinformatie die de instellingen aangeeft die Profiler gebruikt.
- Status- en foutberichten van Profiler.
U vindt het bestand:
Voor VM's:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
Voor Azure Cloud Services:
C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
Als de .NET Profiler wordt uitgevoerd terwijl uw toepassing aanvragen ontvangt, wordt het volgende bericht weergegeven: 'Activiteit gedetecteerd vanuit iKey'.
Wanneer de tracering wordt geüpload, wordt het volgende bericht weergegeven: 'Beginnen met uploaden van trace'.
Netwerkproxy- of firewallregels bewerken
Als uw toepassing verbinding maakt met internet via een proxy of een firewall, moet u mogelijk de regels bijwerken om te communiceren met de .NET Profiler.
De IP-adressen die door Application Insights Profiler voor .NET worden gebruikt, zijn opgenomen in de Azure Monitor-servicetag. Zie de documentatie over servicetags voor meer informatie.
Ondersteuning
Als u nog steeds hulp nodig hebt, dient u een ondersteuningsticket in azure Portal in. Neem de correlatie-id op uit het foutbericht.