Dela via


Felsöka Application Insights Profiler

I den här artikeln beskrivs felsökningssteg och information så att du kan använda Application Insights Profiler.

Använder du lämplig Profiler-slutpunkt?

För närvarande är de enda regioner som kräver slutpunktsändringar Azure Government och Microsoft Azure som drivs av 21Vianet.

Appinställning US Government Cloud Kina, moln
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Körs appen på rätt version?

Profiler stöds i .NET Framework senare än 4.6.2.

Om din webbapp är ett ASP.NET Core-program måste den köras på den senaste ASP.NET Core-körningen som stöds.

Använder du rätt Azure-tjänstplan?

Profiler stöds för närvarande inte i kostnadsfria eller delade apptjänstplaner. Uppgradera till en av de grundläggande planerna för Profiler för att börja arbeta.

Kommentar

Azure Functions-förbrukningsplanen stöds inte. Se Profil live Azure Functions-app med Application Insights.

Söker du efter Profiler-data inom rätt tidsram?

Om de data du försöker visa är äldre än två veckor kan du försöka begränsa tidsfiltret och försöka igen. Spårningar tas bort efter sju dagar.

Känner du till samplingsfrekvensen för Profiler och omkostnaderna?

Profiler kör slumpmässigt två minuter per timme på varje virtuell dator som är värd för program med Profiler aktiverat.

Kommentar

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

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

Kan du komma åt gatewayen?

Kontrollera att en brandvägg eller proxyservrar inte blockerar din åtkomst till den här webbsidan.

Ser du tidsgränser eller behöver du kontrollera om Profiler körs?

Profileringsdata laddas bara upp när de kan kopplas till en begäran som inträffade när Profiler kördes. Profiler samlar in data i två minuter i timmen. Du kan också utlösa Profiler genom att starta en profileringssession.

Profiler skriver spårningsmeddelanden och anpassade händelser till din Application Insights-resurs. Du kan använda dessa händelser för att se hur Profiler körs.

Sök efter spårningsmeddelanden och anpassade händelser som skickats av Profiler till din Application Insights-resurs.

  1. I Application Insights-resursen väljer du Sök på den översta menyn.

    Skärmbild som visar hur du väljer knappen Sök från Application Insights-resursen.

  2. Använd följande söksträng för att hitta relevanta data:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Skärmbild som visar sökresultaten från ovan nämnda söksträng.

    Föregående sökresultat innehåller två exempel på sökningar från två AI-resurser:

    • Om programmet inte tar emot begäranden när Profiler körs förklarar meddelandet att uppladdningen avbröts på grund av ingen aktivitet.

    • Profiler startade och skickade anpassade händelser när begäranden som inträffade när Profiler kördes upptäcktes. Om den ServiceProfilerSample anpassade händelsen visas innebär det att en profil har registrerats och är tillgänglig i fönstret Application Insights-prestanda .

    Om inga poster visas körs inte Profiler eller tar för lång tid att svara. Kontrollera att Profiler är aktiverat på din Azure-tjänst.

Profiler är på, men inga spårningar har registrerats

Även när Profiler är aktiverat kanske det inte samlar in eller laddar upp spårningar, särskilt i följande situationer:

  1. Inga inkommande begäranden till ditt program:
    Du kan anropa programmet manuellt eller skapa ett tillgänglighetstest eller ett belastningstest.

  2. Ingen inkommande telemetri bekräftas av Application Insights:

    • Om det kommer trafik till ditt program: verifiera att det finns inkommande begäranden som visas i Application Insights Live Metrics.
    • Om diagrammen Incoming Requests är tomma (inga data eller visar noll): felsöka Application Insights.
    • Om du är värd för .NET-programmet i Azure App Service kan du prova felsökningsstegen för App Service .NET.
  3. Profileringsinställningen för Sampling är inaktiverad:
    Om det fortfarande inte finns några profilerarspårningar tillgängliga kontrollerar du inställningen Profilersampling.

    1. Öppna bladet Application Insights-prestanda>.
    2. Klicka på Profiler.
    3. Klicka på knappen Utlösare .
    4. I utlösarinställningarna kontrollerar du att samplingsknappen är aktiverad.
  4. Finns det fortfarande inga uppladdade spår?
    Skapa en supportbegäran eller fråga azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.

Dubbelräkning i parallella trådar

När två eller flera parallella trådar associeras med en begäran kan det totala tidsmåttet i stackvisningsprogrammet vara mer än varaktigheten för begäran. I så fall är den totala trådtiden mer än den faktiska förflutna tiden.

En tråd kan till exempel vänta på att den andra ska slutföras. Visningsprogrammet försöker identifiera den här situationen och utelämnar den ointressanta väntan. När du gör det felar den på sidan av att visa för mycket information i stället för att utelämna vad som kan vara viktig information.

När du ser parallella trådar i spårningarna ska du bestämma vilka trådar som väntar så att du kan identifiera den heta sökvägen för begäran. Vanligtvis väntar tråden som snabbt hamnar i väntetillstånd på de andra trådarna. Koncentrera dig på de andra trådarna och ignorera tiden i de väntande trådarna.

Felsök profilerare för din specifika Azure-tjänst

I följande avsnitt går vi igenom felsökningsstegen för att använda Profiler i Azure App Service eller Azure Cloud Services.

Azure App Service

För att Profiler ska fungera korrekt kontrollerar du att:

  • Din webbapp har Application Insights aktiverat med rätt inställningar.

  • ApplicationInsightsProfiler3-webbjobbet körs. Så här kontrollerar du webbjobbet:

    1. Gå till Kudu. I Azure-portalen:

      1. I App Service-instansen väljer du Avancerade verktyg i den vänstra rutan.
      2. Välj .
    2. På den översta menyn väljer du Verktyg>WebJobs-instrumentpanel. Fönstret Webbjobb öppnas.

      Om ApplicationInsightsProfiler3 inte visas startar du om App Service-programmet.

      Skärmbild som visar fönstret Webbjobb, som visar namn, status och senaste körning av jobb.

    3. Om du vill visa information om webbjobbet, inklusive loggen, väljer du länken ApplicationInsightsProfiler3 . Fönstret Kontinuerlig webbjobbsinformation öppnas.

      Skärmbild som visar fönstret Kontinuerlig webbjobbsinformation.

Om Profiler fortfarande inte fungerar för dig laddar du ned loggen och skickar en Azure Support biljett.

Kontrollera statussidan för diagnostiktjänstens webbplatstillägg

Om du har aktiverat Profiler via application insights-fönstret i portalen hanteras det av webbplatstillägget För diagnostiktjänster. Du kan kontrollera statussidan för det här tillägget genom att gå till https://{site-name}.scm.azurewebsites.net/DiagnosticServices.

Kommentar

Domänen för länken för statussidan varierar beroende på molnet. Den här domänen är samma som Kudu-hanteringswebbplatsen för App Service.

På statussidan visas installationstillståndet för agenterna Profiler och Snapshot Debugger . Om det uppstod ett oväntat fel visas det tillsammans med steg för hur du åtgärdar det.

Du kan använda Kudu-hanteringswebbplatsen för App Service för att hämta bas-URL:en för den här statussidan:

  1. Öppna App Service-programmet i Azure Portal.
  2. Välj Avancerade verktyg.
  3. Välj .
  4. På Kudu-hanteringswebbplatsen:
    1. Lägg till /DiagnosticServices i URL:en.
    2. Välj Retur.

Det slutar som https://<kudu-url>/DiagnosticServices.

En statussida visas ungefär som i följande exempel.

Skärmbild som visar statussidan för Diagnostiktjänster.

Kommentar

Kodlös installation av Application Insights Profiler följer .NET Core-supportprincipen. Mer information om körning som stöds finns i .NET Core-supportprincip.

Manuell installation

När du konfigurerar Profiler görs uppdateringar av webbappens inställningar. Om det behövs kan du tillämpa uppdateringarna manuellt.

För många aktiva profileringssessioner

I Azure App Service finns det en gräns på endast en profileringssession i taget. Den här gränsen tillämpas på vm-nivå för alla program och distributionsplatser som körs i en App Service-plan. Den här gränsen gäller även för profileringssessioner som startas via Diagnostisera och lösa problem, Kudu och Application Insights Profiler. Om Profiler försöker starta en session när en annan redan körs loggas ett fel i programloggen och även den kontinuerliga webbjobbsloggen för ApplicationInsightsProfiler3.

Du kan se något av följande meddelanden i loggarna:

  • Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
  • Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E

Felkoden 0xE111005E anger att det inte gick att starta en profileringssession eftersom en annan session redan körs.

Undvik felet genom att flytta vissa webbappar till en annan App Service-plan eller inaktivera Profiler i vissa av programmen. Om du använder distributionsfack måste du stoppa alla oanvända platser.

Distributionsfel: Katalogen är inte tom "D:\home\site\wwwroot\App_Data\jobs"

Om du distribuerar om webbappen till en Web Apps-resurs med Profiler aktiverat kan följande meddelande visas:

"Katalogen är inte tom 'D:\home\site\wwwroot\App_Data\jobs'"

Det här felet uppstår om du kör Web Deploy från skript eller från Azure Pipelines. Lös det genom att lägga till följande distributionsparametrar i aktiviteten Webbdistribution:

-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$'

Dessa parametrar tar bort mappen som används av Application Insights Profiler och avblockerar omdistributionsprocessen. De påverkar inte profileringsinstansen som körs för närvarande.

Körs Application Insights Profiler?

Profiler körs som ett kontinuerligt webbjobb i webbappen. Du kan öppna webbappresursen i Azure Portal. I fönstret Webbjobb kontrollerar du statusen för ApplicationInsightsProfiler. Om den inte körs öppnar du Loggar för att få mer information.

Virtuella datorer och Azure Cloud Services

Så här ser du om Profiler har konfigurerats korrekt av Azure Diagnostics:

  1. Kontrollera att innehållet i den distribuerade Azure Diagnostics-konfigurationen är vad du förväntar dig.

  2. Kontrollera att Azure Diagnostics skickar rätt iKey på kommandoraden Profiler.

  3. Kontrollera loggfilen Profiler för att se om Profiler kördes men returnerade ett fel.

Så här kontrollerar du de inställningar som användes för att konfigurera Azure Diagnostics:

  1. Logga in på den virtuella datorn (VM).

  2. Öppna loggfilen på den här platsen. Plugin-versionen kan vara nyare på datorn.

    För virtuella datorer:

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    

    För Azure Cloud Services:

    c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. I filen söker du efter strängen WadCfg för att hitta de inställningar som skickades till den virtuella datorn för att konfigurera Azure Diagnostics.

  4. Kontrollera om iKey som används av profileringsmottagaren är korrekt.

  5. Kontrollera kommandoraden som startar Profiler. Kommandoradsargumenten finns i följande fil (enheten kan vara c: eller d: och katalogen kan vara dold):

    För virtuella datorer:

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    För Azure Cloud Services:

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Kontrollera att iKey på kommandoraden Profiler är korrekt.

  7. Genom att använda sökvägen som finns i föregående config.json-fil kontrollerar du loggfilen Profiler med namnet BootstrapN.log. Den visar:

    • Felsökningsinformationen som anger de inställningar som Profiler använder.
    • Status och felmeddelanden från Profiler.

    Du hittar filen:

    För virtuella datorer:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    

    För Azure Cloud Services:

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Om Profiler körs medan programmet tar emot begäranden visas följande meddelande: "Aktivitet har identifierats från iKey".

  9. När spårningen laddas upp visas följande meddelande: "Börja ladda upp spårning".

Redigera nätverksproxy eller brandväggsregler

Om ditt program ansluter till Internet via en proxy eller en brandvägg kan du behöva uppdatera reglerna för att kommunicera med Profiler.

IP-adresser som används av Application Insights Profiler ingår i Azure Monitor-tjänsttaggen. Mer information finns i dokumentationen om tjänsttaggar.

Support

Om du fortfarande behöver hjälp skickar du ett supportärende i Azure Portal. Inkludera korrelations-ID:t från felmeddelandet.