Terraformによる設定管理 (IaC) ​

監視設定をコード化(Infrastructure as Code)することで、バージョン管理、レビュープロセスの導入、環境間の設定統一が容易になります。

Provider設定 ​

hcl
terraform {
  required_providers {
    datadog = {
      source = "DataDog/datadog"
    }
  }
}

provider "datadog" {
  api_key = var.datadog_api_key
  app_key = var.datadog_app_key
}

Monitorリソースの定義 ​

hcl
resource "datadog_monitor" "cpu_high" {
  name    = "High CPU Usage"
  type    = "metric alert"
  query   = "avg(last_5m):avg:system.cpu.user{*} > 90"
  message = "CPU usage is high on {{host.name}}. Please investigate."
  
  monitor_thresholds {
    critical = 90
    warning  = 80
  }
}

ベストプラクティス ​

  • Module化: 共通の監視パターン(例: Webサーバーセット)をモジュール化して再利用する。
  • Import: 既存の手動作成したリソースを terraform import で取り込み、コード管理に移行する。

出典: Datadog Docs - Terraform Provider