在Prometheus警报规则中使用和运算符的布尔类型属性



这里alerts_enabled是一个有1的变量。如果它是1,那么它应该运行,如果它有0,那么就不运行。我正试图以这种方式实现它,但它没有奏效。

- alert: log_requests_missing
expr: sum(increase(log_request_duration_seconds_count[1m])) == 0 and [[alerts_enabled]]
for: 8m
labels:
severity: warning
annotations:
summary: 'test'
description: 'Test description'

有人能帮我修一下吗?我在这里做什么不对?

expr至少产生一个值时,会引发普罗米修斯警报。

使用and运算符是正确的方法,您只需要一个具有变量值的虚拟度量。这可以通过vector():完成

expr: sum(increase(log_request_duration_seconds_count[1m])) == 0 and vector([[alerts_enabled]]) == 1

这将解决您的问题,但我怀疑这是禁用警报的最佳方式。由于您是prometheus操作员,您可以通过删除定义此警报的Kubernetes资源来禁用警报。这将删除表达式的后半部分,使其更具可读性,并且Prometheus服务器要执行的计算表达式的时间更少。

最新更新