Surveillance des applications pour Azure App Service et Java
Le monitoring de vos applications web Java qui s’exécutent sur Azure App Services ne nécessite aucune modification du code. Cet article explique pas à pas comment activer la supervision Azure Monitor Application Insights et vous donne des conseils préliminaires sur l’automatisation du processus pour les déploiements à grande échelle.
Remarque
Avec les applications Spring Boot Native Image, utilisez le projet Distribution OpenTelemetry Azure Monitor / Application Insights dans l’application Java d’image native Spring Boot au lieu de la solution d’agent Java Application Insights décrite ci-dessous.
Activer Application Insights
Le moyen recommandé d’activer le monitoring pour les applications Java s’exécutant sur Azure App Services consiste à utiliser le portail Azure. L’activation du monitoring des applications dans le portail Azure instrumente automatiquement votre application avec Application Insights et ne nécessite aucune modification du code. Vous pouvez appliquer des configurations supplémentaires et, en fonction de votre scénario spécifique, ajouter votre propre télémétrie personnalisée si nécessaire.
Instrumentation automatique à travers le Portail Azure
Vous pouvez activer le monitoring de vos applications Java exécutées dans Azure App Service tout simplement en une seule sélection, sans avoir à modifier le code. L’intégration ajoute Application Insights Java 3.x et collecte automatiquement les données de télémétrie.
Pour obtenir la liste complète des scénarios d’instrumentation automatique pris en charge, consultez Environnements, langages et fournisseurs de ressources pris en charge.
Sélectionnez Application Insights dans le panneau de configuration Azure de votre service d’application, puis sélectionnez Activer.
Choisissez de créer une nouvelle ressource, ou sélectionnez une ressource Application Insights existante pour cette application.
Notes
Quand vous sélectionnez OK pour créer la ressource, vous êtes invité à Appliquer les paramètres de supervision. Si vous sélectionnez Continuer, votre nouvelle ressource Application Insights est liée à votre service d’application et déclenche un redémarrage de votre service d’application.
Cette dernière étape est facultative. Après avoir spécifié la ressource à utiliser, vous pouvez configurer l’agent Java. Si vous ne configurez pas l’agent Java, les configurations par défaut s’appliquent.
L’ensemble complet de configurations étant disponible, vous n’avez qu’à coller un fichier json valide. Excluez la chaîne de connexion et les configurations en préversion ; vous pouvez ajouter les éléments qui se trouvent actuellement en préversion à mesure qu’ils sont mis à la disposition générale.
Une fois que vous avez modifié les configurations par le biais du portail Azure, la variable d’environnement APPLICATIONINSIGHTS_CONFIGURATION_FILE est remplie automatiquement et s’affiche dans le panneau de paramètres d’App Service. Cette variable contient le contenu complet du fichier json que vous avez collé dans la zone de texte de configuration du portail Azure pour votre application Java.
Activer la supervision côté client
Pour activer la supervision côté client pour votre application Java, vous devez ajouter manuellement le SDK JavaScript côté client à votre application.
Automatiser la supervision
Pour activer la collecte de données de télémétrie avec Application Insights, il vous suffit de définir les paramètres suivants de l’application :
Définitions des paramètres d’application
Nom du paramètre d’application | Définition | Valeur |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Extension principale, qui contrôle la supervision runtime. | ~2 sous Windows ou ~3 sous Linux. |
XDT_MicrosoftApplicationInsights_Java | Indicateur pour contrôler si l’agent Java est inclus. | 0 ou 1 (applicable uniquement sous Windows). |
Notes
Le profileur et le débogueur d’instantané ne sont pas disponibles pour les applications Java
Paramètres d’application App Service avec Azure Resource Manager
Les paramètres d’application pour Azure App Services peuvent être gérés et configurés à l’aide de modèles Azure Resource Manager. Vous pouvez utiliser cette méthode au moment de déployer de nouvelles ressources App Service avec l’automatisation Resource Manager ou modifiez les paramètres des ressources existantes.
La structure de base des paramètres d’application JSON pour une ressource App Service :
"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"
}
}
]
Pour obtenir un exemple de modèle Resource Manager où les paramètres d’application sont configurés pour Application Insights, consultez ce modèle. Plus précisément, consultez la section qui commence à la ligne 238.
Automatisez la création d’une ressource Application Insights et créez un lien vers votre nouvelle ressource App Service
Pour créer un modèle Resource Manager avec les paramètres Application Insights par défaut, commencez le processus comme si vous alliez créer une nouvelle application web avec Application Insights activé.
Créez une ressource App Service avec les informations d’application web souhaitées. Activez Application Insights sous l’onglet Supervision.
Sélectionnez Revoir + créer. Sélectionnez ensuite Télécharger un modèle pour automation.
Cette option génère le dernier modèle Resource Manager configuré avec tous les paramètres nécessaires.
Dans l’exemple suivant, remplacez toutes les instances de AppMonitoredSite
par le nom de votre site :
Remarque
Si vous travaillez sous Windows, définissez ApplicationInsightsAgent_EXTENSION_VERSION
sur ~2
. Si vous travaillez sous Linux, définissez ApplicationInsightsAgent_EXTENSION_VERSION
sur ~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"
}
Activer par le biais de PowerShell
Pour activer la supervision d’application via PowerShell, seuls les paramètres d’application sous-jacents doivent être modifiés. L’exemple suivant active la supervision d’application pour un site web appelé AppMonitoredSite
dans le groupe de ressources AppMonitoredRG
. Il configure les données à envoyer à la clé d’instrumentation 012345678-abcd-ef01-2345-6789abcd
.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Remarque
Si vous travaillez sous Windows, définissez ApplicationInsightsAgent_EXTENSION_VERSION sur ~2
. Si vous travaillez sous Linux, définissez ApplicationInsightsAgent_EXTENSION_VERSION sur ~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
Dépannage
Utilisez le guide pas à pas pour résoudre les problèmes rencontrés avec les applications Java exécutées sur Azure App Services.
Vérifiez que le paramètre d’application
ApplicationInsightsAgent_EXTENSION_VERSION
est défini sur une valeur de « ~2 » sous Windows, « ~3 » sous LinuxExaminez le fichier journal pour vérifier que l’agent a bien démarré : accédez à https://yoursitename.scm.azurewebsites.net/, modifiez SSH pour spécifier le répertoire racine, le fichier journal est situé sous LogFiles/ApplicationInsights.
Après l’activation de la supervision des applications pour votre application Java, vous pouvez vérifier que l’agent fonctionne en regardant les métriques en direct. Avant même de déployer une application sur App Service, vous verrez des requêtes de l’environnement. N’oubliez pas que l’ensemble complet des données de télémétrie n’est disponible qu’après avoir déployé et exécuté votre application.
Définissez la variable d’environnement APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL sur 'debug' si vous ne voyez pas d’erreurs et qu’il n’y a pas de données de télémétrie.
Quelles sont les différences entre les métriques standard d’Application Insights et les métriques d’Azure App Service ?
Application Insights collecte des données de télémétrie pour les requêtes qui les ont transmises à l’application. Si l'échec se produit dans WebApps/WebServer et que la requête n'a pas atteint l'application utilisateur, Application Insights n'a aucune télémétrie à ce sujet.
La durée calculée pour serverresponsetime
par Application Insights ne correspond pas nécessairement au temps de réponse du serveur observé par Web Apps. Ce comportement est dû au fait qu’Application Insights compte uniquement la durée nécessaire à la requête pour atteindre l’application utilisateur. Si la requête est bloquée ou mise en file d'attente dans WebServer, le temps d'attente est inclus dans les indicateurs de performance Web Apps mais pas dans les métriques Application Insights.
Tester la connectivité entre votre hôte d’application et le service d’ingestion
Les SDK et les agents Application Insights envoient de la télémétrie à ingérer en tant qu’appels REST à nos points de terminaison d’ingestion. Vous pouvez tester la connectivité de votre serveur web ou de votre machine hôte d’application vers les points de terminaison de service d’ingestion en utilisant des clients du Representational State Transfer (REST) bruts à partir de commandes PowerShell ou curl. Consultez Résoudre les problèmes de télémétrie d’application manquante dans Azure Monitor Application Insights.
Déployer manuellement la dernière version d’Application Insights Java
La version Application Insights Java est mise à jour automatiquement lors des mises à jour App Services.
Si vous rencontrez un problème qui trouve sa solution dans la dernière version d’Application Insights Java, vous pouvez la mettre à jour manuellement.
Pour procéder à la mise à jour manuellement, effectuez les étapes suivantes :
Chargez le fichier jar de l’agent Java sur App Service
a. En premier lieu, procurez-vous la dernière version d’Azure CLI en suivant les instructions fournies ici.
b. Ensuite, récupérez la dernière version de l’agent Application Insights Java en suivant les instructions fournies ici.
c. Enfin, déployez le fichier jar de l’agent Java sur App Service au moyen de la commande suivante :
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}
. Vous pouvez également utiliser ce guide pour déployer l’agent via le plug-in Maven.Désactivez Application Insights via l’onglet Application Insights dans le Portail Azure.
Une fois le fichier jar de l’agent chargé, accédez aux configurations App Service. Si vous devez utiliser la commande de démarrage pour Linux, incluez les arguments jvm :
La commande de démarrage n’est pas adaptée
JAVA_OPTS
à JavaSE ouCATALINA_OPTS
à Tomcat.Si vous n’utilisez pas la commande de démarrage, créez une variable d’environnement,
JAVA_OPTS
pour JavaSE ouCATALINA_OPTS
pour Tomcat avec la valeur-javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar
.Redémarrez l’application pour appliquer les changements.
Notes
Si vous avez défini la variable d’environnement JAVA_OPTS
pour JavaSE ou CATALINA_OPTS
pour Tomcat, vous devez désactiver Application Insights dans le portail. Si vous préférez activer Application Insights à partir du portail, vous pouvez également vérifier que vous n’avez pas défini la variable JAVA_OPTS
pour JavaSE ou CATALINA_OPTS
pour Tomcat dans les paramètres de configuration d’App Service.
Notes de publication
Pour obtenir les mises à jour et correctifs de bogues les plus récents, consultez les notes de publication.
Étapes suivantes
- Surveiller Azure Functions avec Application Insights.
- Autorisation de l’envoi de diagnostics Azure vers Application Insights.
- Analyse des mesures d’intégrité du service pour vous assurer que votre service est disponible et réactif.
- Réceptions de notifications d’alerte lorsque des événements opérationnels se produisent ou que des mesures dépassent un seuil.
- Utilisation d’Application Insights pour les pages Web et les applications JavaScript pour obtenir les données de télémétrie du client à partir des navigateurs qui consultent une page web.
- Vue d’ensemble de la disponibilité
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour