为啥prometheus中increase()会返回1.33的值?
Posted
技术标签:
【中文标题】为啥prometheus中increase()会返回1.33的值?【英文标题】:Why does increase() return a value of 1.33 in prometheus?为什么prometheus中increase()会返回1.33的值? 【发布时间】:2016-12-04 14:08:38 【问题描述】:我们用sum(increase(foo_requests_total[1m]))
绘制一个时间序列,以显示每分钟的 foo 请求数。请求非常零星地出现 - 每天只有几个请求。图中显示的值始终为 1.3333。为什么值不是 1?这一分钟有一个请求。
【问题讨论】:
如果您需要increase()
查询的准确整数结果,请查看MetricsQL。
我只是 floor
增加表达式,这似乎按预期工作。
【参考方案1】:
计算这个数字的挑战在于,我们在一个时间范围内只有几个数据点,而且它们往往不在那个时间范围的确切开始和结束(这里是 1 分钟)。我们如何处理时间范围开始和第一个数据点之间的时间,最后一个数据点和范围结束之间的时间?
我们做了一些外推来平滑这一点并产生正确的总体结果。对于像这样移动非常缓慢的计数器,它可能会导致伪影。
【讨论】:
绘制这样一个缓慢移动的计数器的所有单次出现的正确方法是什么? 你所做的是正确的。如果您想要更准确的答案,我建议您在更长的时间范围内获取速率或处理日志(例如 ELK 堆栈)而不是此特定图表的指标。以上是关于为啥prometheus中increase()会返回1.33的值?的主要内容,如果未能解决你的问题,请参考以下文章