Journalisation et métriques avec Amazon CloudWatch

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

En panne ?

  • Un client signale que l'appli est brisée
  • Vous n'avez aucune donnée pour confirmer ou infirmer
  • CloudWatch transforme les hypothèses en réponses

Tableau de bord de surveillance avec un point d'interrogation, incertitude sur l'état du service (fonctionnel ou en panne)

Déployer des applications sur AWS

Journalisation, surveillance et observabilité

Schéma en trois colonnes : journalisation comme enregistrements immuables d'événements, surveillance comme seuils de métriques avec alertes, et observabilité comme corrélation de données pour répondre à de nouvelles questions

  • Journalisation : consigner les événements au fil du temps
  • Surveillance : suivre des métriques connues et leurs seuils
  • Observabilité : poser de nouvelles questions à vos données
  • Il faut les trois pour opérer avec confiance
Déployer des applications sur AWS

Groupes, flux et rétention des journaux

  • Groupe de journaux : contenant nommé pour des journaux liés
  • Flux de journaux : séquence d'une même source
  • Rétention : durée de conservation des journaux
  • Les journaux coûtent ; définissez la rétention avec soin

Hiérarchie CloudWatch Logs : groupe de journaux contenant plusieurs flux, chaque flux montrant une séquence chronologique d'événements, avec réglage de rétention et mention du coût

Déployer des applications sur AWS

Métriques et métriques personnalisées

  • Métriques : données numériques chronologiques
  • AWS publie automatiquement de nombreuses métriques de service
  • Métriques personnalisées : nombres émis par votre appli
  • Les dimensions découpent une métrique par attribut

Métriques CloudWatch : à gauche, métriques de services AWS publiées automatiquement ; à droite, métrique personnalisée avec dimensions ; et graphique chronologique avec ligne de seuil d'alerte

Déployer des applications sur AWS

Embedded Metric Format

Une seule ligne de journal structurée contient vos valeurs de métriques et un bloc _aws qui indique à CloudWatch quels champs sont des métriques :

{
  "_aws": {
    "CloudWatchMetrics": [
      {
        "Namespace": "OrdersApp",
        "Dimensions": [["customerTier"]],
        "Metrics": [{ "Name": "OrderLatencyMs", "Unit": "Milliseconds" }]
      }
    ]
  },
  "customerTier": "premium",
  "OrderLatencyMs": 142
}
Déployer des applications sur AWS

Tableaux de bord et alertes

Panneau de widgets d'un tableau de bord CloudWatch à gauche et automate d'état d'une alerte à droite (OK, ALARM, INSUFFICIENT_DATA), avec routage SNS vers courriel, SMS et automatisation

  • Tableau de bord : un écran de graphiques et widgets
  • Alerte : se déclenche quand une métrique franchit un seuil
  • Les alertes vont à SNS, puis au courriel, SMS ou à l'automatisation
  • Alertez sur les symptômes vécus par les utilisateurs, pas sur chaque métrique
Déployer des applications sur AWS

Stratégie de journalisation structurée

  • Consignez en JSON, pas en texte libre
  • Inclure timestamp, level, request ID, user ID
  • Les champs structurés se filtrent et se requêtent
  • L'uniformité entre services permet la corrélation

Ligne de journal JSON structurée avec timestamp, level, requestId et userId, et requête Logs Insights montrant comment les champs nommés permettent un filtrage et une agrégation précis

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...