如何在 Grafana 中使用动态间隔测量吞吐量
How to measure throughput with dynamic interval in Grafana
我们正在使用 Grafana 和 Influx 测量吞吐量。当然,我们希望根据每秒 每秒 (rps) 大约发生多少请求来衡量吞吐量。
典型的请求是:
SELECT sum("count") / 10 FROM "http_requests" GROUP BY time(10s)
但是我们正在失去使用惊人动态的可能性 $__interval
这在图形范围很大时非常有用,比如一周中的一天。当我们更改间隔时,我们应该将 divider 更改为 SELECT
expression.
SELECT sum("count") / $__interval FROM "http_requests" GROUP BY time($__interval)
但是这种方法不起作用,因为结果为空 returns.
如何使用动态 $__interval
创建请求以进行吞吐量测量?
你得不到结果的原因是 $__interval
不是一个数字,而是一个字符串,例如 10s
、1m
等,被 influxdb 理解为一个时间范围.所以不可能按照你尝试的方式使用它。
但是,您要计算的是 mean
,它在 InfluxQL 中作为函数提供。获得你想要的行为的方法是这样的。
SELECT mean("count") FROM "http_requests" GROUP BY time($__interval)
编辑:再想一想,这并不是您想要的。
您可能需要使用 derivative
。稍后我会回来找你。
Edit2:你认为这回答了你的问题
Edit3:第三次编辑很有魅力。
我们使用您的起始查询并将其包装在另一个查询中:
SELECT sum("rps") from (SELECT sum("count") / 10 as rps FROM "http_requests" GROUP BY time(10s)) GROUP BY time($__interval)
我们正在使用 Grafana 和 Influx 测量吞吐量。当然,我们希望根据每秒 每秒 (rps) 大约发生多少请求来衡量吞吐量。 典型的请求是:
SELECT sum("count") / 10 FROM "http_requests" GROUP BY time(10s)
但是我们正在失去使用惊人动态的可能性 $__interval
这在图形范围很大时非常有用,比如一周中的一天。当我们更改间隔时,我们应该将 divider 更改为 SELECT
expression.
SELECT sum("count") / $__interval FROM "http_requests" GROUP BY time($__interval)
但是这种方法不起作用,因为结果为空 returns.
如何使用动态 $__interval
创建请求以进行吞吐量测量?
你得不到结果的原因是 $__interval
不是一个数字,而是一个字符串,例如 10s
、1m
等,被 influxdb 理解为一个时间范围.所以不可能按照你尝试的方式使用它。
但是,您要计算的是 mean
,它在 InfluxQL 中作为函数提供。获得你想要的行为的方法是这样的。
SELECT mean("count") FROM "http_requests" GROUP BY time($__interval)
编辑:再想一想,这并不是您想要的。
您可能需要使用 derivative
。稍后我会回来找你。
Edit2:你认为这回答了你的问题
Edit3:第三次编辑很有魅力。
我们使用您的起始查询并将其包装在另一个查询中:
SELECT sum("rps") from (SELECT sum("count") / 10 as rps FROM "http_requests" GROUP BY time(10s)) GROUP BY time($__interval)