有没有一种方法可以为多个具有相似名称的ENUM指标设置警报

时间:2019-09-05 13:28:03

标签: prometheus prometheus-alertmanager

我正在尝试处理多个(大约500个)具有类似名称的指标,例如:

INSTANCE03{INSTANCE03="Dead"} == 1
INSTANCE05{INSTANCE05="Dead"} == 1
INSTANCE07{INSTANCE07="Dead"} == 1

其中每个都指定为枚举,其显示如下状态:

INSTANCE03{INSTANCE03="Dead"} == 1
INSTANCE03{INSTANCE03="Alive"} == 0

是否可以通过一种简短的方式使所有这些指标的警报从“活动”状态切换为“无效”。 G。使用正则表达式的__name__值?

如果我每行指定一个度量标准实例,则警报有效,但对于许多度量标准而言,这并不是一种干净的方法。

在我的alert_rules.yml下面

groups:
 - name: example
   rules:
   - alert: InstanceDown
     expr: INSTANCE03{INSTANCE03="Dead",instance="127.0.0.1:8888",job="prometheus"} == 1
     for: 15s
     annotations:
       summary: "Instance is down."
       description: "Instance down for 15 seconds. Please check mentioned instance."

2 个答案:

答案 0 :(得分:0)

我很确定Prometheus除了定义枚举所有可能标签的label_join()<relabel_config>之外,无法处理任意标签(即您的INSTANCE03="Dead"标签)名称并用固定标签(例如state)替换。

回到将这些指标导出到Prometheus中并将其固定在那里的一切将变得容易得多。

答案 1 :(得分:0)

您可以在labelmap中使用metric_relabel_configs操作来修正这些标签和指标名称。

正如Alin所说,固定指标的来源是最好的。每个实例0/1的量规是最简单的。