JMX 和 collectd 为 Apache Kafka 报告了错误的测量结果

JMX 和 collectd 为 Apache Kafka 报告了错误的测量结果

我正在使用 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 中的图表:

Librato 中的每秒消息可视化

有人知道哪里出了问题吗?是我的 collectd 配置有问题吗,Type或者类似这样的问题?

答案1

只是对这个问题的一个小小跟进:这不是 JMX 或 collectd 的错误。我通过直接登录到每个 Kafka 代理并读取其 MBean 中的值来验证 JMX、collectd 和 Librato 是否具有一致的值。

问题是我们使用的 Kafka 客户端的自动提交间隔太小,这产生了巨大的发送到每个 Kafka 代理的消息数量。

相关内容