如何使用PromQL获取counter指标区间内每个采样点的delta增量值
实现相邻采样点增量计算的方法
你可以根据你的指标特性选择以下两种方案:
针对无重置的Counter或Gauge指标
如果你的http_requests指标不会发生重置,且采样间隔固定为1分钟(和你给出的示例一致),直接用偏移查询做减法即可:
http_requests - http_requests offset 1m
如果采样间隔不固定,可以用idelta函数,区间范围设置为至少覆盖2个采样点即可:
idelta(http_requests[2m])
针对可能发生重置的Counter指标
Counter类型指标可能因为服务重启归零,直接做减法会得到负数,你可以用下面的查询自动处理重置场景:
(http_requests >= http_requests offset 1m) * (http_requests - http_requests offset 1m) or (http_requests < http_requests offset 1m) * http_requests
补充说明
- 如果你的实际采样间隔不是1分钟,把上述查询中的
offset 1m和idelta的区间范围调整为你实际采样间隔的1.5~2倍即可。 - PromQL原生无法给首个采样点自动补0,因为首个点没有前置对照值,你如果需要和示例完全一致的结果,可以在拿到查询结果后手动给第一个点补值为0。
内容的提问来源于stack exchange,提问作者MBasith
相关产品推荐
相关产品推荐

