(Facultatif) Tester la vigie applicative avec un exemple d’application - Amazon CloudWatch

(Facultatif) Tester la vigie applicative avec un exemple d’application

Pour tester la vigie applicative CloudWatch sur un exemple d’application avant de l’utiliser pour vos propres applications, suivez les instructions de cette section. Ces instructions utilisent des scripts pour vous aider à créer un cluster Amazon EKS, à installer un exemple d’application et à équiper l’exemple d’application pour qu’il fonctionne avec Application Signals.

L’exemple d’application est une application Spring « Pet Clinic » composée de quatre microservices. Ces services s’exécutent sur Amazon EKS sur Amazon EC2 et utilisent les scripts d’activation de la vigie applicative pour activer le cluster avec l’agent d’instrumentation automatique Java, Python ou .NET.

Prérequis

  • La vigie applicative surveille uniquement les applications Java, Python ou .NET.

  • Vous devez avoir installé l’AWS CLI sur l’instance. Nous recommandons l’AWS CLI version 2, mais la version 1 devrait également fonctionner. Pour plus d’informations sur l’installation d’AWS CLI, veuillez consulter la section Installation ou mise à jour de la version la plus récente d’AWS CLI.

  • Les scripts de cette section sont destinés à être exécutés dans des environnements Linux et macOS. Pour les instances Windows, nous vous recommandons d’utiliser un environnement AWS Cloud9 pour exécuter ces scripts. Pour plus d’informations sur AWS Cloud9, veuillez consulter Qu’est-ce que AWS Cloud9 ?

  • Installez une version prise en charge de kubectl. Vous devez utiliser une version de kubectl qui se situe à une différence de version mineure près de celle du plan de contrôle de votre cluster Amazon EKS. Par exemple, un client kubectl 1.26 fonctionne avec les clusters Kubernetes 1.25, 1.26 et 1.27. Si vous possédez déjà un cluster Amazon EKS, vous pouvez avoir besoin de configurer des informations d’identification AWS pour kubectl. Pour plus d’informations, veuillez consulter la rubrique Création ou mise à jour d’un fichier kubeconfig pour un cluster Amazon EKS.

  • Installez eksctl. eksctl utilise l’AWS CLI pour interagir avec AWS, ce qui signifie qu’il utilise les mêmes informations d’identification AWS que l’AWS CLI. Pour plus d’informations, veuillez consulter la rubrique Installation ou mise à jour de eksctl.

  • Installez jq. jq est nécessaire pour exécuter les scripts d’activation d’Application Signals. Pour plus d’informations, veuillez consulter la rubrique Télécharger jq.

Étape 1 : télécharger les scripts

Pour télécharger les scripts permettant de configurer CloudWatch Application Signals à l’aide d’un exemple d’application, vous pouvez télécharger et décompresser le fichier de projet GitHub compressé sur un disque local, ou vous pouvez cloner le projet GitHub.

Pour cloner le projet, ouvrez une fenêtre de terminal et saisissez la commande Git suivante dans un répertoire de travail donné.

git clone https://github.com/aws-observability/application-signals-demo.git

Étape 2 : générer et déployer l’exemple d’application

Pour générer et diffuser les exemples d’images d’application, suivez ces instructions.

Étape 3 : déployer et activer Application Signals et l’exemple d’application

Assurez-vous d’avoir rempli les exigences listées dans (Facultatif) Tester la vigie applicative avec un exemple d’application avant de suivre les étapes suivantes.

Pour déployer et activer Application Signals et l’exemple d’application
  1. Entrez la commande suivante. Remplacez new-cluster-name par le nom que vous souhaitez utiliser pour votre nouveau cluster. Remplacez region-name par le nom de votre Région AWS, tel que us-west-1.

    Cette commande configure l’exemple d’application s’exécutant dans un nouveau cluster Amazon EKS avec Application Signals activés.

    # this script sets up a new cluster, enables Application Signals, and deploys the # sample application cd application-signals-demo/scripts/eks/appsignals/one-step && ./setup.sh new-cluster-name region-name

    L’exécution du script d’installation prend environ 30 minutes et effectue les opérations suivantes :

    • création d’un cluster Amazon EKS dans la région spécifiée ;

    • création des autorisations IAM nécessaires pour Application Signals (arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess et arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy) ;

    • activation d’Application Signals en installant l’agent CloudWatch et en instrumentant automatiquement l’exemple d’application pour les métriques CloudWatch et les suivis X-Ray ;

    • déploiement de l’exemple d’application PetClinic Spring dans le même cluster Amazon EKS ;

    • création de cinq scripts canary CloudWatch Synthetics, nommés pc-add-vist, pc-create-owners, pc-visit-pet, pc-visit-vet et pc-clinic-traffic. Ces scripts canary fonctionneront à une fréquence d’une minute afin de générer du trafic synthétique pour l’exemple d’application et de montrer comment les scripts canary Synthetics apparaissent dans Application Signals ;

    • création de quatre objectifs de niveau de service (SLO) pour l’application PetClinic portant les noms suivants :

      • Disponibilité pour la recherche d’un propriétaire

      • Latence lors de la recherche d’un propriétaire

      • Disponibilité pour l’enregistrement d’un propriétaire

      • Latence lors de l’enregistrement d’un propriétaire

    • création du rôle IAM requis avec une politique de confiance personnalisée accordant à Application Signals les autorisations suivantes :

      • cloudwatch:PutMetricData

      • cloudwatch:GetMetricData

      • xray:GetServiceGraph

      • logs:StartQuery

      • logs:GetQueryResults

  2. (Facultatif) Si vous souhaitez consulter le code source de l’exemple d’application PetClinic, vous pouvez le trouver dans le dossier racine.

    - application-signals-demo - spring-petclinic-admin-server - spring-petclinic-api-gateway - spring-petclinic-config-server - spring-petclinic-customers-service - spring-petclinic-discovery-server - spring-petclinic-vets-service - spring-petclinic-visits-service
  3. Pour afficher l’exemple d’application PetClinic déployé, exécutez la commande suivante pour trouver l’URL :

    kubectl get ingress

Étape 4 : surveiller l’exemple d’application

Après avoir effectué les étapes décrites dans la section précédente pour créer le cluster Amazon EKS et déployer l’exemple d’application, vous pouvez utiliser Application Signals pour surveiller l’application.

Note

Pour que la console Application Signals commence à se remplir, une partie du trafic doit atteindre l’exemple d’application. Les étapes précédentes ont notamment permis de créer des scripts canary CloudWatch Synthetics qui génèrent du trafic vers l’exemple d’application.

Surveillance de l’intégrité du service

Une fois qu’il est activé, CloudWatch Application Signals découvre et remplit automatiquement une liste de services sans nécessiter de configuration supplémentaire.

Pour consulter la liste des services découverts et surveiller leur état
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation du service, choisissez Application Signals, Services.

  3. Pour afficher un service, ses opérations et ses dépendances, choisissez le nom de l’un des services de la liste.

    Cette vue unifiée centrée sur les applications permet d’avoir une vision complète de la manière dont les utilisateurs interagissent avec votre service. Cela peut vous aider à trier les problèmes en cas d’anomalies de performances. Pour plus de détails sur la vue Services, veuillez consulter Surveillez l’état de fonctionnement de vos applications avec Application Signals.

  4. Choisissez l’onglet Opérations de service pour voir les métriques d’application standard pour les opérations de ce service. Les opérations sont, par exemple, les opérations d’API que le service appelle.

    Ensuite, pour afficher les graphiques d’une seule opération de ce service, choisissez le nom de cette opération.

  5. Cliquez sur l’onglet Dépendances pour voir les dépendances de votre application, ainsi que les mesures d’application critiques pour chaque dépendance. Les dépendances incluent les services AWS et les services tiers appelés par votre application.

  6. Pour afficher les suivis corrélés depuis la page des détails du service, choisissez un point de données dans l’un des trois graphiques situés au-dessus du tableau. Cela remplit un nouveau volet avec les suivis filtrés de la période. Ces suivis sont triés et filtrés en fonction du graphique que vous avez choisi. Par exemple, si vous avez choisi le graphique de latence, les suivis sont triés en fonction du temps de réponse du service.

  7. Dans le volet de navigation de la console CloudWatch, choisissez SLO. Vous pouvez voir les SLO créés par le script pour l’exemple d’application. Pour plus d’informations sur les SLO, veuillez consulter Objectifs de niveau de service (SLO).

(Facultatif) Étape 5 : nettoyage

Lorsque vous avez terminé de tester Application Signals, vous pouvez utiliser un script fourni par Amazon pour nettoyer et supprimer les artefacts créés dans votre compte pour l’exemple d’application. Pour effectuer le nettoyage, saisissez la commande suivante. Remplacez new-cluster-name par le nom du cluster que vous avez créé pour l’exemple d’application, et remplacez region-name par le nom de la Région AWS, tel que us-west-1.

cd application-signals-demo/scripts/eks/appsignals/one-step && ./cleanup.sh new-cluster-name region-name