如何通过 JMX 将 Spring Boot 应用程序中的 Kafka 指标公开给 Prometheus?

Posted

技术标签:

【中文标题】如何通过 JMX 将 Spring Boot 应用程序中的 Kafka 指标公开给 Prometheus?【英文标题】:How to expose Kafka metrics from SpringBoot application through JMX to Prometheus? 【发布时间】:2020-10-06 11:40:27 【问题描述】:

我有一个 springboot 应用程序,我想通过 JMX 将 kafka.consumer 指标公开给 Prometheus。我可以看到指标here,但我只是不知道在哪里设置这些 mBean(即 kafka.consumer:type=consumer-metrics,client-id=([-.\w]+))。我了解到阅读 spring boot documentation 我只需要通过执行此设置 spring.jmx.enabled=true 来激活 JMX,但我不知道该怎么做才能通过 JMX 向 Prometheus 公开这些指标。

【问题讨论】:

【参考方案1】:

Kafka 自动使用这些名称注册自己的 MBean。

如果您添加执行器启动器,Boot 将配置 Micrometer 以抓取这些 MBean。

但是,Micrometer 已弃用 JMX 刮板并具有新的 KafkaMetrics 对象。

Spring Boot 2.3 现在使用这些类来配置 Micrometer 而不是 JMX。

【讨论】:

你能推荐一个简单的例子来说明如何查看 Kafka 生产者指标吗? 生产者指标的公开方式相同(JMX 和 Micrometer)。

以上是关于如何通过 JMX 将 Spring Boot 应用程序中的 Kafka 指标公开给 Prometheus?的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring Boot Camel 应用程序公开的 Micrometer / Prometheus 信息中包含其他 JMX 指标

Spring Boot Actuator JMX 端点的漂亮打印输出

如何提高 Spring Boot 应用的启动速度

如何提高 Spring Boot 应用的启动速度

使用 Spring Boot 重新打包启用 JMX

可以使用“jmx exporter”而不在 jar 文件中编译我的 spring boot 应用程序吗?