我正在尝试处理多个(大约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."
答案 0 :(得分:0)
我很确定Prometheus除了定义枚举所有可能标签的label_join()
或<relabel_config>
之外,无法处理任意标签(即您的INSTANCE03="Dead"
标签)名称并用固定标签(例如state
)替换。
回到将这些指标导出到Prometheus中并将其固定在那里的一切将变得容易得多。
答案 1 :(得分:0)
您可以在labelmap
中使用metric_relabel_configs
操作来修正这些标签和指标名称。
正如Alin所说,固定指标的来源是最好的。每个实例0/1的量规是最简单的。