计算InfluxQL中的值和(移动)平均值之间的差

时间:2019-07-25 15:40:22

标签: grafana influxdb influxql

我正在跟踪无线网络的性能,并且需要对协议的优缺点进行协议。为此,我需要一个Grafana仪表板,其中将测量值(每2小时)与先前测量的平均值(移动或整个系列的平均值)进行比较。

我尝试了子查询等的许多不同组合,但都无法正常工作。我还尝试了内部联接(但是这些联接已删除?)。

想要的状态

这是最接近期望的结果,并且最接近“应该工作”:

SELECT last("sum") / moving_average("sum", 72) * 100 FROM (
    SELECT "metadata_gateways_0_rssi" + "metadata_gateways_0_snr" AS "sum"
    FROM "ip6-test-7" WHERE $timeFilter
) GROUP BY "payload_fields_location", time($__interval)
fill(previous)

即使使用moving_average(mean("sum"), 72),这也不起作用,实际上使用"advanced syntax"对我来说根本不起作用。

当前状态

有效,但实际上并不需要什么:

SELECT last("sum") / mean("sum") * 100 FROM (
    SELECT "metadata_gateways_0_rssi" + "metadata_gateways_0_snr" AS "sum" 
    FROM "ip6-test-7" WHERE $timeFilter
) GROUP BY "payload_fields_location", time(1d)
fill(previous)

将$ __ interval作为2h会导致系列始终为100(显然)。

相关的Github问题

https://github.com/influxdata/influxdb/issues/14452

0 个答案:

没有答案