石墨——如何将数据发送到时间戳超过一年的碳
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
【讨论】:
以上是关于石墨——如何将数据发送到时间戳超过一年的碳的主要内容,如果未能解决你的问题,请参考以下文章