由JMX报告错误的测量结果并收集到Apache Kafka

我正在使用JMX从Apache Kafka收集指标,并通过collectd发送给Librato,一个可视化和监控服务。 问题是,一些指标似乎是错误的报告。 例如,没有任何人使用Kafka集群,一些节点报告大量的传入消息(如15,000),而其他节点报告0,如预期。

以下是collectd中的一个指标configuration:

<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的图表:

在Librato每秒消息的可视化

有谁知道发生了什么问题? 它是我的collectionsconfiguration,如Type或类似的东西?

在这个问题上只是一个小的跟进:这既不是JMX也没有收集错误。 我通过直接login到每个Kafka代理并读取它们的MBean中的值,validation了JMX,collectd和Librato具有一致的值。

问题是我们使用的Kafka客户端的自动提交间隔太小,这就产生了大量的消息被发送到每个Kafka经纪人。