Utiliser l’agent In-process Java d’Application Insights dans Azure Spring Apps

Remarque

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

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ée (préversion) ✔️ De base/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.

    Screenshot of the Azure portal that shows the Application Insights Application map page.

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

    Screenshot of the Azure portal that shows the Application Insights Performance page.

  • Dans le volet de navigation, sélectionnez Échecs pour voir les échecs ou exceptions inattendus de vos applications.

    Screenshot of the Azure portal that shows the Application Insights Failures page.

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

    Screenshot of the Azure portal that shows the Application Insights Metrics page.

  • Dans le volet de navigation, sélectionnez Métriques en direct pour voir les métriques en temps réel de différentes dimensions.

    Screenshot of the Azure portal that shows the Application Insights Live Metrics page.

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

    Screenshot of the Azure portal that shows the Application Insights Availability page.

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

    Screenshot of the Azure portal that shows the Application Insights Logs page.

Gérer Application Insights à l’aide du portail Azure

Activez l’agent Java In-Process à l’aide de la procédure suivante.

  1. Accédez à la page Service | Vue d’ensemble de votre instance de service, puis sélectionnez Application Insights dans la section Monitoring.

  2. Sélectionnez Activer Application Insights pour activer Application Insights dans Azure Spring Apps.

  3. Sélectionnez une instance d’Application Insights ou créez-en une.

  4. Une fois Application Insights activé, vous pouvez configurer un taux d’échantillonnage facultatif (10,0 % par défaut).

    Screenshot of the Azure portal that shows the Azure Spring Apps instance with Application Insights page and Enable Application Insights checkbox highlighted.

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

  1. Sélectionnez Application Insights.

  2. Activez Application Insights en sélectionnant Modifier la liaison ou le lien hypertexte Non liée.

    Screenshot of the Azure portal Azure that shows the Azure Spring Apps instance with the Application Insights page and the 'Edit binding' option.

  3. Modifiez Application Insights ou taux d’échantillonnage, puis sélectionnez Enregistrer.

Désactiver Application Insights

  1. Sélectionnez Application Insights.

  2. Sélectionnez Annuler la liaison pour désactiver Application Insights.

    Screenshot of the Azure portal that shows the Azure Spring Apps instance with the Application Insights page and the Unbind binding option.

Modifier les paramètres d'Application Insights

Sélectionnez le nom sous la colonne Application Insights pour ouvrir la section Application Insights.

Screenshot of the Azure portal that shows the Azure Spring Apps instance with the Application Insights page.

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 :

  1. Sélectionnez Build Service.
  2. Choisissez votre générateur.
  3. 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.

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

    Screenshot of the Azure portal that shows the Edit bindings for default builder pane.

  2. Modifiez les paramètres de liaison, puis sélectionnez Enregistrer.

    Screenshot of the Azure portal that shows the Edit binding pane.

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.

Étapes suivantes