Graphite——如何将数据发送到时间戳超过一年的碳

Graphite -- How to send data to carbon that have timestamps over a year old

我正在使用石墨来存储和绘制数据,我想将超过一年的数据点发送到碳守护程序(第一个数据点来自 2013 年 12 月 12 日,最后一个数据点是 2015 年 1 月 12 日)但 whisper 似乎无法接受超过 24 小时的值(至少在 my 当前设置下是这样)。

每当我将超过一年的指标发送到 carbon(使用纯文本协议)时,它只会删除它们。我可以告诉你,因为当我在 *.wsp 文件上 运行 whisper-fetch.py 时,它显示了过去 24 小时的时间戳,所有这些时间戳都没有数据。但是,如果我发送具有当前时间戳(或过去 24 小时内的任何时间戳)的相同数据(使用相同的协议),它会保留该值并在我 运行 whisper-fetch.py 时出现*.wsp 文件。

我没有任何聚合规则设置,因为我只对原始数据点感兴趣,我的保留设置如下:

[pos]
pattern = ^pos\.
retentions = 1m:2y

我知道这将在 2 年内每分钟存储一次数据点,但它无法接受过去的数据点。

是否有适当的保留来存储时间戳早于过去 24 小时的历史数据?或者 *.config 文件中是否有允许导入过去 24 小时之前的数据的设置?或者这 "feature" 是 whisper/carbon 的限制?

更新

我应该提一下,我发送的指标格式如下:

"pos.amps (data here) (unix timestamp here)"

我尝试了几种不同的保留策略,包括使用旧版格式:

[pos]
pattern = ^pos\.
retentions = 120:500

表示每 120 秒收集 1 个数据点并存储 500 个数据点,但我仍然没有运气。我在这里 (https://serverfault.com/questions/593157/graphite-shows-none-for-all-data-points-even-though-i-send-it-data) 读到 whisper 有某种默认设置为 24 小时的查询周期。这是我想更改的值,但我不知道在哪里更改它!

我发现了我的错误,whisper-fetch.py 的默认时间范围是过去 24 小时,除非另有说明。一个我将调用更改为格式

./whisper-fetch.py --pretty --from=TIMESTAMP --until=TIMESTAMP /path/to/whisper/file.wsp 

一切正常,我的数据就在那里。

另一个有用的技巧是使用 Graphite 的 URL api 查询数据库并检查那里的数据。这是一些文档:http://graphite.readthedocs.org/en/latest/render_api.html