我正在使用 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 中的图表:
有谁知道出了什么问题?是我收集的配置,例如Type
或类似的东西吗?
只是对这个问题的一个小跟进:它既不是 JMX 也不是 collectd 错误。我通过直接登录到每个 Kafka 代理并读取其 MBean 中的值来验证 JMX、collectd 和 Librato 具有一致的值。
问题是我们使用的 Kafka 客户端的自动提交间隔太小,这会产生大量消息发送到每个 Kafka 代理。