PromQL 中的增加和增量有什么区别?

ggr*_*nig 7 prometheus promql

给定一个这样的计数器在给定时间范围内增加,计算和http_requests_total有何区别?delta(http_requests_total[5m])increase(http_requests_total[5m])

据我理解的文档,delta计算时间范围的开始值和结束值之间的差。increase计算rate,然后将其与时间范围相乘。

但实际的区别是什么?这两个值不是总是相同吗?

就像,假设我有以下值,每个值都在下一秒:

t0: 5
t1: 11
t2: 18
t3: 30
Run Code Online (Sandbox Code Playgroud)

那么delta就会是30 - 5 = 25。这rate将是各个增量的平均值,即8.333。如果我将其乘以时间范围3,那么我会25再次得到。那么两者实际上有什么区别呢?

bja*_*ski 11

delta当你的计数器被重置时(当它再次从 0 开始计数时)将会失败,而increase/rate将检测到并相应地调整结果。所以:

t0: 5
t1: 11
t2: 28
t3: 4
t4: 40
Run Code Online (Sandbox Code Playgroud)

withdelta你可能会得到40 - 5 = 35, whileincrease可能会计算出类似的东西(28-5)+40 = 63

  • 是的,您不应该将它与计数器一起使用。请参阅 Prometheus 文档:“delta 只能与仪表和本机直方图一起使用,其中组件的行为类似于仪表(所谓的仪表直方图)”。 (6认同)