我正在尝试使用普罗米修斯来计算Elasticsearch的可用性。运行的作业之一将集群状态作为一个值获得,即0、1或2,其中大于1的任何值都不可用。 由于所有工作都成功完成,因此无法使用here中的答案,因此查询必须按照以下方式进行操作:
avg_over_time(es_cluster_status{cluster="name", instance="my_es"}>1[24h])
但是由于>1
,此操作不起作用。
答案 0 :(得分:1)
Prometheus不支持对范围向量中的样本进行过滤,>1
仅适用于根据向量的瞬时值对向量进行过滤。
最简单的解决方法是让您定义一条记录的规则,其行为类似于up
指标(当目标下降时,0
,否则为1
)。类似于es_cluster_status{cluster="name", instance="my_es"} <= 1
。然后,您可以在该指标上应用avg_over_time()
并获得任何给定范围内的可用性。