Dela via


Felsöka Application Insights-integrering med Azure App Service

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.

  1. Kontrollera att appinställningen ApplicationInsightsAgent_EXTENSION_VERSION är inställd på värdet ~2.

  2. Navigera till https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    Skärmbild som visar föregående länks resultatsida. 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.

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.

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 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.

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.

Kontakta oss för att få hjälp

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.