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