可觀測性即代碼:利用Terraform配置Datadog

在我之前的一篇文章《Cloudformation與其背后的“基礎設施即代碼”》中,我提到了利用Cloudformation實現“基礎設施即代碼”,

可觀測性即代碼

“可觀測性即代碼”(Observability as Code)這一詞條第一次出現在ThoughtWorks《技術雷達》19期:

可觀測性是運轉分布式系統與微服務架構必不可少的一部分。我們依賴不同的系統輸出來推斷分布式組件的內部狀態(tài),比如分布式追蹤、日志聚合、系統指標等,進而診斷問題所在,并找到根本原因。
可觀測性生態(tài)系統的一個重要方面就是監(jiān)控——可視化以及分析系統的輸出——并且在檢測到異常時報警。傳統的監(jiān)控報警配置,都是通過圖形界面的操作完成。這種方法導致控制面板頁的配置不可重復,從而無法持續(xù)測試和調整報警,來避免報警疲勞或錯過重要的報警,進而偏離組織的最佳實踐。我們強烈建議使用代碼來配置可觀測性生態(tài)系統,稱為可觀測性即代碼,并且采取基礎設施即代碼的方式搭建其基礎設施。
因此,在選擇提供可觀測性的工具時,要選擇支持通過代碼版本控制進行配置,并能通過基礎設施持續(xù)交付流水線執(zhí)行 API 或命令行的產品。

實戰(zhàn):利用Terraform配置Datadog

resource "datadog_monitor" "high_cpu_usage_of_docker" {
  name               = "High CPU Usage of Docker"
  type               = "metric alert"
  message            = <<EOT
High CPU Usage of Docker @bywang@thoughtworks.com
EOT
  escalation_message = ""

  query = "max(last_5m):avg:docker.cpu.usage{*} > 20"
  notify_no_data    = false
  renotify_interval = 0
  notify_audit = false
  timeout_h = 0
  include_tags = true
  require_full_window = false
  new_host_delay = 300
  thresholds {
    warning = 10.0
    critical = 20.0
  }

}
Datadog Monitor

遷移:代碼化原有手動配置的Datadog

通過一個d2tf工具可以實現將已有的Datadog配置轉換成Terraform代碼

Github倉庫:https://github.com/geekeren/terraform-datadog-demos

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容