问题描述
我正尝试测试为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"
似乎您需要指定一个时间范围,并添加一个与您的严重警报阈值相匹配的比较阈值。那就是所缺少的。