首页 > 解决方案 > 在 Prometheus 中找出标签的不同值并设置警报

问题描述

我有一个案例,我想设置一个警报,其中标签的至少一个值是不同的。

例如,具有 metric 的 Kubernetes 集群 xyz(有 20 个节点)test_metric{cluster_name="xyz",os="ubuntu"}。如果这 20 个节点中的任何一个具有不同的“os”值,我想找出/设置警报。

基本上,这个想法是在集群中所有节点的操作系统值不同时获得警报。

目前我正在测试一个我认为不正确的非常简单的规则:

count(test_metric{cluster_name="xyz",os!=""} != count(test_metric{cluster_name="xyz",os!=""})

标签: kubernetesmonitoringprometheusprometheus-alertmanager

解决方案


嵌套计数是处理此问题的方法:

count by (cluster_name) (
   count by (os, cluster_name)(test_metric)
) != 1

推荐阅读