7

目前我正在使用 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 应用程序
  • 一个 docker-compose 文件来启动一个 Kafka 代理和一个 Zookeeper 实例(都是官方的 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

统计量的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 代理上的一些配置?我希望你能指出我正确的方向。

你可以在这里找到我的示例项目。

4

1 回答 1

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)。

我建议你打开一个针对千分尺的问题。

于 2018-10-31T18:09:56.450 回答