Spring Boot 2.1 Micrometer Kafka 消费者指标统计 COUNT 为“NaN”

Posted

技术标签:

【中文标题】Spring Boot 2.1 Micrometer Kafka 消费者指标统计 COUNT 为“NaN”【英文标题】:Spring Boot 2.1 Micrometer Kafka consumer metric statistic COUNT is "NaN" 【发布时间】:2019-04-04 00:39:41 【问题描述】:

目前我正在使用 Spring Boot 2.1、Spring Kafka (2.2.0) 和 Micrometer (1.1.0)。

我创建了一个简单的示例项目,其中包含:

Spring Boot 2 应用向 Kafka 主题发布随机 Hello World 消息 使用来自 Kafka 主题的 Hello World 消息的 Spring Boot 2 应用 用于启动 Kafka 代理和 Zookeeper 实例的 docker-compose 文件(均为官方 Confluent Docker 映像)

我的目标是让作为 micrometer 1.1.0 的一部分发布的 Kakfa 消费者指标发挥作用。

生产和使用 Hello World 消息的工作非常好,(kafka)指标也暴露了http://host:port/actuator/metrics,但是当 我请求一个特定的 Kafka 指标,例如:

http://host:port/actuator/metrics/kafka.consumer.records.consumed.total

统计值COUNTNaN


  name: "kafka.consumer.records.consumed.total",
  description: "The total number of records consumed.",
  baseUnit: "records",
  measurements: [
    
      statistic: "COUNT",
      value: "NaN"
    
   ],
   availableTags: [
     
       tag: "client.id",
       values: [
         "spring-kafka-consumer-hello-world-app"
       ]
     
   ]
 

我是否忽略了我的 Spring Boot 应用程序或 Kafka 代理上的一些配置?我希望你能指出我正确的方向。

你可以找到我的示例项目here。

【问题讨论】:

【参考方案1】:

我刚刚在调试器中运行它,执行器正在寻找具有对象名称的 MBean...

kafka.consumer:type=consumer-fetch-manager-metrics,\
client-id=spring-kafka-consumer-hello-world-app

我们得到...

javax.management.InstanceNotFoundException: kafka.consumer:type=consumer-fetch-manager-metrics,client-id=spring-kafka-consumer-hello-world-app

...但该应用实际上有 3 个具有名称的消费者 MBean:

kafka.consumer:type=consumer-fetch-manager-metrics,\
client-id=spring-kafka-consumer-hello-world-app-0

(和-1-2)。

我建议你打开一个关于千分尺的问题。

【讨论】:

感谢 Gary 花时间调试它。我将针对千分尺创建一个问题。 嘿@jtim,我提出了千分尺的问题。 github.com/micrometer-metrics/micrometer/issues/983 该问题已在 Micrometer 1.1.1 中得到修复。我还更新了我的simple project,Kafka 消费者指标现在是正确的。

以上是关于Spring Boot 2.1 Micrometer Kafka 消费者指标统计 COUNT 为“NaN”的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 2.1 中的 DataSource bean 覆盖

Spring boot 2.1 error.html 页面未显示[重复]

Spring Boot 2.1 MVC 日志记录

Spring Boot 2.1 bean 覆盖与 Primary

在 Spring Boot 2.1 中热重载 Thymeleaf 模板和资源包

当加载 spring-boot 和 spring-data-jpa 时,Hibernate 无法加载 JPA 2.1 Converter