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

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

但是,由于>1,这不起作用。

最佳答案

Prometheus不支持对范围 vector 中的样本进行过滤,>1仅适用于根据 vector 的瞬时值对 vector 进行过滤。

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

关于elasticsearch - 根据响应值计算Prometheus中的可用性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52368978/

10-15 19:15