QQA: 为什么 Prometheus increase 不返回整数?
用 Prometheus 作业务监控,需要统计“今日请求量”,很自然想到用 increase 函数。实际效果是它不返回整数,甚至在突然的压力下“请求量”还会减少。为什么会发生这些现象呢? 原因是 increase/rate 函数对区间的统计信息做了“线性外插”,是一个估算值。 Prometheus 怎么做线性外插 如下图:我们每隔 5s 采样一次,问在 [3s, 23s] 的区间内增长了多少?这里的问题在于查询区间的时间与采样时间不重合,因此并没法得到准确的数值。 Prometheus 的策略是拿到样本的端点 {5s: 10} 与 {20s: 30},并计算它们的区间为20 - 5 = 15s,期间请求量增长了 30 - 10 = 10 次。因此推算每秒增长了 20/15次,按增长率估算在[...阅读全文
