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. Déclarer un test API
Pourquoi ? Versionné, le test est revu et recréé à l'identique dans chaque organisation.
Écrivezmain.tfavec 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. 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. 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 applyLes deux tests apparaissent dans Synthetic Monitoring et s'exécutent selon leur fréquence.
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 en404, appliquez, et observez le résultat.Voir la correction
Les trois emplacements échouent : avec
min_location_failed = 2, le test passe en alerte. Remettez200ensuite.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
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Discussions récentes de la formation
- Datadog : relier traces, logs et métriques du même service✓ résolu · 1 réponse(s)
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...