kafka 消费者滞后于 jmx 指标与消费者-groups.sh 脚本

kafka consumer lag from jmx metrics vs consumer-groups.sh script

我正在为 kafka 消费者和代理设置监控。监控服务器指标似乎相当微不足道,但我对卡夫卡消费者指标特别滞后感到困惑。

我最初获得了消费者在每个分区的主题上的滞后 运行 消费者-groups.sh 以编程方式描述组脚本。还有 consumer_offsets 主题,我认为它也揭示了滞后。但是我被告知这个滞后值不准确,我应该通过消费者主机上的 jmx 指标来获取它。有人可以验证这是否正确以及为什么?基本上我想知道哪种方法是为消费者找到正确延迟的最可靠方法。

这是我被告知我应该检索的内容:kafka.consumer:type=consumer-fetch-manager-metrics,client-id={client-id} 属性:records-lag-max

问题是,如果没有给定端口,不确定如何访问消费者客户端服务器,或者是否有默认端口?是否所有 kafka 消费者客户端都注册了 jmx 指标?

谢谢

好吧,并非所有消费者都是 Java 客户端,但对于那些消费者,公开的 JMX 指标将得到最及时的更新,因为消费者知道什么数据被消费以及何时被消费。消耗的偏移量可以阻塞同步或异步,只有这样才会在偏移量主题中结束。

但是,如果您确实想监控所有客户的所有消费者群体,您可以使用补偿主题和 LinkedIn 的 Burrow 等工具轻松获取该信息的 REST API。 Telegraf 也有一个插件,用于将该数据导出到指标存储

how to access the consumer client server if not given the port or is there a default port for this

您将在 Java 客户端上启用 JMX,就像在服务器和其他 JVM 进程上一样。端口是你可以选择的