Toepassingsbewaking voor Azure-app Service en Java
Voor het bewaken van uw Java-webtoepassingen die worden uitgevoerd op Azure-app Services zijn geen wijzigingen in de code vereist. Dit artikel begeleidt u bij het inschakelen van Azure Monitor Application Insights-bewaking en biedt voorlopige richtlijnen voor het automatiseren van het proces voor grootschalige implementaties.
Notitie
Gebruik met Spring Boot Native Image-toepassingen het Azure Monitor OpenTelemetry Distro/Application Insights in spring Boot native image Java-toepassingsproject in plaats van de Application Insights Java-agentoplossing die hieronder wordt beschreven.
Application Insights inschakelen
De aanbevolen manier om toepassingsbewaking in te schakelen voor Java-toepassingen die worden uitgevoerd op Azure-app Services, is via Azure Portal. Als u toepassingsbewaking inschakelt in Azure Portal, wordt uw toepassing automatisch geïnstruteerd met Application Insights en zijn er geen codewijzigingen vereist. U kunt extra configuraties toepassen en vervolgens op basis van uw specifieke scenario voegt u zo nodig uw eigen aangepaste telemetrie toe.
Automatische instrumentatie via Azure Portal
U kunt bewaking inschakelen voor uw Java-apps die worden uitgevoerd in Azure-app Service met slechts één selectie. Er is geen codewijziging vereist. De integratie voegt Application Insights Java 3.x toe en verzamelt automatisch telemetrie.
Zie Ondersteunde omgevingen, talen en resourceproviders voor een volledige lijst met ondersteunde auto-instrumentatiescenario's.
Selecteer Application Insights in het Configuratiescherm van Azure voor uw app-service en selecteer vervolgens Inschakelen.
Kies ervoor om een nieuwe resource te maken of selecteer een bestaande Application Insights-resource voor deze toepassing.
Notitie
Wanneer u OK selecteert om de nieuwe resource te maken, wordt u gevraagd om bewakingsinstellingen toe te passen. Als u Doorgaan selecteert, wordt uw nieuwe Application Insights-resource aan uw app-service gekoppeld. Hierdoor wordt ook de app-service opnieuw opgestart.
Deze laatste stap is optioneel. 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, worden APPLICATIONINSIGHTS_CONFIGURATION_FILE 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.
Bewaking aan clientzijde inschakelen
Als u bewaking aan de clientzijde voor uw Java-toepassing wilt inschakelen, moet u de JavaScript SDK aan de clientzijde handmatig toevoegen aan uw toepassing.
Bewaking automatiseren
Als u telemetrieverzameling met Application Insights wilt inschakelen, moeten alleen de volgende toepassingsinstellingen worden ingesteld:
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
Profiler en foutopsporingsprogramma voor momentopnamen zijn 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"
}
}
]
Voor een voorbeeld van een Resource Manager-sjabloon met toepassingsinstellingen die zijn geconfigureerd voor Application Insights, kan deze sjabloon handig zijn. Zie de sectie die begint op regel 238.
Het maken van een Application Insights-resource automatiseren en een koppeling maken naar uw zojuist gemaakte App Service-resource
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.
Maak een nieuwe App Service-resource met de gewenste web-app-informatie. Schakel Application Insights in op het tabblad Bewaking .
Selecteer Controleren + maken. Selecteer vervolgens Een sjabloon voor automatisering downloaden.
Met deze optie wordt de meest recente Resource Manager-sjabloon gegenereerd met alle vereiste instellingen geconfigureerd.
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 AppMonitoredRG
wordt 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
Probleemoplossing
Gebruik onze stapsgewijze handleiding voor het oplossen van problemen met op Java gebaseerde toepassingen die worden uitgevoerd op Azure-app Services.
ApplicationInsightsAgent_EXTENSION_VERSION
Controleer of de app-instelling is ingesteld op een waarde van '~2' in Windows, ~3 op LinuxBekijk het logboekbestand om te zien dat de agent is gestart: blader naar 'https://yoursitename.scm.azurewebsites.net/, onder SSH-wijziging in de hoofdmap, bevindt het logboekbestand zich onder LogFiles/ApplicationInsights.
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.
Stel APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL omgevingsvariabele in op foutopsporing als u geen fouten ziet en er geen telemetrie is
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.
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.
De nieuwste Java-versie van Application Insights handmatig implementeren
De Java-versie van Application Insights wordt automatisch bijgewerkt als onderdeel van App Services-updates.
Als u een probleem ondervindt dat is opgelost in de nieuwste versie van Application Insights Java, kunt u dit handmatig bijwerken.
Voer de volgende stappen uit om handmatig bij te werken:
Het JAR-bestand van de Java-agent uploaden 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.Schakel Application Insights uit via het tabblad Application Insights in Azure Portal.
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:
Opstartopdracht eert niet voor
JAVA_OPTS
JavaSE ofCATALINA_OPTS
voor Tomcat.Als u opstartopdracht niet gebruikt, maakt u een nieuwe omgevingsvariabele voor
JAVA_OPTS
JavaSE ofCATALINA_OPTS
Tomcat met de waarde-javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar
.Start de app opnieuw om de wijzigingen toe te passen.
Notitie
Als u de JAVA_OPTS
omgevingsvariabele voor JavaSE of CATALINA_OPTS
voor Tomcat instelt, moet u Application Insights uitschakelen in de portal. Als u Application Insights liever vanuit de portal inschakelt, moet u er ook voor zorgen dat u de JAVA_OPTS
variabele Voor JavaSE of CATALINA_OPTS
voor Tomcat niet instelt in de instellingen voor App Service-configuraties.
Opmerkingen bij de release
Raadpleeg de releaseopmerkingen voor de meest recente updates en bugfixes.
Volgende stappen
- Azure Functions bewaken met Application Insights.
- Schakel diagnostische Azure-gegevens in om te verzenden naar Application Insights.
- Controleer metrische gegevens voor servicestatus om ervoor te zorgen dat de service beschikbaar is en reageert.
- Ontvang waarschuwingsmeldingen wanneer er operationele gebeurtenissen plaatsvinden of metrische gegevens een drempelwaarde overschrijden.
- Gebruik Application Insights voor JavaScript-apps en -webpagina's om clienttelemetrie op te halen uit de browsers die een webpagina bezoeken.
- Overzicht van beschikbaarheid