我有 prometheus 运算符,它每 15 秒刮一次指标:
我想“缩小一点”并显示我每 1 分钟的延迟总和。但是,我找不到这样做的查询。rate()
我用and尝试了各种选项sum_over_time()
,但查询只是出错了。
我还尝试更改此选项:更改 为 1 m。发生的事情是 4 个 15 秒间隔中的 3 个被省略了。而不是在一分钟内总结我所有的 15 秒结果。
我怎样才能达到预期的结果?
您正在寻找的答案是
sum by(job) (increase(web_latencies_summary_count[1m]))
最小步长为1m
.
不幸的是,由于Prometheus 计算increase()
/的方式rate()
,这实际上会给你 45 秒内的请求数,外推到 1 分钟(即increase[45s] / 45 * 60
)。一个更准确的公式是
sum by(job) (increase(web_latencies_summary_count[75s])) / 75 * 60
但请注意(a)这取决于您的刮擦间隔;(b) 由于时间戳不完全相隔 15 秒,因此结果将不是整数。