【发布时间】:2019-05-02 17:32:33
【问题描述】:
我已设置 Prometheus 监控,并且正在根据以下标准生成“正常运行时间”报告:“错误率
(
sum(increase(errors[5m]))
/ sum(increase(requests[5m]))
) <= bool 0.1
这会显示在 Grafana 的单一统计面板中。
我现在想要实现的是从“停机”状态恢复所需的平均时间。从图形上看,我需要下面标记为 1 和 2 的间隔的平均持续时间。
如何在 Prometheus 中计算此度量?
更新:我不是在寻找 stat 为 0 时的平均持续时间,而是在寻找 stat 为 0 时的平均持续时间。
例如,考虑以下时间序列(假设值每分钟采样一次):
1 1 1 0 0 1 1 1 1 1 0 0 0 1
我们基本上有两个“下降”区间:0 0 和 0 0 0。持续时间定义为 2 分钟和 3 分钟,因此平均恢复时间为 (2+3)/2 = 2.5。
我根据阅读文档和实验的理解是avg_over_time 将计算一个算术团队,例如sum(up)/count(up) = 9/14 =~ 0.64
我需要计算第一个度量,而不是第二个。
【问题讨论】:
-
如果数据点以固定且已知的间隔出现,您可以计算零的数量并计算持续时间。不优雅,但可能有用。
-
@YuriLachin - 我该怎么做?抱歉,这似乎很明显,但我需要不间断的计数,所以在上图中不是 count(1+2) 而是 count(1), count(2) 。
-
我对 PromQL 不熟悉,抱歉。
标签: grafana prometheus