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.
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 |
---|---|---|
ApplicationInsightsProfiler-eindpunt | 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-versies hoger 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 Profiel live Azure Functions-app 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 draait willekeurig twee minuten per uur op elke virtuele machine die toepassingen host met Profiler ingeschakeld.
Notitie
Wanneer de Application Insights Profiler voor .NET actief is en traceringen worden verzameld, voegt het doorgaans tussen de 5% en 15% CPU- en geheugengebruik toe aan uw server.
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 timeouts of moet u controleren of de .NET Profiler actief is?
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 de 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 startte en verzond aangepaste gebeurtenissen wanneer het aanvragen detecteerde 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, is Profiler niet gestart of duurde 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 profilertraces beschikbaar zijn, controleert u de instelling Profiler Sampling.- Open Application Insights>Prestatie blade.
- Klik op Profiler.
- Klik op de Triggers-knop.
- 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.
Dubbele berekening bij parallelle processen
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 op te merken en laat het oninteressante wachten weg. Daarmee vertoont het de neiging om te veel informatie weer te geven in plaats van mogelijk kritieke informatie weg te laten.
Wanneer u parallelle threads in uw traceringen ziet, bepaalt u welke threads wachten zodat u het cruciale 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 voor het gebruik van Profiler in Azure App Service.
Azure App Service
Controleer of de .NET Profiler goed werkt:
Voor uw web-app is Application Insights ingeschakeld met de juiste instellingen.
De ApplicationInsightsProfiler3 WebJob wordt uitgevoerd. De webtaak controleren:
Ga naar Kudu. In de Azure Portal:
- Selecteer geavanceerde hulpprogramma's in het linkerdeelvenster in uw App Service-exemplaar.
- Selecteer Zoeken.
Selecteer in het bovenste menu Hulpmiddelen>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 Azure-ondersteuningsticket.
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 de Azure-portal.
- Selecteer Geavanceerde hulpprogramma's.
- Selecteer Zoeken.
- Op de Kudu-beheersite:
- Voeg
/DiagnosticServices
toe aan de URL. - Druk op 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 implementatiesleuven die actief zijn 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 geregistreerd in het toepassingslogboek en ook in het doorlopende WebJob-logboek 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 implementatieslots gebruikt, moet u alle ongebruikte slots stopzetten.
Fout bij het implementeren: 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:
Directory 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?
De Profiler wordt uitgevoerd als een doorlopende webtaak in de webapp. U kunt de resource van de web-app openen in Azure Portal. Controleer in het deelvenster WebJobs de status van ApplicationInsightsProfiler. Als het niet wordt uitgevoerd, open dan Logboeken voor meer informatie.
Virtuele machines
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-commandoregel.
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.
c:\WindowsAzure\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 (de schijf kan
c:
ofd:
zijn en de map kan verborgen zijn):C:\ProgramData\ApplicationInsightsProfiler\config.json
Zorg ervoor dat de iKey in de Profiler-commandoregel correct 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:
C:\WindowsAzure\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'.
De 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.
Problemen met Bring Your Own Storage oplossen (BYOS)
Veelvoorkomende problemen bij het configureren van BYOS oplossen.
Scenario: Template schema '{schema_uri}' isn't supported
U hebt een fout ontvangen die vergelijkbaar is met het volgende voorbeeld:
New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.
Oplossingen
Zorg ervoor dat de
$schema
eigenschap van de sjabloon geldig is. Het moet dit patroon volgen:https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
Zorg ervoor dat de
schema_version
sjabloon binnen geldige waarden valt:2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01
Scenario: No registered resource provider found for location '{location}'
U hebt een fout ontvangen die vergelijkbaar is met het volgende voorbeeld:
New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
"error": {
"code": "NoRegisteredProviderFound",
"message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
}
}'
Oplossingen
- Zorg ervoor dat de
apiVersion
van de resourcemicrosoft.insights/components
is2015-05-01
. - Zorg ervoor dat de
apiVersion
van de resourcelinkedStorageAccount
is2020-03-01-preview
.
Scenario: Storage account location should match Application Insights component location
U hebt een fout ontvangen die vergelijkbaar is met het volgende voorbeeld:
New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
"error": {
"code": "BadRequest",
"message": "Storage account location should match AI component location",
"innererror": {
"trace": [
"System.ArgumentException"
]
}
}
}'
" needed as the existing translation is correct.
Zorg ervoor dat de locatie van de Application Insights-resource hetzelfde is als het opslagaccount.
Ondersteuning
Als u nog steeds hulp nodig hebt, dient u een ondersteuningsticket in door te klikken op het vraagtekenpictogram in Azure Portal. Neem de correlatie-id op uit het foutbericht.