Utiliser l’agent In-process Java d’Application Insights dans Azure Spring Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
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 l’agent Java Application Insights.
Cet article s’applique à : ✅ Consommation standard et dédié (aperçu) ✅ Essentiel/Standard ✅ Entreprise
Cet article explique comment surveiller les applications en utilisant l’agent Java d’Application Insights dans Azure Spring Apps.
Avec cette fonctionnalité, vous pouvez :
- Lancer des recherches dans des données de suivi avec différents filtres
- Affichez une carte des dépendances des applications Spring.
- Vérifier les performances des requêtes.
- Surveiller les métriques dynamiques en temps réel.
- Vérifier les échecs des requêtes.
- Vérifier les métriques de l’application.
- Consultez les journaux des applications.
Application Insights peut fournir de nombreuses perspectives observables, notamment :
- Mise en correspondance d’applications
- Performances
- Échecs
- Mesures
- Métriques temps réel
- Disponibilité
- Journaux d’activité
Utilisation de la fonctionnalité Application Insights
Lorsque la fonctionnalité Application Insights est activée, vous pouvez :
Dans le volet de navigation, sélectionnez Application Insights pour voir la page Vue d’ensemble d’Application Insights. La page Vue d’ensemble affiche une vue d’ensemble de toutes les applications en cours d’exécution.
Sélectionnez Plan de l’application pour afficher l’état des appels entre les applications.
Sélectionnez le lien entre le service client et
petclinic
pour voir plus de détails, par exemple une requête SQL.Sélectionnez un point de terminaison pour voir toutes les applications qui envoient des demandes au point de terminaison.
Dans le volet de navigation, sélectionnez Performances pour voir les données de performances de toutes les opérations, les dépendances et les rôles des applications.
Dans le volet de navigation, sélectionnez Échecs pour voir les échecs ou exceptions inattendus de vos applications.
Dans le volet de navigation, sélectionnez Métriques et sélectionnez l’espace de noms pour voir les métriques Spring Boot et les métriques personnalisées, le cas échéant.
Dans le volet de navigation, sélectionnez Métriques en direct pour voir les métriques en temps réel de différentes dimensions.
Dans le volet de navigation, sélectionnez Disponibilité pour monitorer la disponibilité et la réactivité des applications web en créant des tests de disponibilité dans Application Insights.
Dans le volet de navigation, sélectionnez Journaux pour voir tous les journaux des applications, ou les journaux d’une application quand vous filtrez par
cloud_RoleName
.
Gérer Application Insights à l’aide du portail Azure
Activez l’agent Java In-Process à l’aide de la procédure suivante.
Accédez à la page Service | Vue d’ensemble de votre instance de service, puis sélectionnez Application Insights dans la section Monitoring.
Sélectionnez Activer Application Insights pour activer Application Insights dans Azure Spring Apps.
Sélectionnez une instance d’Application Insights ou créez-en une.
Une fois Application Insights activé, vous pouvez configurer un taux d’échantillonnage facultatif (10,0 % par défaut).
Sélectionnez Enregistrer pour enregistrer la modification.
Remarque
N’utilisez pas la même instance Application Insights dans différentes instances Azure Spring Apps, sinon vous voyez des données mélangées.
Vous pouvez utiliser le portail pour vérifier ou mettre à jour les paramètres actuels dans Application Insights.
Activer Application Insights à l’aide du portail Azure
Sélectionnez Application Insights.
Activez Application Insights en sélectionnant Modifier la liaison ou le lien hypertexte Non liée.
Modifiez Application Insights ou taux d’échantillonnage, puis sélectionnez Enregistrer.
Désactiver Application Insights
Sélectionnez Application Insights.
Sélectionnez Annuler la liaison pour désactiver Application Insights.
Modifier les paramètres d'Application Insights
Sélectionnez le nom sous la colonne Application Insights pour ouvrir la section Application Insights.
Modifier les liaisons des Buildpacks Application Insights dans le service de Build
Pour vérifier et mettre à jour les paramètres actuels des liaisons des Buildpacks Application Insights dans le service de Build, procédez comme suit :
- Sélectionnez Build Service.
- Choisissez votre générateur.
- Sélectionnez Modifier dans la colonne Liaisons.
Les paramètres Application Insights se trouvent dans l’élément ApplicationInsights répertorié sous la colonne Type de liaison.
Sélectionnez le lien hypertexte Liée, ou l’option Modifier la liaison sous l’ellipse, pour ouvrir ou modifier les liaisons de Buildpacks Application Insights.
Modifiez les paramètres de liaison, puis sélectionnez Enregistrer.
Gérer Application Insights à l’aide d’Azure CLI
Vous pouvez gérer Application Insights à l’aide des commandes Azure CLI. Dans les commandes suivantes, veillez à remplacer le texte de l’<espace réservé> par les valeurs décrites. L’espace réservé <service-instance-name> fait référence au nom de votre instance Azure Spring Apps.
Activer Application Insights
Pour configurer Application Insights au moment de la création d’une instance Azure Spring Apps, utilisez la commande suivante. Pour l’argument app-insights
, vous pouvez spécifier un nom ou un ID de ressource Application Insights.
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Vous pouvez également utiliser une chaîne de connexion Application Insights (choix par défaut) ou une clé d’instrumentation, comme indiqué dans l’exemple suivant.
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Désactiver Application Insights
Pour désactiver Application Insights au moment de la création d’une instance Azure Spring Apps, utilisez la commande suivante :
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights \
--sku Enterprise
Vérifier les paramètres d'Application Insights
Pour vérifier les paramètres Application Insights d’une instance existante Azure Spring Apps, utilisez la commande suivante :
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
Mettre à jour Application Insights
Pour mettre à jour Application Insights afin d’utiliser une chaîne de connexion (choix par défaut) ou une clé d’instrumentation, utilisez la commande suivante :
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
Pour mettre à jour Application Insights afin d’utiliser le nom ou de l’ID de ressource, utilisez la commande suivante :
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
Désactiver Application Insights avec la commande update
Pour désactiver Application Insights dans une instance Azure Spring Apps existante, utilisez la commande suivante :
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
Gérer les liaisons des Buildpacks Application Insights
Cette section s’applique uniquement au plan Entreprise et fournit des instructions qui complètent la section précédente.
Le plan Entreprise d’Azure Spring Apps utilise des liaisons de buildpack pour intégrer Azure Application Insights au type ApplicationInsights
. Pour plus d’informations, consultez Comment configurer l’intégration APM et les certificats d’autorité de certification.
Pour créer une liaison de Buildpack Application Insights, utilisez la commande suivante :
az spring build-service builder buildpack-binding create \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Pour répertorier toutes les liaisons de Buildpacks et rechercher les liaisons Application Insights pour le type ApplicationInsights
, utilisez la commande suivante :
az spring build-service builder buildpack-binding list \
--resource-group <your-resource-group-name> \
--service <your-service-resource-name> \
--builder-name <your-builder-name>
Pour remplacer une liaison de Buildpack Application Insights, utilisez la commande suivante :
az spring build-service builder buildpack-binding set \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Pour obtenir une liaison de Buildpack Application Insights, utilisez la commande suivante :
az spring build-service builder buildpack-binding show \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Pour supprimer une liaison de Buildpack Application Insights, utilisez la commande suivante :
az spring build-service builder buildpack-binding delete \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Automation
Les sections suivantes décrivent l’automatisation de votre déploiement à l’aide de Bicep, de modèles Azure Resource Manager (modèles ARM) ou de Terraform.
Bicep
Pour effectuer un déploiement à l’aide d’un fichier Bicep, copiez le contenu suivant dans un fichier main.bicep. Pour plus d’informations, consultez Microsoft.AppPlatform Spring/monitoringSettings.
param springName string
param location string = resourceGroup().location
resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
name: springName
location: location
properties: {}
}
resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
parent: spring
name: 'default'
properties: {
appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
appInsightsSamplingRate: 88
}
}
Modèles ARM
Pour effectuer un déploiement à l’aide d’un modèle ARM, copiez le contenu suivant dans un fichier azuredeploy.json. Pour plus d’informations, consultez Microsoft.AppPlatform Spring/monitoringSettings.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2020-07-01",
"name": "[parameters('springName')]",
"location": "[parameters('location')]",
"properties": {}
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "[format('{0}/{1}', parameters('springName'), 'default')]",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
]
}
]
}
Terraform
Pour un déploiement Terraform, utilisez le modèle suivant. Pour plus d’informations, consultez azurerm_spring_cloud_service.
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_application_insights" "example" {
name = "tf-test-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
}
resource "azurerm_spring_cloud_service" "example" {
name = "example-springcloud"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "S0"
config_server_git_setting {
uri = "https://github.com/Azure-Samples/piggymetrics"
label = "config"
search_paths = ["dir1", "dir2"]
}
trace {
connection_string = azurerm_application_insights.example.connection_string
sample_rate = 10.0
}
tags = {
Env = "staging"
}
}
L’automatisation du plan Entreprise est en attente de prise en charge. La documentation sera ajoutée dès qu’elle sera disponible.
Mise à jour/mise à niveau de l’agent Java
L’agent Java est régulièrement mis à jour/mis à niveau avec le JDK, ce qui peut affecter les scénarios suivants.
Remarque
La version du JDK est mise à jour ou à niveau tous les trimestres.
- Les applications existantes qui utilisent l’agent Java avant la mise à jour/mise à niveau ne sont pas affectées.
- Les applications créées après la mise à jour/mise à niveau utilisent la nouvelle version de l’agent Java.
- Les applications existantes qui n’utilisaient pas l’agent Java précédemment nécessitent un redémarrage ou un redéploiement pour utiliser la nouvelle version de l’agent Java.
L’agent Java est mis à jour/mis à niveau en même temps que le buildpack.
Chargement à chaud de la configuration de l’agent Java
Azure Spring Apps a un mécanisme de chargement à chaud pour ajuster les paramètres de configuration de l’agent sans redémarrer les applications.
Remarque
Le mécanisme de chargement à chaud a un délai exprimé en minutes.
Si l’agent Java est déjà activé, les changements de l’instance Application Insights ou de la valeur
SamplingRate
ne nécessitent pas le redémarrage de l’application.Si vous activez l’agent Java, vous devez redémarrer les applications.
Quand vous désactivez l’agent Java, les applications arrêtent d’envoyer toutes les données de monitoring après un retard indiqué en minutes. Vous pouvez redémarrer les applications pour supprimer l’agent de l’environnement de runtime Java.
Correspondance du concept entre Azure Spring Apps et Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Cartographie d’application/Rôle * Métriques en direct/Rôle * Échecs/Rôles/Rôle cloud * Performances/Rôles/Rôle cloud |
App Instance |
* Cartographie d’application/Instance de rôle * Métriques temps direct/Nom de service * Défaillances/Rôles/Instance cloud * Performances/Rôles/Instance cloud |
Le nom App Instance
d’Azure Spring Apps est changé ou généré dans les scénarios suivants :
- Vous créez une application.
- Vous déployez un fichier JAR ou un code source dans une application existante.
- Vous lancez un déploiement bleu/vert.
- Vous redémarrez l'application.
- Vous arrêtez le déploiement d’une application, puis vous la redémarrez.
Lorsque les données sont stockées dans Application Insights, elles contiennent l’historique des instances d’application Azure Spring Apps créées ou déployées depuis l’activation de l’agent Java. Par exemple, dans le portail Application Insights, vous pouvez voir les données d’Application créées hier, puis supprimées dans un intervalle de temps spécifique, comme les dernières 24 heures. Les scénarios suivants illustrent son fonctionnement :
- Vous avez créé une application autour de 8 h 00 aujourd’hui à partir d’Azure Spring Apps avec l’agent Java activé, puis vous avez déployé un fichier JAR dans cette application autour de 8 h 10 aujourd’hui. Après quelques tests, vous modifiez le code et déployez un nouveau fichier JAR dans cette application à 8:30 aujourd’hui. Ensuite, vous prenez un arrêt et, lorsque vous revenez à 11:00, vous vérifiez certaines données de Application Insights. Vous voyez :
- Trois instances dans la cartographie d’application avec des intervalles de temps au cours des dernières 24 heures, ainsi que les défaillances, les performances et les métriques.
- Une instance dans la cartographie d’application mappage d’application avec un intervalle de temps au cours de la dernière heure, ainsi que les défaillances, les performances et les métriques.
- Une instance dans les métriques en temps réel.
- Vous avez créé une application autour de 8 h 00 aujourd’hui à partir d’Azure Spring Apps avec l’agent Java activé, puis vous avez déployé un fichier JAR dans cette application autour de 8 h 10 aujourd’hui. Environ 8:30, vous essayez d’effectuer un déploiement bleu/vert avec un autre fichier JAR. Actuellement, vous avez deux déploiements pour cette application. Après une interruption d’environ 11:00, vous souhaitez vérifier certaines données de Application Insights. Vous voyez :
- Trois instances dans la cartographie d’application avec des intervalles de temps au cours des dernières 24 heures, ainsi que les défaillances, les performances et les métriques.
- Deux instances dans la cartographie d’application avec des intervalles de temps au cours de la dernière heure, ainsi que les défaillances, les performances et les métriques.
- Deux instances de métriques en temps réel.