1

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

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

我在一个 EC2 实例上的 docker 中运行这个设置,它没有达到任何限制(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

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

我已经为此碰壁了,我一直在尝试很多不同的东西,但我无法在聚合的耳语数据库中看到所有数据。

很感谢任何形式的帮助。

4

1 回答 1

0

碳聚合器并非旨在做您想做的事情。对于该用例,您需要使用 statsd 来计算每秒的事件数。

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

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

于 2019-01-22T15:08:39.860 回答