Dela via


Aktivera programövervakning i Azure App Service för .NET-, Node.js-, Python- och Java-program

Automatisk instrumentering, även kallat körningsövervakning , är det enklaste sättet att aktivera Application Insights för Azure App Service utan att kräva några kodändringar eller avancerade konfigurationer. Baserat på ditt specifika scenario utvärderar du om du behöver mer avancerad övervakning via manuell instrumentering.

Kommentar

Stödet för inmatning av instrumentationsnycklar upphör den 31 mars 2025. Inmatningen av instrumenteringsnyckeln fortsätter att fungera, men vi kommer inte längre att tillhandahålla uppdateringar eller stöd för funktionen. Övergå till anslutningssträng för att dra nytta av nya funktioner.

Aktivera Application Insights

Viktigt!

Om både övervakning av autoinstrumentation och manuell SDK-baserad instrumentation identifieras respekteras endast de manuella instrumentationsinställningarna. Det här arrangemanget förhindrar att dubbletter av data skickas. Mer information finns i Felsökning.

Kommentar

Automatisk instrumentering i Azure Portal

  1. Välj Application Insights i den vänstra navigeringsmenyn i apptjänsten och välj sedan Aktivera.

     Skärmbild som visar fliken Application Insights med Aktivera markerad.

  2. Skapa en ny resurs eller välj en befintlig Application Insights-resurs för det här programmet.

    Kommentar

    När du väljer OK för att skapa en ny resurs uppmanas du att använda övervakningsinställningar. Om du väljer Fortsätt länkar du din nya Application Insights-resurs till din apptjänst. Apptjänsten startas sedan om.

    Skärmbild som visar listrutan Ändra resurs.

  3. När du har angett vilken resurs som ska användas kan du välja hur du vill att Application Insights ska samla in data per plattform för ditt program. ASP.NET Alternativ för kärnsamling rekommenderas eller inaktiveras.

     Skärmbild som visar instrumentering av programavsnittet.

Uppgradera övervakningstillägget/agenten manuellt

Uppgradera från version 2.8.9 och senare

Uppgradering från version 2.8.9 sker automatiskt, utan några extra åtgärder. De nya övervakningsbitarna levereras i bakgrunden till målapptjänsten och hämtas vid omstart av programmet.

Om du vill kontrollera vilken version av tillägget du kör går du till https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

Skärmbild som visar URL-sökvägen för att kontrollera vilken version av tillägget du kör.

Uppgradera från version 1.0.0 – 2.6.5

Från och med version 2.8.9 används det förinstallerade webbplatstillägget. Om du använder en tidigare version kan du uppdatera på något av två sätt:

  • Uppgradera genom att aktivera via Azure Portal: Även om du har Application Insights-tillägget för App Service installerat visar användargränssnittet bara knappen Aktivera. I bakgrunden tas det gamla privata webbplatstillägget bort.

  • Uppgradera via PowerShell:

    1. Ange programinställningarna för att aktivera det förinstallerade webbplatstillägget ApplicationInsightsAgent. Mer information finns i Aktivera via PowerShell.
    2. Ta bort det privata webbplatstillägget med namnet Application Insights-tillägget för Azure App Service manuellt.

Om uppgraderingen är klar från en version före 2.5.1 kontrollerar du att ApplicationInsights DLL:erna tas bort från mappen programlager. Mer information finns i Felsökning.

Konfigurera övervakningstillägget/agenten

Vi erbjuder för närvarande inte alternativ för att konfigurera övervakningstillägget för ASP.NET Core.

Aktivera övervakning på klientsidan

Övervakning på klientsidan är aktiverat som standard för ASP.NET Core-appar med rekommenderad samling, oavsett om appinställningen APPINSIGHTS_JAVASCRIPT_ENABLED finns.

Om du vill inaktivera övervakning på klientsidan:

  1. Välj Inställningar>Konfiguration.

  2. Under Programinställningar skapar du en ny programinställning med följande information:

    • Namn: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Värde: false
  3. Spara inställningarna. Starta om appen.

Automatisera övervakning

För att aktivera telemetriinsamling med Application Insights behöver endast följande programinställningar anges:

Skärmbild som visar App Service-programinställningar med Application Insights-inställningar.

Definitioner för programinställningar

Namn på appinställning Definition Värde
ApplicationInsightsAgent_EXTENSION_VERSION Huvudtillägget, som styr körningsövervakning. ~2 för Windows eller ~3 För Linux
XDT_MicrosoftApplicationInsights_Mode I standardläge är endast viktiga funktioner aktiverade för att säkerställa optimala prestanda. disabled eller recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Endast för ASP.NET Core-appar. Aktiverar Interop (interoperation) med Application Insights SDK. Läser in tillägget sida vid sida med SDK:t och använder det för att skicka telemetri. (Inaktiverar Application Insights SDK.) 1

App Service-programinställningar med Azure Resource Manager

Programinställningar för Azure App Service kan hanteras och konfigureras med Azure Resource Manager-mallar. Du kan använda den här metoden när du distribuerar nya App Service-resurser med Resource Manager-automatisering eller ändrar inställningarna för befintliga resurser.

Den grundläggande strukturen för JSON för programinställningar för en App Service-resurs:

      "resources": [
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
          ],
          "tags": {
            "displayName": "Application Insights Settings"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]

För ett exempel på en Resource Manager-mall med programinställningar som konfigurerats för Application Insights kan den här mallen vara till hjälp. Mer information finns i avsnittet som börjar på rad 238.

Om du vill skapa en Resource Manager-mall med standardinställningarna för Application Insights börjar du processen som om du skulle skapa en ny webbapp med Application Insights aktiverat.

  1. Skapa en ny App Service-resurs med önskad webbappsinformation. Aktivera Application Insights på fliken Övervakning .

  2. Välj Granska + skapa. Välj sedan Ladda ned en mall för automatisering.

    Skärmbild som visar menyn för att skapa App Service-webbappar.

    Det här alternativet genererar den senaste Resource Manager-mallen med alla nödvändiga inställningar konfigurerade.

    Skärmbild som visar en App Service-webbappmall.

I följande exempel ersätter du alla instanser av AppMonitoredSite med webbplatsnamnet:

Kommentar

Om du använder Windows anger du ApplicationInsightsAgent_EXTENSION_VERSION till ~2. Om du använder Linux anger du ApplicationInsightsAgent_EXTENSION_VERSION till ~3.

{
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "properties": {
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
                        },
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        }
                    ]
                },
                "name": "[parameters('name')]",
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "dependsOn": [
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "microsoft.insights/components/AppMonitoredSite"
            ],
            "apiVersion": "2016-03-01",
            "location": "[parameters('location')]"
        },
        {
            "apiVersion": "2016-09-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSizeId": "[parameters('workerSize')]",
                "numberOfWorkers": "1",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2015-05-01",
            "name": "AppMonitoredSite",
            "type": "microsoft.insights/components",
            "location": "West US 2",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate"
            }
        }
    ],
    "parameters": {
        "name": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "hostingEnvironment": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "subscriptionId": {
            "type": "string"
        }
    },
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0"
}

Aktivera via PowerShell

För att aktivera programövervakning via PowerShell måste endast de underliggande programinställningarna ändras. Följande exempel aktiverar programövervakning för en webbplats som heter AppMonitoredSite i resursgruppen AppMonitoredRG. Den konfigurerar data som ska skickas till instrumentationsnyckeln 012345678-abcd-ef01-2345-6789abcd .

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Kommentar

Om du använder Windows anger du ApplicationInsightsAgent_EXTENSION_VERSION till ~2. Om du använder Linux anger du ApplicationInsightsAgent_EXTENSION_VERSION till ~3.

$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

Vanliga frågor och svar

Det här avsnittet innehåller svar på vanliga frågor.

Vad ändrar Application Insights i mitt projekt?

Informationen beror på typen av projekt. Följande lista är ett exempel för ett webbprogram.

  • Lägger till filer i projektet:

    • ApplicationInsights.config
    • ai.js
  • Installerar NuGet-paket:

    • Application Insights API: Kärn-API:et
    • Application Insights API för webbprogram: Används för att skicka telemetri från servern
    • Application Insights API för JavaScript-program: Används för att skicka telemetri från klienten
  • Innehåller sammansättningar i paket:

    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Infogar objekt i:

    • Web.config
    • packages.config
  • Infogar kodfragment i klient- och serverkoden för att initiera dem med Application Insights-resurs-ID:t. I en MVC-app infogas till exempel kod i huvudsidan Views/Shared/_Layout.cshtml. Endast för nya projekt lägger du till Application Insights i ett befintligt projekt manuellt.

Vad är skillnaden mellan standardmått från Application Insights jämfört med Azure App Service-mått?

Application Insights samlar in telemetri för de begäranden som gjorde det till programmet. Om felet inträffar i WebApps/WebServer och begäran inte nådde användarprogrammet har Application Insights ingen telemetri om det.

Varaktigheten för serverresponsetime beräknad av Application Insights matchar inte nödvändigtvis serverns svarstid som observeras av Web Apps. Det här beteendet beror på att Application Insights bara räknar varaktigheten när begäran faktiskt når användarprogrammet. Om begäran har fastnat eller placerats i kö i WebServer inkluderas väntetiden i Web Apps-måtten men inte i Application Insights-mått.

Felsökning

Testa anslutningen mellan programvärden och inmatningstjänsten

Application Insights SDK:er och agenter skickar telemetri för att matas in som REST-anrop till våra inmatningsslutpunkter. Du kan testa anslutningen från webbservern eller programvärddatorn till slutpunkterna för inmatningstjänsten med hjälp av råa REST-klienter från PowerShell- eller curl-kommandon. Se Felsöka programtelemetri som saknas i Azure Monitor Application Insights.

Kommentar

När du skapar en webbapp med körningen i App Service distribuerar den ASP.NET Core en enda statisk HTML-sida som en startwebbplats. Vi rekommenderar inte att du felsöker ett problem med standardmallen. Distribuera ett program innan du felsöker ett problem.

Telemetri saknas

Windows

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

  2. Bläddra till https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    Skärmbild som visar länken ovanför resultatsidan.

    • 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 application insights-paket kanske det inte börjar gälla att aktivera App Service-integreringen och data kanske inte visas 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 i Azure Portal aktivera Interop med Application Insights SDK.

      Viktigt!

      Den här funktionen är i förhandsversion.

       Skärmbild som visar interop-inställningen aktiverad.

      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

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

  2. Bläddra till https://your site name.scm.azurewebsites.net/ApplicationInsights.

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

    Skärmbild som visar webbsidan för autoinstrumenteringsstatus.

Standardwebbplatsen som distribueras med webbappar stöder inte automatisk övervakning på klientsidan

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.

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 Förklaring Åtgärda
AppAlreadyInstrumented:true Det här värdet anger att tillägget identifierade någon aspekt av SDK:et som redan finns i programmet och säkerhetskopierar. 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 Advanced Tools (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.

Viktig information

Det här avsnittet innehåller viktig information för Azure App Service baserat på ANT-versionen för körningsinstrumentation med Application Insights.

Om du vill ta reda på vilken version av tillägget du använder för närvarande går du till https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights.

2.8.44

2.8.43

  • Separera .NET/.NET Core, Java och Node.js paket i olika App Service Windows-webbplatstillägg.

2.8.42

  • Självdefinierade distributioner och .NET 6.0-stöd har lagts till med hjälp av .NET Startup Hook.

2.8.41

  • Har tagits bort från supportversionen (2.1). Versioner som stöds är 3.1 och 5.0.

2.8.39

  • Stöd för .NET Core 5.0 har lagts till.

2.8.38

  • Versioner som inte stöds har tagits bort (2.0, 2.2, 3.0). Versioner som stöds är 2.1 och 3.1.

2.8.37

  • AppSvc Windows-tillägg: Fick .NET Core att fungera med valfri version av System.Diagnostics.DiagnosticSource.dll.

2.8.36

  • AppSvc Windows-tillägg: Aktiverat Inter-op med AI SDK i .NET Core.

2.8.35

  • AppSvc Windows-tillägg: Stöd för .NET Core 3.1 har lagts till.

2.8.33

  • .NET, .NET Core, Java och Node.js agenter och Windows-tillägget: Stöd för nationella moln. Anslutningssträngar kan användas för att skicka data till nationella moln.

2.8.31

  • ASP.NET Core-agenten åtgärdade ett problem med Application Insights SDK. Om körningen läste in den felaktiga versionen av System.Diagnostics.DiagnosticSource.dllkraschar inte det kodlösa tillägget programmet och säkerhetskopieras. För att åtgärda problemet bör kunderna ta bort System.Diagnostics.DiagnosticSource.dll från mappen bin eller använda den äldre versionen av tillägget genom att ange ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24. Om de inte gör det är programövervakning inte aktiverat.

2.8.26

  • Ett problem som rör uppdaterad Application Insights SDK har åtgärdats. Agenten försöker inte läsa in AiHostingStartup om ApplicationInsights.dll redan finns i mappen bin. Den löser problem som rör reflektion via Assembly<AiHostingStartup>. GetTypes().

  • Kända problem: Undantag System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' kan uppstå om en annan version av DiagnosticSource dll läses in. Det kan till exempel inträffa om System.Diagnostics.DiagnosticSource.dll det finns i publiceringsmappen. Som åtgärd kan du använda den tidigare versionen av tillägget genom att ange appinställningar i apptjänster: ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.

2.8.24

  • Ompaketerad version av 2.8.21.

2.8.23

  • Stöd för kodlös övervakning har lagts till ASP.NET Core 3.0.

  • Uppdaterade ASP.NET Core SDK till 2.8.0 för körningsversionerna 2.1, 2.2 och 3.0. Appar som riktar sig till .NET Core 2.0 fortsätter att använda 2.1.1 av SDK:et.

2.8.14

  • Uppdaterade ASP.NET Core SDK-versionen från 2.3.0 till den senaste (2.6.1) för appar som riktar sig till .NET Core 2.1, 2.2. Appar som riktar sig till .NET Core 2.0 fortsätter att använda 2.1.1 av SDK:et.

2.8.12

  • Stöd för ASP.NET Core 2.2-appar.

  • En bugg har åtgärdats i ASP.NET Core-tillägget som orsakar inmatning av SDK även när programmet redan har instrumenterats med SDK:t. För 2.1- och 2.2-appar gör förekomsten av ApplicationInsights.dll i programmappen att tillägget säkerhetskopieras. För 2.0-appar säkerhetskopieras tillägget endast om ApplicationInsights är aktiverat med ett UseApplicationInsights() anrop.

  • Permanent korrigering för ofullständigt HTML-svar för ASP.NET Core-appar. Den här korrigeringen har nu utökats till att fungera för .NET Core 2.2-appar.

  • Stöd har lagts till för att inaktivera JavaScript-inmatning för ASP.NET Core-appar (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting). För ASP.NET kärna är JavaScript-inmatningen i "Opt-Out"-läge som standard, såvida inte uttryckligen inaktiverad. (Standardinställningen görs för att behålla det aktuella beteendet.)

  • Åtgärdade ASP.NET Core-tilläggsfel som orsakade inmatning även om ikey inte fanns.

  • En bugg i SDK-versionsprefixlogiken som orsakade en felaktig SDK-version i telemetri har åtgärdats.

  • SDK-versionsprefix för ASP.NET Core-appar har lagts till för att identifiera hur telemetri samlades in.

  • SCM- ApplicationInsights-sidan har åtgärdats för att korrekt visa versionen av det förinstallerade tillägget.

2.8.10

  • Korrigering för ofullständigt HTML-svar för ASP.NET Core-appar.

Nästa steg