Lezen in het Engels

Delen via


Toepassingsbewaking inschakelen in Azure-app Service voor .NET-, Node.js-, Python- en Java-toepassingen

Automatische instrumentatie, ook wel runtimebewaking genoemd, is de eenvoudigste manier om Application Insights in te schakelen voor Azure-app Service zonder dat hiervoor codewijzigingen of geavanceerde configuraties nodig zijn. Evalueer op basis van uw specifieke scenario of u geavanceerdere bewaking nodig hebt via handmatige instrumentatie.

Notitie

Op 31 maart 2025 eindigt de ondersteuning voor opname van instrumentatiesleutels. Opname van instrumentatiesleutels blijft werken, maar we bieden geen updates of ondersteuning meer voor de functie. Overgang naar verbindingsreeks s om te profiteren van nieuwe mogelijkheden.

Application Insights inschakelen

Notitie

Gebruik met Spring Boot Native Image-toepassingen het Azure Monitor OpenTelemetry Distro/Application Insights in spring Boot native image Java application project in plaats van de Application Insights Java-agentoplossing die hier wordt beschreven.

Met deze integratie voegt u Application Insights Java 3.x toe en worden telemetriegegevens automatisch opgehaald. U kunt verder extra configuraties toepassen en uw eigen aangepaste telemetrie toevoegen.

Automatische instrumentatie in Azure Portal

  1. Selecteer Application Insights in het linkernavigatiemenu van uw app-service en selecteer vervolgens Inschakelen.

     Schermopname van het tabblad Application Insights met Inschakelen geselecteerd.

  2. Maak een nieuwe resource of selecteer een bestaande Application Insights-resource voor deze toepassing.

    Notitie

    Wanneer u OK selecteert om een nieuwe resource te maken, wordt u gevraagd bewakingsinstellingen toe te passen. Als u Continue selecteert, wordt uw nieuwe Application Insights-resource gekoppeld aan uw app-service. Uw app-service wordt vervolgens opnieuw opgestart.

    Schermopname van de vervolgkeuzelijst Resource wijzigen.

De bewakingsextensie/agent handmatig upgraden

De Java-versie van Application Insights wordt automatisch bijgewerkt als onderdeel van App Service-updates. Als er een probleem optreedt dat is opgelost in de nieuwste versie van de Application Insights Java-agent, kunt u deze handmatig bijwerken.

  1. Upload het JAR-bestand van de Java-agent naar App Service.

    a. Haal eerst de nieuwste versie van Azure CLI op door de instructies hier te volgen.

    b. Haal vervolgens de nieuwste versie van de Application Insights Java-agent op door de instructies hier te volgen.

    c. Implementeer vervolgens het JAR-bestand van de Java-agent naar App Service met behulp van de volgende opdracht: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME} U kunt deze handleiding ook gebruiken om de agent te implementeren via de Maven-invoegtoepassing.

  2. Schakel Application Insights uit via het tabblad Application Insights in Azure Portal.

  3. Zodra het JAR-bestand van de agent is geüpload, gaat u naar App Service-configuraties. Als u de opstartopdracht voor Linux wilt gebruiken, moet u JVM-argumenten opnemen:

    Schermopname van de opstartopdracht.

    Opstartopdracht eert niet voor JAVA_OPTS JavaSE of CATALINA_OPTS voor Tomcat.

    Als u opstartopdracht niet gebruikt, maakt u een nieuwe omgevingsvariabele voor JAVA_OPTS JavaSE of CATALINA_OPTS Tomcat met de waarde-javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.

  4. Start de app opnieuw om de wijzigingen toe te passen.

Notitie

Als u de JAVA_OPTS omgevingsvariabele voor JavaSE of CATALINA_OPTS tomcat instelt, moet u Application Insights uitschakelen in Azure Portal. Als u Application Insights liever inschakelt vanuit Azure Portal, moet u er ook voor zorgen dat u de JAVA_OPTS variabele JavaSE of CATALINA_OPTS tomcat niet instelt in de instellingen voor App Service-configuraties.

De bewakingsextensie/agent configureren

Nadat u hebt opgegeven welke resource u wilt gebruiken, kunt u de Java-agent configureren. Als u de Java-agent niet configureert, zijn standaardconfiguraties van toepassing.

De volledige set configuraties is beschikbaar. U hoeft alleen een geldig json-bestand te plakken. Sluit de verbindingsreeks en eventuele configuraties uit die in preview zijn. U kunt de items die momenteel in preview zijn, toevoegen wanneer ze algemeen beschikbaar zijn.

Zodra u de configuraties via Azure Portal hebt gewijzigd, APPLICATIONINSIGHTS_CONFIGURATION_FILE worden omgevingsvariabele automatisch ingevuld en weergegeven in het deelvenster Instellingen van App Service. Deze variabele bevat de volledige json-inhoud die u hebt geplakt in het tekstvak configuratie van Azure Portal voor uw Java-app.

Schermopname van het instrument van uw toepassing.

Bewaking aan clientzijde inschakelen

Als u bewaking aan de clientzijde wilt inschakelen, kan de Java-agent het Browser SDK-laadprogramma (preview) injecteren in de HTML-pagina's van uw toepassing, waaronder het configureren van de juiste verbindingsreeks.

Ga voor meer informatie naar Configuratieopties: Azure Monitor Application Insights voor Java.

Bewaking automatiseren

Als u telemetrieverzameling met Application Insights wilt inschakelen, moeten alleen de volgende toepassingsinstellingen worden ingesteld:

Schermopname van App Service-toepassingsinstellingen met beschikbare Application Insights-instellingen.

Definities van toepassingsinstellingen

Naam van de app-instelling Definitie Weergegeven als
ApplicationInsightsAgent_EXTENSION_VERSION Belangrijkste extensie, waarmee runtime-bewaking wordt gecontroleerd. ~2 in Windows of ~3 in Linux.
XDT_MicrosoftApplicationInsights_Java Vlag om te bepalen of java-agent is opgenomen. 0 of 1 (alleen van toepassing in Windows).

Notitie

Snapshot Debugger is niet beschikbaar voor Java-toepassingen.

App Service-toepassingsinstellingen met Azure Resource Manager

Toepassingsinstellingen voor Azure-app Service kunnen worden beheerd en geconfigureerd met Azure Resource Manager-sjablonen. U kunt deze methode gebruiken wanneer u nieuwe App Service-resources implementeert met Resource Manager-automatisering of de instellingen van bestaande resources wijzigt.

De basisstructuur van de JSON voor toepassingsinstellingen voor een App Service-resource:

      "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"
          }
        }
      ]

Als u een Resource Manager-sjabloon wilt maken met de standaardinstellingen voor Application Insights, begint u het proces alsof u een nieuwe web-app wilt maken waarvoor Application Insights is ingeschakeld.

  1. Maak een nieuwe App Service-resource met de gewenste web-app-informatie. Schakel Application Insights in op het tabblad Bewaking .

  2. Selecteer Controleren + maken. Selecteer vervolgens Een sjabloon voor automatisering downloaden.

    Schermopname van het menu Voor het maken van een App Service-web-app.

    Met deze optie wordt de meest recente Resource Manager-sjabloon gegenereerd met alle vereiste instellingen geconfigureerd.

    Schermopname van een App Service-web-app-sjabloon.

Vervang in het volgende voorbeeld alle exemplaren van AppMonitoredSite uw sitenaam:

Notitie

Als u Windows gebruikt, stelt u deze optie in ApplicationInsightsAgent_EXTENSION_VERSION op ~2. Als u Linux gebruikt, stelt u deze optie in ApplicationInsightsAgent_EXTENSION_VERSION op ~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"
}

Inschakelen via PowerShell

Als u de toepassingscontrole via PowerShell wilt inschakelen, moeten alleen de onderliggende toepassingsinstellingen worden gewijzigd. In het volgende voorbeeld wordt toepassingsbewaking ingeschakeld voor een website die in de resourcegroep AppMonitoredRGwordt aangeroepenAppMonitoredSite. Hiermee worden gegevens geconfigureerd die naar de 012345678-abcd-ef01-2345-6789abcd instrumentatiesleutel moeten worden verzonden.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Notitie

Als u Windows gebruikt, stelt u ApplicationInsightsAgent_EXTENSION_VERSION in op ~2. Als u Linux gebruikt, stelt u ApplicationInsightsAgent_EXTENSION_VERSION in op ~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

Veelgestelde vragen

In deze sectie vindt u antwoorden op veelgestelde vragen.

Wat wijzigt Application Insights in mijn project?

De details zijn afhankelijk van het type project. De volgende lijst is een voorbeeld voor een webtoepassing.

  • Bestanden toevoegen aan uw project:

    • ApplicationInsights.config
    • ai.js
  • Hiermee worden NuGet-pakketten geïnstalleerd:

    • Application Insights-API: de kern-API
    • Application Insights-API voor webtoepassingen: wordt gebruikt voor het verzenden van telemetrie vanaf de server
    • Application Insights-API voor JavaScript-toepassingen: wordt gebruikt voor het verzenden van telemetrie van de client
  • Bevat assembly's in pakketten:

    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Items invoegen in:

    • Web.config
    • packages.config
  • Voegt codefragmenten in de client- en servercode in om ze te initialiseren met de Application Insights-resource-id. In een MVC-app wordt bijvoorbeeld code ingevoegd in de hoofdpaginaWeergaven /Gedeeld/_Layout.cshtml. Alleen voor nieuwe projecten voegt u Application Insights handmatig toe aan een bestaand project.

Wat is het verschil tussen metrische standaardgegevens van Application Insights versus Azure-app Service-metrische gegevens?

Application Insights verzamelt telemetrie voor de aanvragen die deze naar de toepassing hebben verzonden. Als de fout optreedt in WebApps/WebServer en de aanvraag de gebruikerstoepassing niet heeft bereikt, heeft Application Insights er geen telemetrie over.

De duur voor serverresponsetime berekening door Application Insights komt niet noodzakelijkerwijs overeen met de reactietijd van de server die door Web Apps wordt waargenomen. Dit gedrag komt doordat Application Insights alleen de duur telt wanneer de aanvraag daadwerkelijk de gebruikerstoepassing bereikt. Als de aanvraag is vastgelopen of in de wachtrij is geplaatst in WebServer, wordt de wachttijd opgenomen in de metrische gegevens van Web Apps, maar niet in de metrische gegevens van Application Insights.

Probleemoplossing

Connectiviteit testen tussen uw toepassingshost en de opnameservice

Application Insights SDK's en agents verzenden telemetrie om opgenomen te worden als REST-aanroepen naar onze opname-eindpunten. U kunt de connectiviteit vanaf uw webserver of toepassingshostcomputer testen op de service-eindpunten voor opname met behulp van onbewerkte REST-clients uit PowerShell- of curl-opdrachten. Zie Problemen met ontbrekende toepassingstelemetrie oplossen in Azure Monitor Application Insights.

Ontbrekende telemetrie

  1. ApplicationInsightsAgent_EXTENSION_VERSION Controleer of de app-instelling is ingesteld op een waarde in ~2 Windows, ~3 in Linux

  2. Controleer het logboekbestand om te zien dat de agent is gestart: blader naar https://yoursitename.scm.azurewebsites.net/, onder SSH-wijziging in de hoofdmap, het logboekbestand bevindt zich onder LogFiles/ApplicationInsights.

    Schermopname van de bovenstaande pagina met resultaten van de koppeling.

  3. Nadat u toepassingsbewaking voor uw Java-app hebt ingeschakeld, kunt u controleren of de agent werkt door de live metrische gegevens te bekijken, zelfs voordat u app implementeert en app naar App Service, ziet u enkele aanvragen van de omgeving. Houd er rekening mee dat de volledige set telemetrie alleen beschikbaar is wanneer uw app is geïmplementeerd en wordt uitgevoerd.

  4. Stel APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL de omgevingsvariabele in op debug als u geen fouten ziet en er geen telemetrie is.