gpt4 book ai didi

grafana - 如何仅在 influxdb 中对超过 14 天的数据进行下采样并将其保存在与原始数据相同的表中?

转载 作者:行者123 更新时间:2023-12-04 13:17:42 25 4
gpt4 key购买 nike

我正在设置一个从 telegraf 收集指标到 influxdb 的设置。然后grafana使用influxdb作为数据源来展示图表。

我的问题是减少磁盘使用,所以我想对旧数据(超过 3 天)进行下采样,并保持新数据(不到 3 天)不变(原始)

我尝试了 influxdb 的保留策略 (RP) 和连续查询 (CQ),如指南中所述: https://docs.influxdata.com/influxdb/v1.2/guides/downsampling_and_retention

         influxdb ("telegraf")
+----------------------------+
| |
| +-----------------------+ |
| | table disk_raw | |
| | CURRENT RP (RAW) +---------+
| | (deleted after 3d) | | |
| +-----------------------+ | |CQ (average 30 min of datapoints into 1)
| +-----------------------+ | |
| | table_disk_ds | | |
| | LONGTERM RP +<--------+
| |(downsampled, kept 90d)| |
| +-----------------------+ |
| +<----+
+----------------------------+ |
|
|
grafana | grafana query
+----------------------------+ |
| | |
| +----------------------+ | |
| | data graph | +-----+
| +----------------------+ |
| |
+----------------------------+

问题是 - 此解决方案为您提供了 2 个表,一个用于原始数据,一个用于下采样数据。 CQ 不断写出下采样数据。这对我来说不太好:

  • 我正在使用 grafana 查询 influxdb,它从单个表中读取到图表。我想要一张同时包含旧数据和新数据的图表。
  • 使用 2 个数据库会增加磁盘使用量

有什么方法可以对同一张表中的旧记录进行下采样吗?

配置示例: https://docs.influxdata.com/influxdb/v1.2/guides/downsampling_and_retention

grafana 查询

SELECT mean("used_percent") FROM "disk"WHERE ("device"= 'dm-0') AND $timeFilter GROUP BY time(10s) fill(none)

最佳答案

EDIT2:这是在 Grafana 中使用模板变量实现的解决方法
https://github.com/grafana/grafana/issues/4262#issuecomment-475570324
这似乎是一个非常好的解决方案。

原始答案查看您链接的 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

如果您在 INTOFROM 子句中指定相同的源表和目标表,即 orders,则数据将写入同一张 table 。

但是,这并不能解决您的问题。
您仍然需要两个查询来从两个保留策略中获取数据。如果你做一个通用的 select * from disk_raw ... Influx 将使用默认的保留策略并从那里返回数据。

您通常采用的方法是运行两个查询并将结果串联起来。在单个请求中类似
从 rp_short.diskraw 中选择 *;从 rp_long.diskraw 中选择 *

编辑:这里讨论了为什么不可能做你(和很多其他人)想做的事 https://github.com/influxdata/influxdb/issues/2625还有一些解决方法。
简而言之,一种方法是手动处理下采样和高分辨率数据(即不使用 CQ)并将其保存在相同的保留策略中。另一种方法是使用代理,根据查询的时间范围增加查询,以获得正确的数据。

关于grafana - 如何仅在 influxdb 中对超过 14 天的数据进行下采样并将其保存在与原始数据相同的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58555008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com