使用 JMX 监控 Kafka 消费者指标

Monitor Kafka Consumer Metrics with JMX

我尝试将每个 JMX 的 Kafka 指标导出到 Prometheus 并使用 Grafana 显示它们,但我正在努力获取消费者指标(更准确地说是这个指标:

kafka.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=([-.\w]+) )

每次我尝试获取这个 Mbean 时,它甚至都没有出现。我一直读到我必须 "look into the client" 或 "I´m looking in the broker metrics, but I need the consumer metrics",但没有人解释如何做到这一点,所以我问你们是否可以帮助我。是否有某种配置或特殊的 JMX 端口来获取消费者指标或类似的东西?

我的配置文件查找 MBean 的模式:

- pattern :  kafka.consumer<type=(.+), name=(.+), client-id=(.+)><>(Count|Value) 
  name: kafka_consumer__
  Labels:
    clientId: ""

此外,我需要使用 JMX 获取指标,因为我无权访问 Kafka 服务器。

我以这个项目为例:https://github.com/rama-nallamilli/kafka-prometheus-monitoring

以下两种情况是可能的:

一个。可能会给出客户端已经与 Kafka 断开连接的情况

乙。可能是此指标不存在于经纪人上。它可能在 运行 消费者代码的 JVM 应用程序中可见。我不确定,但您可以通过以下方式查看:

  1. 在启用 JMX 的情况下重新启动您的消费者应用程序

  2. 使用visual vm连接上面的jvm

  3. 它应该显示所有可用的 JMX 指标。

  4. 如果指标包含您选择的指标,那么您找错了地方(经纪商)。如果不是那我就错了

我没有确切的配置,但我可以在您的配置中指出 1 个错误,即 name 不能作为消费者指标的匹配模式。 尝试用这个删除模式:

- pattern :  kafka.consumer<type=(.+), client-id=(.+)><>(Count|Value) 

如需更多参考,您可以查看 Apache kafka docs 我也有为消费者和生产者创建通用模式的问题。 我一弄明白就post来这里。

@xBoLLo