Grafana 如何在XDB中减少超过14天的数据采样,并将其与原始数据保持在同一个表中?

Grafana 如何在XDB中减少超过14天的数据采样,并将其与原始数据保持在同一个表中?,grafana,influxdb,retention,Grafana,Influxdb,Retention,我有一个从telegraf收集数据到XDB的设置。然后grafana使用XDB作为数据源来显示图形 我的问题是降低磁盘使用率,因此我希望减少旧数据(早于3天)的采样,并保持新数据(早于3天)原样(原始) 我尝试了XDB的保留策略(RP)和连续查询(CQ),如指南中所述: XDB(“telegraf”) +----------------------------+ | | | +-----------------------+ | ||表盘

我有一个从telegraf收集数据到XDB的设置。然后grafana使用XDB作为数据源来显示图形

我的问题是降低磁盘使用率,因此我希望减少旧数据(早于3天)的采样,并保持新数据(早于3天)原样(原始)

我尝试了XDB的保留策略(RP)和连续查询(CQ),如指南中所述:

XDB(“telegraf”)
+----------------------------+
|                            |
| +-----------------------+  |
||表盘|u原始||
||当前RP(原始)+---------+
||(3d后删除)||
|+--------------------------+| | CQ(平均30分钟的数据点为1)
| +-----------------------+  |      |
||表|盘|盘||

|| LONGTERM RP+EDIT2:这里有一个在Grafana中使用模板变量实现的解决方案

这似乎是一个非常好的解决方案

原始答案 从链接的influxb页面查看示例

CREATE CONTINUOUS QUERY "cq_30m" ON "food_data" BEGIN
  SELECT mean("website") AS "mean_website",mean("phone") AS "mean_phone"
  INTO "a_year"."orders"
  FROM "orders"
  GROUP BY time(30m)
END
如果将相同的源表和目标表(即
orders
)指定到
into
FROM
子句中,则数据将写入同一个表

但是,这并不能解决您的问题。
您仍然需要两个查询才能从两个保留策略中获取数据。如果执行常规
select*from disk\u raw…
Influx将使用默认的保留策略并从那里返回数据

通常的方法是运行两个查询并连接结果。在单个请求中,类似于
从rp_short.diskraw中选择*;从rp_long.diskraw中选择*

编辑: 这里讨论了为什么你(和其他很多人)不可能做你想做的事情 还有一些解决方法。

简单地说,一种方法是手动处理下采样和高分辨率数据(即不使用CQ),并将其保持在相同的保留策略中。另一种方法是使用代理,根据查询的时间范围扩展查询,以获得正确的数据。

感谢您的回答,我已经阅读了提供的解决方法。。。我想我会让它保持原样,因为我有太多的测量数据,我认为在我的情况下,解决问题的努力是不值得的。磁盘空间没有那么贵,我真的需要保留大约14天的数据。如果你想拥有蛋糕并吃掉它,没有任何好的理由。首先,你可以很容易地在一个Grafana中进行多个查询,并且无论你在一个或两个数据库中存储数据,磁盘使用的开销都可以忽略不计。Correction@MarkusWMahlberg OP想要吃蛋糕,有充分的理由,这一点在问题中已经明确说明。希望在同一图表中查看最近的数据和较旧的下采样数据是合理的要求。大量涌入对概念的简单性感到自豪,这是可以理解的,用户可以考虑删除测量/记录是发生在原始数据集上的事情,在记事本上写下日志,然后将某些行划掉。问题解决了。
CREATE CONTINUOUS QUERY "cq_30m" ON "food_data" BEGIN
  SELECT mean("website") AS "mean_website",mean("phone") AS "mean_phone"
  INTO "a_year"."orders"
  FROM "orders"
  GROUP BY time(30m)
END