Prometheus 普罗米修斯公制比较警报

Prometheus 普罗米修斯公制比较警报,prometheus,promql,Prometheus,Promql,我正在尝试创建一个警报表达式,如果给定的度量在所有目标上都不相同,则会触发该表达式。让我们调用my metricmy_gauge,其中表达式控制台输出显示: my_gauge{group="test",instance="huey:9100",job="example"} 10 my_gauge{group="test",instance="duey:9100",job="example"} 10 my_gauge{group="test",instance="luey:9100",jo

我正在尝试创建一个警报表达式,如果给定的度量在所有目标上都不相同,则会触发该表达式。让我们调用my metric
my_gauge
,其中表达式控制台输出显示:

my_gauge{group="test",instance="huey:9100",job="example"}   10
my_gauge{group="test",instance="duey:9100",job="example"}   10
my_gauge{group="test",instance="luey:9100",job="example"}   7
我对低于最高阈值的目标结果感兴趣。因此,我最初的想法是将其与
max(我的测量仪)
结果进行比较,结果是:

{} 10

但是
my_gauge
返回
无数据
(此处的预期结果为luey)。如何编写一个表达式以返回具有发散度量的目标?

如果您只需要提醒是否至少有一个值不同,您可以比较最小值是否与最大值相同:

expr: min(my_gauge) by(group) != max(my_gauge) by(group)
如果要对每个不同的值发出警报,可以使用中值来确定公共值(在您的示例中为10)。然后和它比较

expr: my_gauge != on(group) group_left quantile(0.5, my_gauge) by(group)
关于您的表达,您缺少以下内容:

expr:my_gauge
expr: my_gauge < on() group_left max(my_gauge)