根据响应值计算 Prometheus 中的可用性
Calculating availability in Prometheus based on response value
我正在尝试使用 prometheus 计算 elasticsearch 的可用性。其中一个运行的作业将集群状态作为一个值,可以是 0、1 或 2,其中任何高于 1 的都被认为是不可用的。
使用 的答案不起作用,因为所有作业都成功了,因此查询必须按照以下方式执行某些操作:
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()
并获得任何给定范围内的可用性。
我正在尝试使用 prometheus 计算 elasticsearch 的可用性。其中一个运行的作业将集群状态作为一个值,可以是 0、1 或 2,其中任何高于 1 的都被认为是不可用的。
使用
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()
并获得任何给定范围内的可用性。