目前我正在使用Spring Boot 2.1,Spring Kafka(2.2.0)和千分尺(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,但是当 我请求一个特定的卡夫卡指标,例如:
http://host:port/actuator/metrics/kafka.consumer.records.consumptiond.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 代理上的某些配置?我希望你能为我指出正确的方向。
你可以在这里找到我的示例项目。
我刚刚在调试器中运行它,执行器正在寻找具有对象名称的 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
)。
我建议你打开一个针对千分尺的问题。