Prometheus 在Alertmanager Promql查询中使用变量

Prometheus 在Alertmanager Promql查询中使用变量,prometheus,prometheus-alertmanager,promql,Prometheus,Prometheus Alertmanager,Promql,我有一些指标如下: restarts{service="foo-1"} restarts{service="foo-2"} restarts{service="bar-1"} restarts{service="bar-2"} restarts{service="bar-3"} sum(restarts{service=~"bar-.*"}) > 10 我正在尝试使用Alertmanager在所有服务实例的重新启动次数超过阈值时触发警报 我想到的是使用如下查询分别为每个foo和bar创

我有一些指标如下:

restarts{service="foo-1"}
restarts{service="foo-2"}
restarts{service="bar-1"}
restarts{service="bar-2"}
restarts{service="bar-3"}
sum(restarts{service=~"bar-.*"}) > 10
我正在尝试使用Alertmanager在所有服务实例的重新启动次数超过阈值时触发警报

我想到的是使用如下查询分别为每个
foo
bar
创建一个规则:

restarts{service="foo-1"}
restarts{service="foo-2"}
restarts{service="bar-1"}
restarts{service="bar-2"}
restarts{service="bar-3"}
sum(restarts{service=~"bar-.*"}) > 10
但我的服务太多,无法为每个服务编写规则


有没有办法在一个查询中找到每个服务的重新启动?

您可以在查询中使用
label\u replace

label_replace(重新启动,“servicegroup”、“$1”、“service”、“(.+)-.+”

然后,您可以使用
sum by(servicegroup)
对结果进行分组,得到您想要的结果