La correction est intégrée au TP (Voir les encadrés de couleur vert)
Ce que vous allez apprendre dans ce TP
- Configurer le fournisseur Terraform
- Écrire monitors et SLO
- Tester le déclenchement
Introduction #
Ce que vous allez apprendre dans cette section
- Configurer le fournisseur Terraform
- Écrire monitors et SLO
- Tester le déclenchement
Contexte. Les monitors créés à la main se multiplient sans relecture ni historique. Vous passez à une gestion as code.
Prérequis : TP 4 terminé, Terraform, clé d'application Datadog · Durée estimée : 50 min
Une configuration Datadog relue et versionnée.Mise en place #
Étapes guidées, avec leur correction.
1. Configurer le fournisseur
Pourquoi ? Les clés passent par l'environnement, jamais dans le code.
Créez une clé d'application, exportez les variables et initialisez le projet.Voir la correction
export DD_API_KEY=<cle_api> DD_APP_KEY=<cle_application> cat > main.tf <<'EOF' terraform { required_providers { datadog = { source = "DataDog/datadog" } } } provider "datadog" { api_url = "https://api.datadoghq.eu/" } EOF terraform init2. Monitor de latence APM
Pourquoi ? Un monitor par service, sur une métrique de trace.
Ajoutez un monitor sur la latence p95 depaiement-api.Voir la correction
resource "datadog_monitor" "latence" { name = "[lab] Latence p95 de paiement-api" type = "query alert" query = "percentile(last_5m):p95:trace.flask.request{service:paiement-api,env:lab} > 0.4" message = "{{#is_alert}}p95 à {{value}} s{{/is_alert}} @webhook-lab" monitor_thresholds { critical = 0.4 } tags = ["env:lab", "service:paiement-api", "managed-by:terraform"] }À savoir : Le nom de la métrique dépend de l'intégration (
trace.flask.requestpour Flask) : vérifiez-le dans le Metrics Explorer.3. Monitor de logs et SLO
Pourquoi ? Les logs d'erreur et un objectif de disponibilité complètent le dispositif.
Ajoutez un monitor de logs (plus de 20 erreurs en 5 min) et un SLO métrique à 95 % sur 7 jours.Voir la correction
resource "datadog_monitor" "erreurs_logs" { name = "[lab] Erreurs de paiement" type = "log alert" query = "logs(\"service:paiement-api status:error\").index(\"*\").rollup(\"count\").last(\"5m\") > 20" message = "{{value}} erreurs en 5 min @webhook-lab" monitor_thresholds { critical = 20 } tags = ["env:lab", "managed-by:terraform"] } resource "datadog_service_level_objective" "disponibilite" { name = "[lab] Disponibilité de paiement-api" type = "metric" query { numerator = "sum:trace.flask.request.hits{service:paiement-api,env:lab}.as_count() - sum:trace.flask.request.errors{service:paiement-api,env:lab}.as_count()" denominator = "sum:trace.flask.request.hits{service:paiement-api,env:lab}.as_count()" } thresholds { timeframe = "7d" target = 95 } tags = ["env:lab", "managed-by:terraform"] }4. Appliquer
Pourquoi ? Le plan montre exactement ce qui sera créé : c'est ce qu'on relit en pull request.
Lancezterraform planpuisterraform apply, et retrouvez les objets dans l'interface.Voir la correction
terraform plan && terraform apply -auto-approve5. Déclencher
Pourquoi ? Valider la chaîne avant d'en dépendre.
Générez 500 requêtes sur l'API et observez l'état des monitors et du SLO.Voir la correction
for i in $(seq 500); do curl -s localhost:5000/payer >/dev/null; doneLe monitor de logs passe en alerte (environ 50 erreurs) ; le SLO affiche environ 90 % pour une cible de 95 % : budget d'erreur épuisé. Modifier un seuil se fait désormais par une pull request sur
main.tf.
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
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,...
Incidents et automatisation avec Datadog : On-Call, Incident Management et Workflow Automation
Gérer les incidents dans Datadog : monitors bien conçus, astreinte avec On-Call, déclaration et s...
Piloter ses SLO avec Pyrra
Pyrra : définir des SLO de disponibilité et de latence en CRD Kubernetes ou en fichiers, générer ...
Générer ses SLO Prometheus avec Sloth
Décrire un SLO en quelques lignes avec Sloth et générer automatiquement règles d'enregistrement m...
Infrastructure as Code sur Azure : Bicep, Terraform, Cost Management et Well-Architected
Décrire et déployer Azure en code avec Bicep (modules, paramètres, what-if, déploiements par pipe...
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...
Chaos engineering : principes, outils et mise en pratique avec les SLO
Guide complet du chaos engineering : principes, régime permanent et hypothèse, rayon d'impact, li...
SRE : SLI, SLO et SLA expliqués simplement
Les fondamentaux de l'ingénierie de la fiabilité (SRE) : différence entre SLI, SLO et SLA, choix ...