如何在Grafana中的条形图中绘制时间分组增量数据,但在计算增量之前使用需要插值的稀疏数据源?
我的数据源是一个InfluxDB,它具有稀疏的累积值时间序列(例如:煤气表读数)。数据点通常相隔几天。我的目标是创建一个每天增值的条形图。对于缺失的值,线性插值将做得很好。
我想出了
SELECT spread("value") FROM "gas" WHERE $timeFilter GROUP BY time(1d) fill(linear)但是这不能工作,因为fill(linear)命令是在spread(value)命令之后执行的。如果我使用的时间段远远大于输入数据的粒度(例如,时间(14d)),它将显示正确的条形图,但一旦使用较小的周期,条形图就会折叠为0。
如何在差分运算前应用插补?
发布于 2022-10-12 13:45:44
您所描述的情况是由以下事实引起的: fill()只在查询中没有时间()期间在组中有任何内容时才填充数据。如果得到spread=0,那么在此期间可能只有一个值,因此不使用fill()。我可以给你建议的是,使用子查询与较低的组周期时间,准备插值你的原始信号。这就是一个例子:
SELECT spread("interpolated_value") FROM (
SELECT first("value") as "interpolated_value" from "gas"
WHERE $timeFilter
GROUP BY time(10s) fill(linear)
)
GROUP BY time(1d) fill(none)Subquery将为每10s期间准备值(我建议尽可能将此值设置为您可以接受的最高值)。如果在10s周期是值,它将选择第一个,如果在此期间没有值,它将进行插值。
在主查询中,使用准备好的插值值集来计算价差。
以上仅描述了如何在短周期内获得内插数据。我强烈建议考虑这些数据的可用性。由线性插值数据计算天平可能有可疑的可靠性。
https://stackoverflow.com/questions/74039009
复制相似问题