我正在尝试在Prometheus Alerting Manager中配置一个警报,该警报在两个不同主机的状态为down时出现。为了更好地解释,我有几对主机(host=instance):
host1.1
host1.2
host2.1
host2.2
host3.1
host3.2
host4.1
host4.2
...我需要一个警报,当同一对主机的两个主机都关闭时出现:
expr = ( icmpping{instance=~"hostX1"}==0 and icmpping{instance=~"hostX2"}==0 )(我知道语法不正确,我只想强调一下,在两个icmpping条件下,X引用相同的数字)
有什么提示吗?
发布于 2019-12-09 20:26:18
最简单的方法可能是在摄取时使用relabel_config生成一个反映此逻辑的标签
relabel_configs:
- source_labels: [host]
regex: ^(.*)\.\d+$
target_label: host_group它将生成匹配所需的标签:
host=host1.1 => host_group=host1
host=host1.2 => host_group=host1然后,您可以将其用于您的警报规则。
sum(icmpping) on(host_group) == 0如果这是不可能的,您可以使用label_replace来实现相同的(仅在即时向量上)
sum(label_replace(icmpping,"host_group","$1","host","(.*)\._\\d+")) on(host_group) == 0https://stackoverflow.com/questions/59193831
复制相似问题