

# OPS04-BP01 Implémenter la télémétrie de l'application
<a name="ops_telemetry_application_telemetry"></a>

 La télémétrie de l'application est la pierre angulaire de l'observabilité de votre charge de travail. Votre application devrait émettre des données de télémétrie qui donnent un aperçu de son état et du niveau de réalisation des résultats commerciaux. Du dépannage à la mesure de l'impact d'une nouvelle fonctionnalité, la télémétrie de l'application informe sur la façon dont vous créez, exploitez et faites évoluer votre charge de travail. 

 La télémétrie d'une application se compose de métriques et de journaux. Les métriques sont des informations de diagnostic, telles que votre pouls ou votre température. Elles sont utilisées collectivement pour décrire l'état de votre application. La collecte de métriques au fil du temps permet de développer des points de référence et de détecter les anomalies. Les journaux sont des messages que l'application envoie à propos de son état interne ou des événements qui se produisent. Les codes d'erreur, les identificateurs de transaction et les actions de l'utilisateur sont des exemples d'événements journalisés. 

 **Résultat souhaité :** 
+  Votre application émet des métriques et des journaux qui donnent un aperçu de son état et de la réalisation des résultats commerciaux. 
+  Les métriques et les journaux sont stockés de manière centralisée pour toutes les applications de la charge de travail. 

 **Anti-modèles courants :** 
+  Votre application n'émet pas de télémesures. Vous êtes contraint de compter sur vos clients pour savoir quand quelque chose ne fonctionne pas correctement. 
+  Un client a signalé que votre application ne répond pas. Vous n'avez pas de télémesures et êtes incapable de confirmer l'existence du problème ou de le caractériser sans utiliser vous-même l'application pour comprendre l'expérience actuelle de l'utilisateur. 

 **Avantages liés au respect de cette bonne pratique :** 
+  Vous pouvez déterminer l'état de votre application, l'expérience utilisateur et la réalisation des résultats commerciaux. 
+  Vous pouvez réagir rapidement aux changements d'état de votre application. 
+  Vous pouvez développer des tendances liées à l'état de l'application. 
+  Vous pouvez prendre des décisions éclairées sur l'amélioration de votre application. 
+  Vous pouvez détecter et résoudre les problèmes d'application plus rapidement. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** élevé 

## Directives d'implémentation
<a name="implementation-guidance"></a>

 La mise en œuvre de la télémétrie de l'application comprend trois étapes : identifier un emplacement pour stocker les données de télémétrie, identifier les données de télémétrie qui décrivent l'état de l'application et instrumenter l'application pour émettre les données de télémétrie. 

 **Exemple de client** 

AnyCompany Retail a une architecture basée sur des microservices. Dans le cadre de son processus de conception architecturale, elle a identifié la télémétrie de l'application qui l'aiderait à déterminer l'état de chaque microservice. Par exemple, le service de panier utilisateur émet des données de télémétrie sur des événements tels que l'ajout d'un article au panier, l'abandon du panier et le temps nécessaire pour ajouter un article au panier. Tous les microservices journalisent les erreurs, les avertissements et les informations de transaction. La télémétrie est envoyée à Amazon CloudWatch à des fins de stockage et d'analyse. 

 **Étapes d'implémentation** 

1.  Identifier un emplacement central pour le stockage des données de télémétrie pour les applications de votre charge de travail. L'emplacement doit prendre en charge la collection des capacités de télémétrie et d'analyse. La détection des anomalies et les informations automatisées sont des fonctions recommandées. 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch) fournit des fonctionnalités de collecte des données de télémétrie, de tableaux de bord, d'analyse et de génération d'événements. 

1.  Pour identifier la télémétrie dont vous avez besoin, commencez par répondre à cette question : quel est l'état de mon application ? Votre application doit émettre des journaux et des métriques qui répondent collectivement à cette question. Si vous ne parvenez pas à répondre à cette questions avec la télémétrie de l'application existante, collaborez avec les parties prenantes de l'entreprise et de l'ingénierie pour créer une liste d'exigences en matière de télémétrie. 

   1.  Vous pouvez demander des conseils techniques d'experts à votre équipe Compte AWS lorsque vous identifiez et développez de nouvelles applications de télémétrie. 

1.  Une fois que la télémétrie de l'application supplémentaire a été identifiée, travaillez avec les parties prenantes en ingénierie pour instrumenter l'application. 

   1.  [AWS Distro for Open Telemetry](https://aws-otel.github.io/) fournit des API, des bibliothèques et des agents qui collectent la télémétrie de l'application. [Cet exemple illustre comment instrumenter une application JavaScript avec des métriques personnalisées](https://aws-otel.github.io/docs/getting-started/js-sdk/metric-manual-instr). 

   1.  Si vous voulez comprendre les services d'observabilité offerts par AWS, suivez le [One Observability Workshop](https://catalog.workshops.aws/observability/en-US) (Atelier sur l'observabilité) ou demandez de l'aide auprès de votre équipe Compte AWS. 

   1.  Pour en savoir plus sur la télémétrie de l'application, lisez l'article [Instrumenter les systèmes distribués pour une visibilité opérationnelle](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) dans la bibliothèque des créateurs Amazon. Il explique comment Amazon instrumente les applications et peut servir de guide pour développer vos propres directives d'instrumentation. 

 **Niveau d'effort du plan d'implémentation :** élevé. L'instrumentation de votre application et la centralisation du stockage de la télémétrie peut demander un investissement important. 

## Ressources
<a name="resources"></a>

 **Bonnes pratiques associées :** 

[OPS04-BP02 Mettre en œuvre et configurer la télémétrie de la charge de travail](ops_telemetry_workload_telemetry.md) : la télémétrie de l'application est un composant de la télémétrie de la charge de travail. Afin de comprendre l'état de la charge de travail globale, vous devez comprendre celui des applications individuelles qui la composent. 

[OPS04-BP03 Mettre en œuvre la télémétrie pour l'activité des utilisateurs](ops_telemetry_customer_telemetry.md) : la télémétrie de l'activité des utilisateurs est souvent un sous-ensemble de la télémétrie de l'application. L'activité de l'utilisateur, comme les événements d'ajout au panier, les flux de clics ou les transactions terminées, donne un aperçu de l'expérience utilisateur. 

[OPS04-BP04 Mettre en œuvre la télémétrie pour les dépendances](ops_telemetry_dependency_telemetry.md) : les contrôles de dépendance sont liés à la télémétrie de l'application et peuvent être instrumentés dans votre application. Si votre application s'appuie sur des dépendances externes telles qu'un DNS ou une base de données, votre application peut émettre des métriques et des journaux sur l'accessibilité, les délais d'attente et d'autres événements. 

[OPS04-BP05 Mettre en œuvre la traçabilité des transactions](ops_telemetry_dist_trace.md) : le suivi des transactions sur une charge de travail nécessite que chaque application émette des informations sur la manière dont elle traite les événements partagés. La manière dont les applications individuelles gèrent ces événements est émise via la télémétrie de leur application. 

[OPS08-BP02 Définir les métriques de la charge de travail](ops_workload_health_design_workload_metrics.md) : les métriques de charge de travail sont les principaux indicateurs de l'état de votre charge de travail. Les métriques clés de l'application font partie des métriques de la charge de travail. 

 **Documents connexes :** 
+  [AWS Builders' Library : Instrumenter les systèmes distribués pour une visibilité opérationnelle](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [AWS Distro for OpenTelemetry](https://aws-otel.github.io/) 
+  [Livre blanc du pilier Excellence opérationnelle AWS Well-Architected – Mettre en place la télémétrie](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/design-telemetry.html) 
+  [Création de métriques à partir d'événements du journal à l'aide de filtres](https://docs.aws.amazon.com/Amazon/latest/logs/MonitoringLogData.html) 
+  [Implementing Logging and Monitoring with Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/welcome.html) (Mise en œuvre de la journalisation et de la surveillance avec Amazon CloudWatch) 
+  [Monitoring application health and performance with AWS Distro for OpenTelemetry](https://aws.amazon.com/blogs/opensource/monitoring-application-health-and-performance-with-aws-distro-for-opentelemetry/) (Surveillance de l'état et des performances d'une application avec AWS Distro for OpenTelemetry) 
+  [New – How to better monitor your custom application metrics using Amazon CloudWatch Agent](https://aws.amazon.com/blogs/devops/new-how-to-better-monitor-your-custom-application-metrics-using-amazon-cloudwatch-agent/) (Nouveau : comment mieux surveiller les métriques de votre application personnalisée à l'aide de l'agent Amazon CloudWatch) 
+  [Observability at AWS](https://aws.amazon.com/products/management-and-governance/use-cases/monitoring-and-observability/) (Observabilité chez AWS) 
+  [Scénario : publier des métriques sur CloudWatch](https://docs.aws.amazon.com/Amazon/latest/monitoring/PublishMetrics.html) 
+  [Commencer à créer : Comment surveiller efficacement vos applications](https://aws.amazon.com/startups/start-building/how-to-monitor-applications/) 
+  [Utiliser CloudWatch avec un AWS SDK](https://docs.aws.amazon.com/Amazon/latest/monitoring/sdk-general-information-section.html) 

 **Vidéos connexes :** 
+  [AWS re:Invent 2021 - Observability the open-source way](https://www.youtube.com/watch?v=vAnIhIwE5hY) (AWS re:Invent 2021 : observabilité avec l'open-source) 
+  [Collect Metrics and Logs from Amazon EC2 instances with the CloudWatch Agent](https://www.youtube.com/watch?v=vAnIhIwE5hY) (Collecte des métriques et des journaux des instances Amazon EC2 avec l'agent CloudWatch) 
+  [How to Easily Setup Application Monitoring for Your AWS Workloads - AWS Online Tech Talks](https://www.youtube.com/watch?v=LKCth30RqnA) (Comment facilement configurer la surveillance des applications de vos charges de travail AWS : AWS Online Tech Talks) 
+  [Mastering Observability of Your Serverless Applications - AWS Online Tech Talks](https://www.youtube.com/watch?v=CtsiXhiAUq8) (Maîtriser l'observabilité de vos applications sans serveur : AWS Online Tech Talks) 
+  [Open Source Observability with AWS - AWS Virtual Workshop](https://www.youtube.com/watch?v=vAnIhIwE5hY) (Observabilité open source avec AWS : AWS Virtual Workshop) 

 **Exemples connexes :** 
+  [AWS Logging & Monitoring Example Resources](https://github.com/aws-samples/logging-monitoring-apg-guide-examples) (Exemples de ressources de journalisation et de surveillance AWS) 
+  [Solution AWS : cadre de surveillance avec Amazon CloudWatch](https://aws.amazon.com/solutions/implementations/amazon-cloudwatch-monitoring-framework/?did=sl_card&trk=sl_card) 
+  [Solution AWS : journalisation centralisée](https://aws.amazon.com/solutions/implementations/centralized-logging/) 
+  [One Observability Workshop](https://catalog.workshops.aws/observability/en-US) (Atelier sur l'observabilité) 

 **Services associés :** 
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)