Terraform Datadog查询无效

问题描述

我正尝试测试为google pub sub创建监视器,并收到“无效查询错误。当我查看另一台正在运行的监视器的源代码时,这是查询文本,因此我对为什么此方法不起作用感到困惑。

错误Error: error creating monitor: 400 Bad Request: {"errors":["The value provided for parameter 'query' is invalid"]}

地形:

resource "datadog_monitor" "bad_stuff_sub_monitor" {
  name               = "${var.customer_name} Bad Stuff Monitor"
  type               = "metric alert"
  message            = "${var.customer_name} Bad Stuff Topic getting too big. Notify: ${var.datadog_monitor_notify_list}"
  escalation_message = "Escalation message @pagerduty"

  query = "avg:gcp.pubsub.subscription.num_undelivered_messages{project_id:terraform_gcp_test}"

  thresholds = {
    ok                = 0
    warning           = 1
    warning_recovery  = 0
    critical          = 2
    critical_recovery = 1
  }

  notify_no_data    = false
  renotify_interval = 1440

  notify_audit = false
  timeout_h    = 60
  include_tags = true

  # ignore any changes in silenced value; using silenced is deprecated in favor of downtimes
  lifecycle {
    ignore_changes = [silenced]
  }

  tags = [var.customer_name,var.project_name]
}

解决方法

因此,我最终只是查看了datadog terraform提供程序中的测试,并注意到了它们正在测试的查询格式。

  query = "avg(last_30m):avg:gcp.pubsub.subscription.num_undelivered_messages{project_id:${var.project_name},subscription_id:{project_id:terraform_gcp_test} > 2"

似乎您需要指定一个时间范围,并添加一个与您的严重警报阈值相匹配的比较阈值。那就是所缺少的。