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

Posted

技术标签:

【中文标题】石墨——如何将数据发送到时间戳超过一年的碳【英文标题】:Graphite -- How to send data to carbon that have timestamps over a year old 【发布时间】:2015-08-24 19:44:16 【问题描述】:

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

每当我将超过一年的指标发送到 carbon(使用纯文本协议)时,它都会简单地丢弃它们。我可以说出来,因为当我在 *.wsp 文件上运行 Whisper-fetch.py​​ 时,它会显示过去 24 小时的时间戳,所有这些时间戳都不包含任何数据。但是,如果我使用当前时间戳(或过去 24 小时内的任何时间戳)发送相同的数据(使用相同的协议),它会保留该值并在我对 *.wsp 文件运行 Whisper-fetch.py​​ 时出现。

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

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

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

是否有适当的保留来存储时间戳在过去 24 小时之前的历史数据?或者 *.config 文件中是否有允许在最后 24 小时之前导入数据的设置?还是这个“特征”是耳语/碳的限制?

更新

我应该提一下,我发送的指标采用以下格式:

"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)读到,耳语有某种查询周期,默认设置为 24 小时。那是我想改变的值,但我不知道在哪里改变它!

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于石墨——如何将数据发送到时间戳超过一年的碳的主要内容,如果未能解决你的问题,请参考以下文章

如果时间戳不存在,有没有办法将秒添加到时间戳中?

Apache Spark 将事件计数到时间戳存储桶中

Hive 未检测到时间戳格式

js 怎么取到时间戳里面的月份?

将浮点列添加到时间戳类型列(秒+毫秒)

将五个小时添加到时间戳字段