我的第一篇文章所以请温柔!所以我在 Ubuntu 16.04 服务器上安装并运行了石墨。(版本 0.10)
我正在发送指标,一切正常,但我一次发送多个时间戳。正如我每分钟发送一次数据,每 10 秒时间戳。每分钟都有新数据进来。可能会在一分钟后重新发送具有相应时间戳(与以前相同)的密钥。因此,由于石墨的工作方式,新值被保存而最后一个丢失。所以我在 carbon-cache 前面放了一个 carbon-aggregator,认为它会聚合每个时间戳的值。它不是。它聚合在一个时间间隔内接收到的所有值,忽略时间戳。
我发现 statsd 具有相同的功能。我想要的是聚合器聚合每个时间戳的值。就像将数据保留 1 分钟一样,看看是否收到了相同键和时间戳的数据点。如果是这样总结它们。如果没有这样的数据,将原始数据转发到 carbon-cache。
有没有办法用石墨或statsd做到这一点,或者我必须在碳缓存(而不是碳聚合器)前面写我自己的小缓冲区,这样做吗?它可能是 C 中自制结构的链接列表,导致大约 150 行代码,但会花费宝贵的时间。
肯定有人遇到过同样的问题,但是有人找到解决方案了吗?
Bump:真的没有人遇到过这个问题吗?
提前致谢!
Logstash可能是一种解决方案。
它可以接收/理解碳指标(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-graphite.html ),并且可以生成指标,这似乎可以做除了总结你提到的(https://www.elastic.co/guide/en/logstash/current/plugins-filters-metrics.html)。它还可以以石墨可以理解的格式重新发出指标(https://www.elastic.co/guide/en/logstash/current/plugins-outputs-graphite.html)。
您还可以使用聚合插件 ( https://www.elastic.co/guide/en/logstash/current/plugins-filters-aggregate.html ) 做一些聪明的事情。
不过,听起来确实,如果您能够首先对生成统计信息/指标的方式做点什么,这可能是解决问题的一种更简单的方法。