在 Alertmanager Promql 查询中使用变量
Use variable inside Alertmanager Promql query
我有一些这样的指标:
restarts{service="foo-1"}
restarts{service="foo-2"}
restarts{service="bar-1"}
restarts{service="bar-2"}
restarts{service="bar-3"}
我正在尝试使用 Alertmanager 在所有服务实例的重启次数超过阈值时触发警报。
我想到的是使用如下查询分别为每个 foo
和 bar
创建一个规则:
sum(restarts{service=~"bar-.*"}) > 10
但是我的服务太多了,无法为每个服务编写规则。
有没有办法在单个查询中找到每个服务的重启?
您可以在查询中使用 label_replace
,例如:
label_replace(restarts, "servicegroup", "", "service", "(.+)-.+")
然后您可以将结果与 sum by (servicegroup)
分组并得到您想要的结果。
我有一些这样的指标:
restarts{service="foo-1"}
restarts{service="foo-2"}
restarts{service="bar-1"}
restarts{service="bar-2"}
restarts{service="bar-3"}
我正在尝试使用 Alertmanager 在所有服务实例的重启次数超过阈值时触发警报。
我想到的是使用如下查询分别为每个 foo
和 bar
创建一个规则:
sum(restarts{service=~"bar-.*"}) > 10
但是我的服务太多了,无法为每个服务编写规则。
有没有办法在单个查询中找到每个服务的重启?
您可以在查询中使用 label_replace
,例如:
label_replace(restarts, "servicegroup", "", "service", "(.+)-.+")
然后您可以将结果与 sum by (servicegroup)
分组并得到您想要的结果。