如何通过PromQL查询Counter指标各数据点的单次增量?
如何用PromQL计算Counter指标的单次增量?
对于持续增长的Counter指标,要计算单次抓取间隔内的增量(即相邻数据点的差值),推荐使用increase()函数,它会自动处理Counter的重置场景(比如进程重启导致Counter归零),比直接做差值更可靠。
假设你的Counter指标名为your_counter,Prometheus抓取间隔为15秒,对应的PromQL查询语句是:
increase(your_counter[15s])
为什么选increase()而不是直接减法?
- 直接用
your_counter - your_counter offset 15s在Counter未重置时能得到正确结果,但一旦Counter因进程重启等原因重置为0,这个查询会返回负数(比如新样本是10,上一个样本是410,差值为-400),不符合实际增量逻辑。 increase()函数会识别Counter的重置行为,自动跳过重置后的无效负值,返回真实的增量值,同时它的时间范围[15s]刚好匹配你的抓取间隔,计算的就是两次抓取之间的单次增量。
对应你给出的示例数据:300 > 350 > 390 > 410,这个查询会返回50、40、20,完全符合你的需求。
内容的提问来源于stack exchange,提问作者oakkose
相关产品推荐
相关产品推荐

