View a markdown version of this page

Surveillez les événements de service - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Surveillez les événements de service

Service Events fournit une observabilité approfondie automatisée pour les services surveillés à CloudWatch l'aide de signaux d'application. Il capture les mesures d'erreur, les données de performance au niveau des fonctions, les instantanés des incidents (lorsque les demandes dépassent les seuils de latence ou génèrent des exceptions) et les événements de déploiement, sans modification de code supplémentaire.

Comment fonctionnent les événements de service

Service Events collecte les types de signaux suivants à partir de vos services instrumentés :

  • Mesures d' Per-exception-typeerreur : nombre et taux d'erreurs pour chaque opération, ce qui vous permet d'identifier les exceptions les plus fréquentes et les plus tendances.

  • Function-call métriques : nombre d'appels, durée et taux d'erreur pour les différentes fonctions du code de votre application.

  • Instantanés d'incidents : captures détaillées déclenchées lorsqu'une demande dépasse un seuil de latence ou génère une exception, y compris les traces de pile, les arbres d'appels, les détails de l'appelant et le contexte de l'opération.

  • Événements de déploiement : marqueurs émis au démarrage de l'application et toutes les 24 heures qui établissent une corrélation entre les déploiements de code et les modifications du comportement des services. L'application émet automatiquement des événements de déploiement. La fourniture de métadonnées de déploiement (git commit, ID de déploiement) enrichit ces événements d'un contexte supplémentaire.

Les événements de service sont automatiquement activés lorsque vous activez les signaux CloudWatch d'application pour votre service. Les mesures d'erreur et le suivi des exceptions sont actifs immédiatement. Function-call les métriques nécessitent une configuration supplémentaire : vous devez configurer les packages pour instrumenter avant que les données d'appel de fonction ne soient collectées (voirActiver l'instrumentation fonctionnelle). Les événements de service peuvent être désactivés en configurantOTEL_AWS_SERVICE_EVENTS_ENABLED=false. Les données circulent du SDK ADOT vers l' CloudWatch agent. L'agent publie les événements dans les CloudWatch journaux (groupes de /aws/service-events/service-name journaux) et CloudWatch les métriques.

Langages pris en charge : Java, Python et Node.js.

Note

Les événements de service sont automatiquement désactivés dans les environnements Lambda.

Stockage de données

Service Events stocke les données dans CloudWatch des journaux. CloudWatch publie les données des événements de service dans un groupe de journaux avec le préfixe/aws/application-signals/service-name, où service-name est la valeur de votre variable d'OTEL_SERVICE_NAMEenvironnement. Un groupe de journaux est créé par service.

L'ingestion et le stockage des journaux vous sont facturés aux tarifs standard CloudWatch des journaux.

Afficher les erreurs dans la console

Dans la CloudWatch console, accédez à Application Signals, choisissez votre service, puis cliquez sur l'onglet Erreurs. Cet onglet affiche les statistiques d'exception pour votre service.

L'onglet affiche :

  • Graphique du nombre d'exceptions illustrant l'évolution des erreurs au fil du temps. Utilisez-le pour détecter les types d'exceptions dont la fréquence a récemment changé.

  • Un tableau répertoriant chaque type d'exception, l'opération au cours de laquelle elle s'est produite, le nombre d'occurrences et le changement par rapport à la période précédente.

Sélectionnez une exception pour accéder aux détails, notamment le suivi de la pile, le message d'exception et un lien vers le suivi associé.

Les erreurs sont regroupées par opération, type d'exception et cadres supérieurs. Seul le représentant le plus récent de chaque groupe est affiché.

Note

Pour afficher les données d'erreur, au moins un groupe de /aws/service-events/service-name journaux doit exister dans votre compte. S'il n'existe aucun groupe de journaux, l'onglet Erreurs affiche une invite d'intégration.

Afficher les événements de service dans les journaux

Les données relatives aux événements de service sont stockées dans CloudWatch des journaux sous des groupes de journaux avec le préfixe/aws/service-events/service-name. Vous pouvez interroger ces données directement à l'aide de CloudWatch Logs Insights pour créer des vues personnalisées, créer des tableaux de bord ou enquêter sur des incidents spécifiques.

Pour interroger les événements du service :

  1. Ouvrez la CloudWatch console et accédez à Logs Insights.

  2. Sélectionnez le groupe de journaux /aws/service-events/service-name pour votre service.

  3. Entrez une requête pour filtrer et analyser les données des événements de service.

Événements de service sur le serveur CloudWatch Application Signals MCP (Model Context Protocol)

Les données des événements de service sont accessibles via le serveur CloudWatch Application Signals MCP (Model Context Protocol), ce qui permet aux assistants de codage et aux agents d'intelligence artificielle d'interroger directement le comportement d'exécution de votre service.

Résolution des problèmes

  • Corrélez automatiquement les erreurs de votre code avec les instantanés des incidents de production, y compris les traces complètes et les points de terminaison concernés.

  • Utilisez le contexte de l'incident (types d'exception, chemins d'appel, identifiants de trace) pour suggérer des solutions ciblées sans avoir à parcourir manuellement les tableaux de bord.

  • Récupérez les événements de déploiement pour déterminer si une version récente a introduit une régression.

Amélioration des performances

  • Interrogez les données de performance au niveau des fonctions pour identifier les goulots d'étranglement lors de l'étude des problèmes de latence.

  • Comparez les durées des appels fonctionnels entre les déploiements pour identifier les régressions de performances.

Pour les instructions de configuration et d'utilisation, consultez le serveur Application Signals MCP sur le GitHub site Web.

Configuration des événements de service

Conditions préalables

Pour utiliser les événements de service, assurez-vous de disposer des versions minimales requises des composants suivants :

  1. Mettre à jour le SDK ADOT — Mettez à jour le SDK d'instrumentation AWS Distro for OpenTelemetry (ADOT) avec la dernière version adaptée à votre langage (Java, Python ou). Node.js

  2. Mettez à jour le module complémentaire Amazon EKS (le cas échéant) : si vous utilisez le CloudWatch module complémentaire Amazon EKS pour instrumenter vos applications, effectuez la mise à jour vers la dernière version du module complémentaire.

  3. Mettre à jour l' CloudWatch agent : mise à jour vers la version 1.300069.0 ou ultérieure de l' CloudWatchagent.

Si vous utilisez Amazon EKS, consultez les instructions Activation de vos applications sur des clusters Amazon EKS de configuration des modules complémentaires.

Fonctionnalités activées par défaut

Si vous utilisez les signaux CloudWatch d'application, les signaux d'événements de service suivants sont activés par défaut sans qu'aucune configuration supplémentaire ne soit requise :

  • Instantanés des incidents (déclenchés en cas d'exceptions ou de dépassements du seuil de latence)

  • Mesures d'erreur (nombre d'erreurs par type d'exception par opération)

  • Événements de déploiement (toujours émis ; enrichis lorsque vous fournissez des métadonnées de déploiement)

  • Instrumentation fonctionnelle (activée par défaut, mais ne produit aucune métrique tant que vous n'avez pas configuré les packages pour l'instrument)

Les fonctionnalités suivantes sont facultatives et nécessitent la définition de variables d'environnement pour produire des données :

  • Function-level métriques (nécessite une configurationOTEL_AWS_SERVICE_EVENTS_PACKAGES_INCLUDE)

  • Filtrage personnalisé des terminaux

  • Per-endpoint seuils de latence

Paramètres généraux

Variable d'environnement Par défaut Description
OTEL_AWS_SERVICE_EVENTS_ENABLED Suit les signaux CloudWatch de l'application Activez les événements de service. Les événements de service sont automatiquement activés lorsque CloudWatch Application Signals est activé. Définissez sur false pour le désactiver explicitement.
OTEL_AWS_SERVICE_EVENTS_SAMPLING_MODE always Contrôle la stratégie d'échantillonnage des données relatives aux appels de fonction. Valeurs : always (enregistrer tous les appels de fonction), auto (laisser le SDK décider en fonction de la charge), never (désactiver l'enregistrement des appels de fonction). S'applique uniquement lorsque les packages d'instrumentation fonctionnelle sont configurés.

Activer l'instrumentation fonctionnelle

L'instrumentation des fonctions est activée par défaut, mais elle ne produit aucune métrique tant que vous n'avez pas configuré les packages à instrumenter. Fournissez une liste d'autorisations de packages pour commencer à collecter la télémétrie par fonction :

Variable d'environnement Par défaut Description
OTEL_AWS_SERVICE_EVENTS_FUNCTION_INSTRUMENT_ENABLED true Active ou désactive l'instrumentation au niveau des fonctions. Réglez false sur pour désactiver complètement.
OTEL_AWS_SERVICE_EVENTS_PACKAGES_INCLUDE Aucun (obligatoire pour les métriques) Comma-separated liste des préfixes de package pour l'instrument. Aucun joker n'est nécessaire. Par exemple : Java utilisecom.myapp, Python utilisemyapp, Node.js utilisesrc/myapp.
OTEL_AWS_SERVICE_EVENTS_PACKAGES_EXCLUDE Aucune Comma-separated liste des sous-packages à exclure de l'instrumentation. L'exclusion a toujours la priorité sur l'inclusion. Par exemple, incluez com.myapp et excluez com.myapp.models pour instrumenter le code de votre application, mais ignorez les classes de modèles de données.

Filtrage des terminaux

Le filtrage des points de terminaison contrôle les points de terminaison qui génèrent des mesures d'erreur sur les terminaux et des instantanés d'incidents. Ces paramètres n'affectent pas l'instrumentation des fonctions.

Variable d'environnement Par défaut Description
OTEL_AWS_SERVICE_EVENTS_ENDPOINT_INCLUDE_PATTERNS Tous les points de terminaison Comma-separated modèles globaux de points de terminaison à inclure. Confronté àMETHOD /route.
OTEL_AWS_SERVICE_EVENTS_ENDPOINT_EXCLUDE_PATTERNS Aucune Comma-separated modèles globaux de points de terminaison à exclure. L'exclusion a priorité lorsqu'un point de terminaison correspond aux deux.

Seuils de latence

Utilisez les variables d'environnement suivantes pour configurer les seuils de latence pour les déclencheurs de snapshots d'incidents.

Variable d'environnement Par défaut Description
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_DURATION_THRESHOLD_MS 5000 Seuil de latence global en millisecondes. Les demandes dépassant cette durée déclenchent un instantané de l'incident.
OTEL_AWS_SERVICE_EVENTS_LATENCY_THRESHOLDS Aucune Per-endpoint seuils de latence qui remplacent la valeur globale par défaut. Format : METHOD /route:ms (par exemple,GET /health:200,POST /checkout:8000).

Limitation du débit

Utilisez les variables d'environnement suivantes pour contrôler la vitesse à laquelle les données relatives aux événements de service sont collectées et signalées.

Variable d'environnement Par défaut Description
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_MAX_PER_MINUTE 100 Nombre maximum d'instantanés d'incidents capturés par minute.
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_MAX_SAME_ERROR 1 Nombre maximal de clichés pour une même erreur par fenêtre de capture.

Configuration des événements de déploiement

Les événements de déploiement sont toujours émis au démarrage de l'application et toutes les 24 heures. La fourniture de métadonnées de déploiement enrichit ces événements afin que vous puissiez corréler les incidents et les changements de performances avec des déploiements de code spécifiques.

Définissez les variables d'environnement suivantes sur les conteneurs ou les processus de votre application afin de fournir des métadonnées de déploiement :

Variable d'environnement Description
OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA Git commit le SHA du code déployé.
OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL URL du dépôt Git.
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID Identifiant unique pour le déploiement (par exemple, un identifiant d'exécution du CI/CD pipeline).
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP Horodatage ISO 8601 du déploiement.
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL URL de la version de déploiement ou de l'exécution du pipeline.

Configurer les événements de déploiement avec des GitHub actions

Dans votre flux de travail GitHub Actions, utilisez les variables d'environnement intégrées pour renseigner les métadonnées de déploiement. Ajoutez ce qui suit à votre étape de déploiement ou à votre environnement de conteneur :

env: OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA: ${{ github.sha }} OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL: ${{ github.server_url }}/${{ github.repository }} OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID: ${{ github.run_id }} OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%SZ) OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

Si vous déployez des images de conteneur, transmettez ces valeurs en tant que variables d'environnement dans la définition de votre tâche ou dans la spécification du pod. Vous pouvez les intégrer dans l'image au moment de la création ou les injecter au moment du déploiement via votre configuration de déploiement.

Configurez les événements de déploiement avec GitLab CI/CD

Dans votre GitLab CI/CD pipeline, utilisez les CI/CD variables prédéfinies pour renseigner les métadonnées de déploiement. Ajoutez ce qui suit à votre tâche de déploiement :

deploy: variables: OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA: $CI_COMMIT_SHA OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL: $CI_PROJECT_URL OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID: $CI_PIPELINE_ID OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%SZ) OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL: $CI_PIPELINE_URL

Transmettez ces variables à vos conteneurs d'applications au moment du déploiement via votre plateforme d'orchestration de conteneurs (par exemple, en tant que variables d'environnement dans votre définition de tâche Amazon ECS ou dans le manifeste de déploiement Kubernetes).