Den här artikeln innehåller allmänna rekommendationer och specifika förslag för att felsöka problem med programövervakning i Azure App Service.
Anmärkning
Vissa felsökningssteg på den här sidan gäller endast för vissa språk eller ramverk, vilket anges av de tillgängliga flikarna.
Telemetri saknas
Anmärkning
När du skapar en webbapp med ASP.NET runtimerna i App Service, distribuerar den en enda statisk HTML-sida som en startsida. Vi rekommenderar inte att du felsöker ett problem med en standardmall. Distribuera ett program innan du felsöker ett problem.
Kontrollera att appinställningen ApplicationInsightsAgent_EXTENSION_VERSION är inställd på värdet ~2.
Navigera till https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
lightbox="media/troubleshoot-app-service/app-insights-sdk-status.png"::
Bekräfta att Application Insights Extension Status är Pre-Installed Site Extension, version 2.8.x.xxxx och att den är igång.
Om den inte körs följer du anvisningarna för att aktivera Application Insights-övervakning.
Bekräfta att statuskällan finns och ser ut som Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Om ett liknande värde inte finns innebär det att programmet för närvarande inte körs eller inte stöds. För att säkerställa att programmet körs kan du prova att manuellt besöka programmets URL/programslutpunkter, vilket gör att körningsinformationen blir tillgänglig.
Bekräfta att IKeyExists är true.
Om inte lägger du till APPINSIGHTS_INSTRUMENTATIONKEY och APPLICATIONINSIGHTS_CONNECTION_STRING med instrumentationsnyckeln GUID i dina programinställningar.
Bekräfta att det inte finns några poster för AppAlreadyInstrumented, AppContainsDiagnosticSourceAssembly, och AppContainsAspNetTelemetryCorrelationAssembly.
Om någon av dessa poster finns tar du bort följande paket från ditt program: Microsoft.ApplicationInsights, System.Diagnostics.DiagnosticSourceoch Microsoft.AspNet.TelemetryCorrelation.
Anmärkning
När du skapar en webbapp med ASP.NET Core runtimerna i App Service, distribuerar den en enda statisk HTML-sida som en startsida. Vi rekommenderar inte att du felsöker ett problem med standardmallen. Distribuera ett program innan du felsöker ett problem.
Windows
Kontrollera att appinställningen ApplicationInsightsAgent_EXTENSION_VERSION är inställd på värdet ~2.
Navigera till https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Bekräfta att Application Insights-tilläggsstatusen är Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Om den inte körs följer du anvisningarna i avsnittet Aktivera Application Insights-övervakning.
Bekräfta att statuskällan finns och ser ut som Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Om ett liknande värde inte finns innebär det att programmet för närvarande inte körs eller inte stöds. För att säkerställa att programmet körs kan du prova att manuellt besöka programmets URL/programslutpunkter, vilket gör att körningsinformationen blir tillgänglig.
Bekräfta att IKeyExists är True. Om det är Falselägger du till APPINSIGHTS_INSTRUMENTATIONKEY och APPLICATIONINSIGHTS_CONNECTION_STRING med ditt ikey-GUID i dina programinställningar.
Om ditt program refererar till några Application Insights-paket kan aktiveringen av App Service-integrationen möjligen inte träda i kraft, och data kanske inte visar sig i Application Insights. Ett exempel skulle vara om du tidigare instrumenterade eller försökte instrumentera din app med ASP.NET Core SDK. Åtgärda problemet genom att aktivera Interop med Application Insights SDK i Azure-portalen.
Viktigt!
Den här funktionen är i förhandsversion.
Data skickas med en kodlös metod, även om Application Insights SDK ursprungligen användes eller försökte användas.
Viktigt!
Om programmet använde Application Insights SDK för att skicka telemetri inaktiveras telemetrin. Med andra ord inaktiveras anpassad telemetri (till exempel alla Track*() metoder) och anpassade inställningar (till exempel sampling).
Linux
Kontrollera att appinställningen ApplicationInsightsAgent_EXTENSION_VERSION är inställd på värdet ~3.
Navigera till https://your site name.scm.azurewebsites.net/ApplicationInsights.
På den här webbplatsen bekräftar du:
- Statuskällan finns och ser ut som
Status source /var/log/applicationinsights/status_abcde1234567_89_0.json.
- Värdet
Auto-Instrumentation enabled successfully visas. Om ett liknande värde inte finns innebär det att programmet inte körs eller inte stöds. För att säkerställa att programmet körs kan du prova att manuellt besöka programmets URL/programslutpunkter, vilket gör att körningsinformationen blir tillgänglig.
-
IKeyExists är
True. Om det är Falselägger du till APPINSIGHTS_INSTRUMENTATIONKEY och APPLICATIONINSIGHTS_CONNECTION_STRING med ditt ikey-GUID i dina programinställningar.
Kontrollera att ApplicationInsightsAgent_EXTENSION_VERSION appinställningen är inställd på värdet ~2 för i Windows, ~3 i Linux
Granska loggfilen för att se att agenten startade: bläddra till https://yoursitename.scm.azurewebsites.net/, under SSH-ändring till rotkatalogen finns loggfilen under LogFiles/ApplicationInsights.
Efter att ha aktiverat programövervakning för din Java-app kan du verifiera att agenten fungerar genom att titta på de live-metrikerna - även innan du distribuerar en app till App Service kommer du att se några förfrågningar från miljön. Kom ihåg att den fullständiga uppsättningen telemetri endast är tillgänglig när din app är distribuerad och körs.
Ange APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL miljövariabeln till debug om du inte ser några fel och det inte finns någon telemetri.
Windows
Kontrollera att ApplicationInsightsAgent_EXTENSION_VERSION appinställningen är inställd på värdet ~2.
Navigera till https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Bekräfta att SDKPresent är inställt på false, AgentInitializedSuccessfully på true och att IKey har en giltig iKey.
Exempel på JSON-filen:
"AppType":"node.js",
"MachineName":"c89d3a6d0357",
"PID":"47",
"AgentInitializedSuccessfully":true,
"SDKPresent":false,
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.8.10"
Om SDKPresent är sant innebär det att tillägget har identifierat att någon aspekt av SDK redan finns i applikationen och kommer att avstå.
Linux
Kontrollera att ApplicationInsightsAgent_EXTENSION_VERSION appinställningen är inställd på värdet ~3.
Gå till /var/log/applicationinsights/ och öppna status.json.
Bekräfta att SDKPresent är inställt på false, AgentInitializedSuccessfully på true och att IKey har en giltig iKey.
Exempel på JSON-filen:
"AppType":"node.js",
"MachineName":"c89d3a6d0357",
"PID":"47",
"AgentInitializedSuccessfully":true,
"SDKPresent":false,
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.8.10"
Om SDKPresent är sant innebär det att tillägget har identifierat att någon aspekt av SDK redan finns i applikationen och kommer att avstå.
Om du saknar telemetri följer du de här stegen för att bekräfta att automatisk instrumentering är korrekt aktiverad.
Bekräfta att autoinstrumenteringen är aktiverad i upplevelsen för Application Insights på din App Service-resurs.
Bekräfta att appinställningen ApplicationInsightsAgent_EXTENSION_VERSION är inställd på ett värde för ~3 och att dina APPLICATIONINSIGHTS_CONNECTION_STRING pekar på lämplig Application Insights-resurs.
Kontrollera diagnostik och statusloggar för automatisk instrumentering.
a. Gå till /var/log/applicationinsights/ och öppna status_*.json.
b) Bekräfta att AgentInitializedSuccessfully är inställt på true och IKey att ha en giltig iKey.
Exempel på JSON-fil:
"AgentInitializedSuccessfully":true,
"AppType":"python",
"MachineName":"c89d3a6d0357",
"PID":"47",
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.0.0"
Filen applicationinsights-extension.log i samma mapp kan visa annan användbar diagnostik.
Standardwebbplatsen som distribueras med webbappar stöder inte automatisk övervakning på klientsidan
När du skapar en webbapp med ASP.NET-körningar i App Service distribuerar den en enda statisk HTML-sida som en startwebbplats. Den statiska webbsidan läser också in en ASP. NET-hanterad webbdel i IIS. Den här sidan tillåter testning av kodlös övervakning på serversidan men stöder inte automatisk övervakning på klientsidan.
Om du vill testa kodlös övervakning på server- och klientsidan för ASP.NET i en App Service-webbapp rekommenderar vi att du följer de officiella guiderna för att skapa en ASP.NET Framework-webbapp. Därefter använder du anvisningarna i den aktuella artikeln för att aktivera övervakning.
När du skapar en webbapp med ASP.NET Core-körningar i App Service distribuerar den en enda statisk HTML-sida som en startwebbplats. Den statiska webbsidan läser också in en ASP. NET-hanterad webbdel i IIS. Det här beteendet möjliggör testning av kodlös övervakning på serversidan, men stöder inte automatisk övervakning på klientsidan.
Om du vill testa kodlös övervakning på server- och klientsidan för ASP.NET Core i en App Service-webbapp rekommenderar vi att du följer de officiella guiderna för att skapa en ASP.NET Core-webbapp. Därefter använder du anvisningarna i den aktuella artikeln för att aktivera övervakning.
APPINSIGHTS_JAVASCRIPT_ENABLED och URL-kompression stöds inte
Om du använder APPINSIGHTS_JAVASCRIPT_ENABLED=true i fall där innehåll är kodat kan du få fel som:
- 500 URL-omskrivningsfel.
- 500.53 URL-omskrivningsmodulfel med meddelandet "Regler för utgående omskrivning kan inte tillämpas när innehållet i HTTP-svaret är kodat ('gzip')."
Ett fel uppstår eftersom programinställningen APPINSIGHTS_JAVASCRIPT_ENABLED är inställd på true och att innehållskodning finns samtidigt. Det här scenariot stöds inte ännu. Lösningen är att ta bort APPINSIGHTS_JAVASCRIPT_ENABLED från programinställningarna. Om JavaScript-instrumentation på klient-/webbläsarsidan fortfarande krävs krävs tyvärr manuella SDK-referenser för dina webbsidor. Följ anvisningarna för manuell instrumentering med JavaScript SDK.
Den senaste informationen om Application Insights-agenten/tillägget finns i viktig information.
PHP- och WordPress-webbplatser stöds inte. Det finns för närvarande ingen officiellt stödd SDK/agent för övervakning på serversidan av dessa arbetsbelastningar. Om du vill spåra transaktioner på klientsidan på en PHP- eller WordPress-webbplats lägger du till JavaScript på klientsidan på dina webbsidor med hjälp av JavaScript SDK.
Följande tabell innehåller en förklaring av vad dessa värden betyder, deras underliggande orsaker och rekommenderade korrigeringar.
| Problemvärde |
Explanation |
Reparera |
AppAlreadyInstrumented:true |
Det här värdet anger att tillägget identifierade någon aspekt av SDK:et som redan finns i programmet och drar sig tillbaka. En referens till Microsoft.ApplicationInsights.AspNetCore eller Microsoft.ApplicationInsights kan orsaka det här värdet. |
Ta bort referenserna. Vissa av dessa referenser läggs som standard till från vissa Visual Studio-mallar. Äldre versioner av Visual Studio-referensen Microsoft.ApplicationInsights. |
AppAlreadyInstrumented:true |
Förekomsten av Microsoft.ApplicationsInsights DLL i appmappen från en tidigare distribution kan också orsaka det här värdet. |
Rensa appmappen för att säkerställa att dessa DLL:er tas bort. Kontrollera både den lokala appens bin-katalog och katalogen wwwroot i App Service. (Om du vill kontrollera wwwroot-katalogen för din App Service-webbapp väljer du Avancerade verktyg (Kudu) >Felsökningskonsol>CMD>home\site\wwwroot). |
IKeyExists:false |
Det här värdet anger att instrumentationsnyckeln inte finns i appinställningen APPINSIGHTS_INSTRUMENTATIONKEY. Möjliga orsaker är att oavsiktligt ta bort värdena eller glömma att ange värdena i automationsskriptet. |
Kontrollera att inställningen finns i App Service-programinställningarna. |
PHP och WordPress stöds inte
PHP- och WordPress-webbplatser stöds inte. Det finns för närvarande ingen officiellt stödd SDK/agent för övervakning på serversidan av dessa arbetsbelastningar. Om du vill spåra transaktioner på klientsidan på en PHP- eller WordPress-webbplats lägger du till JavaScript på klientsidan på dina webbsidor med hjälp av JavaScript SDK.
Följande tabell innehåller en förklaring av vad dessa värden betyder, deras underliggande orsaker och rekommenderade korrigeringar.
| Problemvärde |
Explanation |
Reparera |
AppAlreadyInstrumented:true |
Det här värdet anger att tillägget identifierade någon aspekt av SDK:et som redan finns i programmet och drar sig tillbaka. En referens till System.Diagnostics.DiagnosticSource, Microsoft.AspNet.TelemetryCorrelationeller Microsoft.ApplicationInsights kan orsaka det här värdet. |
Ta bort referenserna. Vissa av dessa referenser läggs som standard till från vissa Visual Studio-mallar. Äldre versioner av Visual Studio kan lägga till referenser till Microsoft.ApplicationInsights. |
AppAlreadyInstrumented:true |
Förekomsten av de föregående DLL:erna i appmappen från en tidigare distribution kan också orsaka det här värdet. |
Rensa appmappen för att säkerställa att dessa DLL:er tas bort. Kontrollera både den lokala appens bin-katalog och katalogen wwwroot på App Service-resursen. Om du vill kontrollera wwwroot-katalogen för apptjänstens webbapp väljer du Avancerade verktyg (Kudu)>Felsökningskonsol>cmd>home\site\wwwroot. |
AppContainsAspNetTelemetryCorrelationAssembly: true |
Värdet anger att tillägget har identifierat referenser till Microsoft.AspNet.TelemetryCorrelation i programmet och drar sig tillbaka. |
Ta bort referensen. |
AppContainsDiagnosticSourceAssembly**:true |
Värdet anger att tillägget har identifierat referenser till System.Diagnostics.DiagnosticSource i programmet och drar sig tillbaka. |
Ta bort referensen för ASP.NET. |
IKeyExists:false |
Det här värdet anger att instrumentationsnyckeln inte finns i appinställningen APPINSIGHTS_INSTRUMENTATIONKEY. Möjliga orsaker kan vara att värdena har tagits bort av misstag eller att du har glömt att ange värdena i automationsskriptet. |
Kontrollera att inställningen finns i App Service-programinställningarna. |
PHP- och WordPress-webbplatser stöds inte. Det finns för närvarande ingen officiellt stödd SDK/agent för övervakning på serversidan av dessa arbetsbelastningar. Om du vill spåra transaktioner på klientsidan på en PHP- eller WordPress-webbplats lägger du till JavaScript på klientsidan på dina webbsidor med hjälp av JavaScript SDK.
Följande tabell innehåller en förklaring av vad dessa värden betyder, deras underliggande orsaker och rekommenderade korrigeringar.
| Problemvärde |
Explanation |
Reparera |
AppAlreadyInstrumented:true |
Det här värdet anger att tillägget identifierade någon aspekt av SDK:et som redan finns i programmet och drar sig tillbaka. En referens till Microsoft.ApplicationInsights.AspNetCore eller Microsoft.ApplicationInsights kan orsaka det här värdet. |
Ta bort referenserna. Vissa av dessa referenser läggs som standard till från vissa Visual Studio-mallar. Äldre versioner av Visual Studio-referensen Microsoft.ApplicationInsights. |
AppAlreadyInstrumented:true |
Förekomsten av Microsoft.ApplicationsInsights DLL i appmappen från en tidigare distribution kan också orsaka det här värdet. |
Rensa appmappen för att säkerställa att dessa DLL:er tas bort. Kontrollera både den lokala appens bin-katalog och katalogen wwwroot i App Service. (Om du vill kontrollera wwwroot-katalogen för din App Service-webbapp väljer du Avancerade verktyg (Kudu) >Felsökningskonsol>CMD>home\site\wwwroot). |
IKeyExists:false |
Det här värdet anger att instrumentationsnyckeln inte finns i appinställningen APPINSIGHTS_INSTRUMENTATIONKEY. Möjliga orsaker är att oavsiktligt ta bort värdena eller glömma att ange värdena i automationsskriptet. |
Kontrollera att inställningen finns i App Service-programinställningarna. |
System.IO.FileNotFoundException efter uppgraderingen 2.8.44
2.8.44-versionen av autoinstrumentation uppgraderar Application Insights SDK till 2.20.0. Application Insights SDK har en indirekt referens till System.Runtime.CompilerServices.Unsafe.dll via System.Diagnostics.DiagnosticSource.dll. Om programmet har bindningsomdirigering för System.Runtime.CompilerServices.Unsafe.dll och om det här biblioteket inte finns i programmappen kan det utlösa System.IO.FileNotFoundException.
Lös problemet genom att ta bort bindningsomdirigeringsposten för System.Runtime.CompilerServices.Unsafe.dll från filen web.config. Om programmet vill använda System.Runtime.CompilerServices.Unsafe.dllanger du bindningsomdirigeringen enligt följande:
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" />
</dependentAssembly>
Som en tillfällig lösning kan du ange appinställningen ApplicationInsightsAgent_EXTENSION_VERSION till värdet 2.8.37. Den här inställningen utlöser App Service för att använda det gamla Application Insights-tillägget. Tillfälliga åtgärder bör endast användas som en interimslösning.
Duplicerad telemetri
Använd endast autoinstrumentation i App Service om du inte använder manuell instrumentering av OpenTelemetry i koden, till exempel Azure Monitor OpenTelemetry Distro eller Azure Monitor OpenTelemetry Exporter.
Om du använder autoinstrumentation ovanpå den manuella instrumentationen kan det orsaka duplicerad telemetri och öka kostnaden. För att använda App Service OpenTelemetry autoinstrumentation, börja med att ta bort eventuell manuell OpenTelemetry-instrumentering från din kod.
Om du ser oväntade avgifter eller höga kostnader i Application Insights kan den här guiden hjälpa dig. Den omfattar vanliga orsaker som hög telemetrivolym, datainmatningstoppar och felkonfigurerad sampling. Det är särskilt användbart om du felsöker problem som rör kostnadstoppar, telemetrivolym, sampling som inte fungerar, datatak, hög inmatning eller oväntad fakturering. Information om hur du kommer igång finns i Felsöka hög datainmatning i Application Insights.
Django-appar
Om din app använder Django och inte kan starta eller använda felaktiga inställningar måste du ange DJANGO_SETTINGS_MODULE miljövariabeln. Mer information finns i avsnittet Django Instrumentation .
För de senaste uppdateringarna och buggfixarna, se releasenoterna.
Om du har frågor eller behöver hjälp, skapa en supportförfrågan, eller fråga Azures community-support. Du kan också lämna produktfeedback till Azure feedback-community.