使用 Spring 引导的 Apache Kafka JMX 指标
Apache Kafka JMX Metrics with Spring Boot
全部,
我需要将 Apache Kafka 指标公开给 spring 引导 (v 2.3.0.RELEASE) 执行器端点。
请注意,我没有使用 spring-kafka
库。
我正在使用以下库
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.5.0</version>
</dependency>
我试过这个 spring.jmx.enabled=true
但似乎不起作用。我认为这是因为 spring 没有管理 kafka。
有没有一种方法可以将这些 JMX 指标绑定到测微计 MeterRegistry?
我可以使用 prometheus 提供的 jmx-exporter 来完成这项工作,但由于这需要在不同端口上使用代理 运行,我希望使用默认的 Micrometer 和 spring开机。
你试过KafkaClientMetrics
, KafkaStreamsMetrics
or KafkaConsumerMetrics
了吗?
KafkaConsumerMetrics
通过 JMX 收集指标,但已弃用 KafkaClientMetrics
。
您只需要创建它们并绑定到您的注册表:
KafkaConsumer<String, String> consumer;
KafkaProducer<String, String> producer;
MeterRegistry registry;
...
new KafkaClientMetrics(consumer).bindTo(registry);
new KafkaClientMetrics(producer).bindTo(registry);
与 KafkaStreams
类似:
new KafkaStreamsMetrics(kafkaStreams).bindTo(registry);
如果 Spring 不管理您的 Kafka 组件,您为什么期望 spring.jmx.enabled=true
做任何事情?
全部,
我需要将 Apache Kafka 指标公开给 spring 引导 (v 2.3.0.RELEASE) 执行器端点。
请注意,我没有使用 spring-kafka
库。
我正在使用以下库
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.5.0</version>
</dependency>
我试过这个 spring.jmx.enabled=true
但似乎不起作用。我认为这是因为 spring 没有管理 kafka。
有没有一种方法可以将这些 JMX 指标绑定到测微计 MeterRegistry?
我可以使用 prometheus 提供的 jmx-exporter 来完成这项工作,但由于这需要在不同端口上使用代理 运行,我希望使用默认的 Micrometer 和 spring开机。
你试过KafkaClientMetrics
, KafkaStreamsMetrics
or KafkaConsumerMetrics
了吗?
KafkaConsumerMetrics
通过 JMX 收集指标,但已弃用 KafkaClientMetrics
。
您只需要创建它们并绑定到您的注册表:
KafkaConsumer<String, String> consumer;
KafkaProducer<String, String> producer;
MeterRegistry registry;
...
new KafkaClientMetrics(consumer).bindTo(registry);
new KafkaClientMetrics(producer).bindTo(registry);
与 KafkaStreams
类似:
new KafkaStreamsMetrics(kafkaStreams).bindTo(registry);
如果 Spring 不管理您的 Kafka 组件,您为什么期望 spring.jmx.enabled=true
做任何事情?