Terraform Datadog permite gestionar monitores, dashboards, SLOs y alertas de Datadog como infraestructura como código. Con el provider oficial de DataDog defines en archivos .tf qué métricas vigilar, umbrales y notificaciones, versionando todo en Git y aplicando cambios de forma repetible. En esta guía verás cómo configurar el provider, crear tu primer monitor y enlazar la monitorización con el resto de tu IaC en Terraform y con stacks como los de Docker Compose.
¿Qué es el provider Terraform Datadog?
El provider Datadog en el Terraform Registry permite crear y actualizar recursos de la plataforma de observabilidad Datadog: monitores de métricas, logs y APM, dashboards, SLOs, usuarios, roles y configuración de integraciones. Así evitas configurar monitores a mano en la UI y mantienes la definición de alertas alineada con tu código de infraestructura. Terraform Datadog es la forma recomendada por HashiCorp y por Datadog para automatizar la monitorización.
Requisitos y configuración del provider Terraform Datadog
Necesitas Terraform 0.12+ y una cuenta en Datadog. Obtén una API Key y una Application Key en Organization Settings → API Keys / Application Keys. No subas estas claves al repositorio; usa variables de entorno o un backend de secretos. Declara el provider en tu configuración:
terraform {
required_providers {
datadog = {
source = "DataDog/datadog"
version = "~> 4.0"
}
}
}
provider "datadog" {
api_key = var.datadog_api_key
app_key = var.datadog_app_key
api_url = "https://api.datadoghq.com"
}
variable "datadog_api_key" {
type = string
sensitive = true
}
variable "datadog_app_key" {
type = string
sensitive = true
}
Ejecuta terraform init para descargar el provider. Puedes pasar las variables con TF_VAR_datadog_api_key y TF_VAR_datadog_app_key. Para regiones como EU usa api_url = "https://api.datadoghq.eu". Más opciones en la documentación del provider en el Registry.
Crear un monitor con Terraform Datadog
El recurso datadog_monitor define alertas sobre métricas, logs o eventos. Ejemplo de monitor de tipo métrica que alerta cuando el CPU medio supera 80:
resource "datadog_monitor" "cpu_high" {
name = "CPU alto en hosts"
type = "metric alert"
message = "CPU por encima del 80%. Revisar en @slack-alerts"
query = "avg(last_5m):avg:system.cpu.user{*} > 80"
monitor_thresholds {
critical = 80
warning = 70
}
tags = ["terraform", "cpu"]
}
Tras terraform plan y terraform apply, el monitor aparecerá en Datadog. Puedes definir varios monitores, agruparlos por proyecto y referenciarlos desde el mismo estado que el resto de tu infraestructura. Combinar Terraform Datadog con el lenguaje de Terraform te permite reutilizar variables y módulos para mantener coherencia entre entornos.
Dashboards y SLOs con Terraform Datadog
Además de monitores, el provider incluye recursos para dashboards (datadog_dashboard o datadog_dashboard_json) y para SLOs (datadog_service_level_objective). Los dashboards pueden definirse en JSON o con recursos estructurados; los SLOs fijan objetivos de nivel de servicio y se pueden enlazar a monitores. Todo versionado en Git junto con tu Kubernetes o tu Terraform AWS o GCP para tener infraestructura y observabilidad en un único flujo.
Buenas prácticas con Terraform Datadog
Usa workspaces o directorios separados si mezclas recursos de cloud y de Datadog para no acoplar el ciclo de vida del estado. Guarda las API keys en variables o en un backend remoto (por ejemplo Terraform Cloud). Etiqueta los recursos con terraform o el nombre del proyecto para filtrar en la UI. Revisa el repositorio del provider en GitHub para ejemplos y el changelog de versiones.
Conclusión
Con Terraform Datadog defines monitores, dashboards y SLOs como código, con los mismos flujos de revisión y despliegue que el resto de tu IaC. Configura el provider con API key y app key, crea recursos datadog_monitor y extiende a dashboards y SLOs para tener observabilidad reproducible y auditable.
FAQ sobre Terraform Datadog
¿Qué versión del provider uso? La serie 4.x es la recomendada. Fija la versión en el bloque required_providers (por ejemplo version = "~> 4.0").
¿Puedo gestionar usuarios de Datadog? Sí. El provider incluye recursos para usuarios, roles y permisos. Consulta la documentación del provider en el Registry.
¿Cómo uso Datadog EU? Configura api_url = "https://api.datadoghq.eu" en el bloque provider "datadog".
¿Dónde está el código del provider? En github.com/DataDog/terraform-provider-datadog. El Registry está en registry.terraform.io.
