RousselTMLEARNING

TP · Datadog : de la découverte à l'expertise

TP : Tests Synthetics en Terraform et en CI avec correction

La correction est intégrée au TP (Voir les encadrés de couleur vert)

Ce que vous allez apprendre dans ce TP
  • Créer des tests Synthetics en Terraform
  • Comprendre les assertions et emplacements
  • Lancer un test en CI

Introduction #

Ce que vous allez apprendre dans cette section
  • Créer des tests Synthetics en Terraform
  • Comprendre les assertions et emplacements
  • Lancer un test en CI

Contexte. La page d'accueil est tombée un dimanche et personne ne l'a vu avant le lundi. Vous mettez en place des tests synthétiques versionnés.

Prérequis : Compte Datadog avec clés d'API et d'application, Terraform  ·  Durée estimée : 35 min

Des tests synthétiques gérés comme du code.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Déclarer un test API

    Pourquoi ? Versionné, le test est revu et recréé à l'identique dans chaque organisation.

    Écrivez main.tf avec un test HTTP sur trois emplacements.
    Voir la correction
    # main.tf
    terraform {
      required_providers { datadog = { source = "DataDog/datadog" } }
    }
    provider "datadog" {
      api_url = "https://api.datadoghq.eu/"   # adaptez à votre site
    }
    
    resource "datadog_synthetics_test" "home" {
      name      = "Page d'accueil disponible"
      type      = "api"
      subtype   = "http"
      status    = "live"
      message   = "La page d'accueil ne répond plus correctement."
      locations = ["aws:eu-central-1", "aws:eu-west-1", "aws:eu-west-3"]
      tags      = ["team:web", "env:prod"]
      request_definition {
        method = "GET"
        url    = "https://example.com"
      }
      assertion {
        type     = "statusCode"
        operator = "is"
        target   = "200"
      }
      assertion {
        type     = "responseTime"
        operator = "lessThan"
        target   = "1000"
      }
      options_list {
        tick_every = 300
        min_location_failed = 2
      }
    }
  2. 2. Ajouter un test de certificat

    Pourquoi ? Un certificat expiré est une panne totale, entièrement prévisible.

    Ajoutez un test SSL qui alerte 30 jours avant l'expiration.
    Voir la correction
    resource "datadog_synthetics_test" "certificate" {
      name      = "Certificat TLS valide encore 30 jours"
      type      = "api"
      subtype   = "ssl"
      status    = "live"
      message   = "Le certificat de example.com expire bientôt."
      locations = ["aws:eu-central-1"]
      request_definition {
        host = "example.com"
        port = 443
      }
      assertion {
        type     = "certificate"
        operator = "isInMoreThan"
        target   = "30"
      }
      options_list { tick_every = 86400 }
    }
  3. 3. Appliquer

    Pourquoi ? Le provider lit les clés dans les variables d'environnement.

    Appliquez la configuration et ouvrez les tests dans Datadog.
    Voir la correction
    export DD_API_KEY=<clé API> DD_APP_KEY=<clé application>
    terraform init && terraform apply

    Les deux tests apparaissent dans Synthetic Monitoring et s'exécutent selon leur fréquence.

  4. 4. Provoquer un échec

    Pourquoi ? On vérifie qu'une alerte part vraiment, et seulement quand il faut.

    Changez la cible de l'assertion de statut en 404, appliquez, et observez le résultat.
    Voir la correction

    Les trois emplacements échouent : avec min_location_failed = 2, le test passe en alerte. Remettez 200 ensuite.

  5. 5. Exécuter en CI

    Pourquoi ? Bloquer un déploiement qui casse un parcours coûte moins cher qu'un incident.

    Lancez le test depuis la ligne de commande, comme le ferait une chaîne CI.
    Voir la correction
    export DATADOG_API_KEY=$DD_API_KEY DATADOG_APP_KEY=$DD_APP_KEY DATADOG_SITE=datadoghq.eu
    PUBLIC_ID=$(terraform output -raw home_id 2>/dev/null || echo "<public id du test>")
    npx @datadog/datadog-ci synthetics run-tests --public-id "$PUBLIC_ID"

    La commande renvoie un code de sortie non nul si le test échoue : la chaîne CI s'arrête.

Niveau de difficulté : ●●●○○ (3/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 35 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Discussions récentes de la formation

Poser une question sur cette leçon →Voir toutes les discussions de la formation

Articles recommandés

RUM et Synthetic Monitoring avec Datadog : synthetic transaction monitoring et expérience utilisateur

Mesurer l'expérience utilisateur avec Datadog : RUM navigateur et mobile, Core Web Vitals, Sessio...

Datadog : la plateforme d'observabilité SaaS en un coup d'œil

Ce qu'est Datadog, ses produits (infrastructure, logs, APM, RUM, synthétiques, sécurité), ses con...

Monitors, SLO, dashboards et Datadog as code

Créer des monitors efficaces (métriques, logs, APM, composites, anomalies), des SLO, des dashboar...

Bonnes pratiques Datadog : tags, coûts, alertes et gouvernance

Check-list pour exploiter Datadog efficacement : tagging unifié, maîtrise des coûts (hôtes, logs,...

Tester et sécuriser Terraform : validate, terraform test, tflint, Checkov et politiques

Garantir la qualité du code Terraform : fmt et validate, tests natifs terraform test avec fournis...

Sécurité avec Datadog : Cloud SIEM, Cloud Security et protection des applications

Découvrir les produits de sécurité de Datadog : Cloud SIEM et règles de détection, Cloud Security...

Datadog sur Kubernetes : Operator, Cluster Agent et Autodiscovery

Superviser Kubernetes avec Datadog : Datadog Operator et ressource DatadogAgent, Cluster Agent, A...

APM Datadog avancé : échantillonnage, rétention, profiler et Software Catalog

Aller plus loin avec l'APM Datadog : contrôle d'ingestion et échantillonnage, filtres de rétentio...

APM Datadog et OpenTelemetry : traces, services et corrélation avec les logs

Instrumenter ses applications pour l'APM Datadog (dd-trace, instrumentation en une étape, OpenTel...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !