有没有办法为具有相似名称的多个 ENUM 指标设置警报
Is there a way to set alert for multiple ENUM metrics with similar name
我正在尝试处理多个(大约 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."
我很确定 Prometheus 没有办法处理任意标签(即你的 INSTANCE03="Dead"
标签),除了定义一个 label_join()
or <relabel_config>
你枚举所有可能的标签名称并替换它们带有固定标签(例如state
)。
在它们进入 Prometheus 之前,返回导出这些指标并在那里修复它会容易得多。
您可以在 metric_relabel_configs
中使用 labelmap
操作来修复这些标签和指标名称。
正如 Alin 所说,修复指标的来源是最好的。每个实例具有 0/1 的量规将是最简单的。
我正在尝试处理多个(大约 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."
我很确定 Prometheus 没有办法处理任意标签(即你的 INSTANCE03="Dead"
标签),除了定义一个 label_join()
or <relabel_config>
你枚举所有可能的标签名称并替换它们带有固定标签(例如state
)。
在它们进入 Prometheus 之前,返回导出这些指标并在那里修复它会容易得多。
您可以在 metric_relabel_configs
中使用 labelmap
操作来修复这些标签和指标名称。
正如 Alin 所说,修复指标的来源是最好的。每个实例具有 0/1 的量规将是最简单的。