我正在使用 JMX 从 Apache Kafka 收集指标并通过 collectd 发送到可视化和监控服务 Librato。问题是某些指标似乎报告错误。例如,在没有人使用 Kafka 集群的情况下,某些节点报告每分钟传入消息数量较高(例如 15,000 条),而其他节点则报告 0 条,这与预期一致。
以下是 collectd 中的一个指标配置:
<MBean "kafka-all-messages">
ObjectName "kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec"
InstancePrefix "all"
<Value>
InstancePrefix "kafka-messages-in"
Type "counter"
Table false
Attribute "MeanRate"
</Value>
</MBean>
以下是 Librato 中的图表:
有人知道哪里出了问题吗?是我的 collectd 配置有问题吗,Type
或者类似这样的问题?
答案1
只是对这个问题的一个小小跟进:这不是 JMX 或 collectd 的错误。我通过直接登录到每个 Kafka 代理并读取其 MBean 中的值来验证 JMX、collectd 和 Librato 是否具有一致的值。
问题是我们使用的 Kafka 客户端的自动提交间隔太小,这产生了巨大的发送到每个 Kafka 代理的消息数量。