0

我在 grafana 中绘制了一个图表,其中我得到了一个计数器的速率并从另一个计数器的速率中减去它。我在图中使用区间变量。现在,当我想使用 5m 作为间隔时,我希望将速率乘以 (5*60)。同样,当 1h 时,它应该乘以 (1 * 24 * 60 * 60)

$period = 1m,5m,10m,1h and like this.

我的查询

rate(service_total{state="otp_send"}[$period]) * 300 - ignoring(state) rate(service_total{state="otp_validate"}[$period]) *300 

所以我希望将这 300 放入一个变量中,当我更改 grafana 中的 $period 值时该变量会发生变化

> If $period is 5m, 300 should be 300 
> If $period is 1m, 300 should be 60
> If $period is 10m, 300 should be 600

并以这种方式。有什么我可以在 grafana 中做的事情吗?

所以基本上我想将 $period 附加到一个根据间隔相乘的常量变量。

4

2 回答 2

2
  increase(service_total{state="otp_send"}[$period]) 
- ignoring(state) 
  increase(service_total{state="otp_validate"}[$period]) 

increase在此之上是语法糖rate

于 2020-06-10T18:12:34.723 回答
0

您可以从 "rate(vector)*time" 更改为 "delta(vector)" 以获得相同的结果,如下所示:

delta(service_total{state="otp_send"}[$period]) - ignoring(state) delta(service_total{state="otp_validate"}[$period])

Prometheus 文档中的更多信息在这里

更新:

正如@brian-brazil 回答的那样,在这种情况下正确的是使用“increase”函数而不是“delta”函数,因为第二个函数不处理计数器重置。

Prometheus 文档中的更多信息在这里

于 2020-06-10T12:28:14.050 回答