Grafana 变量 - 区间乘数
Grafana variable - Interval mutiplier
我正在 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 附加到一个常量变量,该变量根据间隔相乘。
您可以将 "rate(vector)*time" 更改为 "delta(vector)" 以获得相同的结果,如下所示:
delta(service_total{state="otp_send"}[$period]) - ignoring(state) delta(service_total{state="otp_validate"}[$period])
Prometheus 文档中的更多信息here。
更新:
正如@brian-brazil 回复的那样,在这种情况下正确的做法是使用 "increase" 函数而不是 "delta" 函数,因为第二个函数不处理计数器重置。
Prometheus 文档中的更多信息here
increase(service_total{state="otp_send"}[$period])
- ignoring(state)
increase(service_total{state="otp_validate"}[$period])
increase
是 rate
之上的语法糖。
我正在 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 附加到一个常量变量,该变量根据间隔相乘。
您可以将 "rate(vector)*time" 更改为 "delta(vector)" 以获得相同的结果,如下所示:
delta(service_total{state="otp_send"}[$period]) - ignoring(state) delta(service_total{state="otp_validate"}[$period])
Prometheus 文档中的更多信息here。
更新:
正如@brian-brazil 回复的那样,在这种情况下正确的做法是使用 "increase" 函数而不是 "delta" 函数,因为第二个函数不处理计数器重置。
Prometheus 文档中的更多信息here
increase(service_total{state="otp_send"}[$period])
- ignoring(state)
increase(service_total{state="otp_validate"}[$period])
increase
是 rate
之上的语法糖。