石墨:碳聚集器正在丢弃数据吗?

时间:2019-01-21 18:18:38

标签: amazon-s3 logstash graphite graphite-carbon

我正在研究一种警报解决方案,该解决方案在执行一些较小的处理后,使用Logstash将AWS CloudFront日志从S3存储桶流式传输到Graphite。 由于可能发生具有相同时间戳的多个事件(在一秒钟内发生多个事件),因此我选择使用Carbon Aggregator每秒对这些事件进行计数。

我面临的问题是耳语数据库的聚合似乎正在丢弃数据。普通的耳语文件可以看到所有这些信息,但是当然,它每秒不能解释超过1个事件。

我正在docker上的EC2实例上运行此设置,没有遇到任何限制(CPU,内存,网络,磁盘)。

我检查了我在docker实例中可以找到的每条日志,并检查了docker日志,但是没有发现任何问题。

我已将logstash输出设置为显示stdout上的行(不丢失任何行)并将它们发送到port 2023上的石墨,石墨被设置为line-by-line receiver碳聚集器:

[aggregator]
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2023

aggregation-rules.conf设置为非常简单的每秒计数:

test.<user>.total1s (1) = count test.<user>.total

storage-schemas.conf

[default]
pattern = .*
retentions = 1s:24h

很高兴根据您的要求分享更多我的配置。

我为此遇到了麻烦,我尝试了很多不同的事情,但无法在聚合的耳语数据库中看到所有数据。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

碳聚集器并非旨在执行您要尝试执行的操作。对于该用例,您希望使用statsd每秒计算事件数。

https://github.com/etsy/statsd/blob/master/docs/metric_types.md#counting

碳聚合器旨在跨不同系列进行聚合,因为它在输入中看到的每个点都会在发生任何聚合之前将其量化为时间戳,因此您仍然只能通过聚合器每秒获得一个值。 statsd将采用任意数量的计数器增量,并将其总计为每个间隔。