【发布时间】:2021-04-12 05:09:26
【问题描述】:
意图是Grafana 6.6.1 将从InfluxDb 1.8.2 查询这个
我想根据仪表板中选择的时间段$timeFilter 使用moving_average() 函数。
我在 CLI 中尝试了一些查询。在下面的 sn-ps 中,time > '2020-10-27' 将被 Grafana 中的$timeFilter 替换。
查询 1:
SELECT round(count("Temp")*0.1) FROM "Consumption" WHERE time > '2020-10-27'
输出:
name: Consumption
time round
---- -----
2020-10-27T00:00:00.000000001Z 7
查询 2:
SELECT moving_average("Temp", 7) FROM "Consumption" WHERE time > '2020-10-27'
输出:
name: Consumption
time moving_average
---- --------------
2020-11-03T00:00:00Z 7.535714285714286
2020-11-04T00:00:00Z 7.184528571428571
2020-11-05T00:00:00Z 6.833342857142857
2020-11-06T00:00:00Z 7.303585714285714
.....etc
但是,我无法合并这些查询
查询 3:
SELECT moving_average("Temp", round(count("Temp")*0.1)) FROM "Consumption" WHERE time > '2020-10-27'
输出:
ERR: second argument for moving_average must be an integer, got *influxql.Call
所以我猜round() 不会返回整数。有关如何解决此问题的任何建议?
编辑
额外问题:如何确保moving_average() 中的第二个参数永远不会低于 1。如果选择更短的时间跨度,则应为 1
【问题讨论】: