【发布时间】:2019-11-07 18:00:58
【问题描述】:
我有在 grafana 中以每天 1 小时为单位显示的能源消耗数据。数据每 5 秒写入一次,需要汇总。
这是查询:
我想要另一张图表,以相同的样式显示实际消耗量与昨天的消耗量之间的差异。
问题是我不知道如何正确使用 influxdb 差分函数。
有什么想法吗?
【问题讨论】:
我有在 grafana 中以每天 1 小时为单位显示的能源消耗数据。数据每 5 秒写入一次,需要汇总。
这是查询:
我想要另一张图表,以相同的样式显示实际消耗量与昨天的消耗量之间的差异。
问题是我不知道如何正确使用 influxdb 差分函数。
有什么想法吗?
【问题讨论】:
我找不到任何使用常规 influxdb 查询语言的解决方案。但是通过使用焊剂来代替有一个解决方案
today = from(bucket: "piMeter")
|> range(start: -31d)
|> filter(fn: (r) => r._measurement == "downsampled_energy" and r._field == "sum_Gesamt")
|> fill(value: 0.0)
|> aggregateWindow(every: 1d, fn:sum)
yesterday = from(bucket: "piMeter")
|> range(start: -62d, stop: -31d)
|> filter(fn: (r) => r._measurement == "downsampled_energy" and r._field == "sum_Gesamt")
|> fill(value: 0.0)
|> aggregateWindow(every: 1d, fn:sum)
join(tables:{today:today, yesterday:yesterday}, on:["_field"])
|> map(fn:(r) => ({
_time: r._time_today,
_value: r._value_today - r._value_yesterday,
}))
|> fill(value: 0.0)
|> aggregateWindow(every:1d , fn:mean)
【讨论】: