为什么在datadog_monitor terraform资源中的query和monitor_thresholds中重复阈值?

问题描述 投票:0回答:2

我正在尝试获取 datadog_monitor 资源,并且想知道是否有人知道为什么触发警报的阈值数量在查询和 Monitor_thresholds 部分中重复?

例如:

resource "datadog_monitor" "p90_latency" {
  name = "Latency is high on the airgap telemetry backend in ${var.stage}"
  type = "query alert"

  query = "avg(last_1h):avg:aws.apigateway.latency.p90{apiname:${var.stage}-airgap-telemetry-backend} > 5000"

  message            = <<EOF
    The p90 latency on the airgap telemetry backend is {{value}} @slack-${var.monitor_slack_channel}
  EOF
  monitor_thresholds {
    critical = 5000
    warning  = 2000
  }
}

在我看来,查询应该只是

query = "avg(last_1h):avg:aws.apigateway.latency.p90{apiname:${var.stage}-airgap-telemetry-backend}
返回一个具体值,然后依靠 Monitor_thresholds 来触发它(因为查询按原样肯定只是返回一个布尔值是/否?)

相关地,警告阈值如何发挥作用? datadog 是否神奇地将阈值“替换”到查询中?如果它被神奇地替换了,那么查询中的值实际是什么有关系吗(即我们可以有一个占位符 0,还是它必须与临界值匹配?)

terraform datadog terraform-provider-datadog
2个回答
0
投票

query
字段可以使用任何值(您可以使用
0
或任何其他值,但使用临界阈值更常见)。

更多详情:

Terraform 在内部使用此 Datadog API (metric-alert-query) 来创建监视器。请注意,API 输入同时具有

operator
#
字段。 Terraform 解析(不是“神奇地”)query 中的字符串,并进行 API 调用,其中同时包含
operator
(此处为
>
)和
#
(此处为
5000
)。
此处,

query

字段使用

>
运算符。这表示,如果指标值(如
query
字段中定义,即
avg(last_1h):...-telemetry-backend}
超过
任何 monitor_thresholds 值(
critical
warning
,此处为分别为
5000
2000
)。

注意谁来自 AWS CloudWatch 警报概念

Datadog 监视器在

monitor_thresholds

中不使用显式运算符。相反,阈值运算符 (

>
<
=
!=
>=
<=
) 是根据
query
字段确定的。另外,在 AWS CloudWatch 警报中,您需要创建两个警报(一个具有临界阈值,另一个具有警告阈值)。

其他参考资料

    使用 Terraform 的 Datadog 监视器
  • 使用 Terraform 的 AWS CloudWatch 警报

-1
投票

警报阈值 (n) 与查询中使用的阈值 (n2) 不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.