Spring Boot 2.1千分尺Kafka消费者度量统计COUNT为“ NaN”

时间:2018-10-30 21:46:36

标签: spring-boot spring-kafka micrometer

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

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

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

我的目标是使Kakfa消费者指标作为千分尺1.1.0的一部分发布。

产生和使用Hello World消息也可以很好地工作,{kafka)指标也已公开http://host:port/actuator/metrics,但是当 我要求使用特定的Kafka指标,例如:

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

统计信息COUNT的值为NaN

{
  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 个答案:

答案 0 :(得分: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)。

我建议您针对千分尺提出一个问题。