首页 > 解决方案 > 根据响应值计算 Prometheus 中的可用性

问题描述

我正在尝试使用普罗米修斯计算弹性搜索的可用性。运行的作业之一将集群状态作为一个值获取,为 0、1 或 2,其中大于 1 的任何内容都被视为不可用。由于所有作业都成功,​​因此使用此处的答案不起作用,因此查询必须执行以下操作:

avg_over_time(es_cluster_status{cluster="name", instance="my_es"}>1[24h])

但是,由于>1.

标签: elasticsearchprometheus

解决方案


Prometheus 不支持在范围向量中过滤样本,它>1仅适用于基于它们的即时值过滤向量。

最简单的解决方法是为您定义一个记录的规则,该规则的行为就像up指标一样(0当您的目标关闭时,1否则)。类似的东西es_cluster_status{cluster="name", instance="my_es"} <= 1。然后,您可以应用avg_over_time()该指标并获得任何给定范围内的可用性。


推荐阅读