当前位置: 首页 > 知识库问答 >
问题:

带有Spring Boot的Apache Kafka JMX指标

田易安
2023-03-14

所有的,

我需要将 Apache Kafka 指标公开给Spring启动 (v 2.3.0.RELEASE) 致动器endpoint。

请注意,我没有使用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>

我已经试过这个< code > spring . JMX . enabled = true 了,但是好像没有用。我认为这是因为Spring没有管理Kafka。

有没有一种方法可以将这些JMX度量绑定到千分尺注册表?

我可以使用普罗米修斯提供的jmx-extor完成这项工作,但由于这需要在不同端口上运行的代理,我希望使用默认的千分尺和Spring启动来完成这项工作。

共有1个答案

谷梁裕
2023-03-14

您是否尝试过KafkaClientMetricsKafkaStreamsMetricsKafka消费者度量Kafka消费者度量通过JMX收集指标,但已弃用以支持KafkaClientMetrics

您只需要创建它们并绑定到您的注册表:

KafkaConsumer<String, String> consumer;
KafkaProducer<String, String> producer;
MeterRegistry registry;

...

new KafkaClientMetrics(consumer).bindTo(registry);
new KafkaClientMetrics(producer).bindTo(registry);

类似地,对于<code>KafkaStreams<code>:

new KafkaStreamsMetrics(kafkaStreams).bindTo(registry);

如果Spring不管理您的Kafka组件,那么为什么期望<code>Spring.jmx。enabled=true是否执行任何操作?

 类似资料:
  • 我正在尝试将vaadin与spring(没有Spring Boot)和基于java注释的spring部分配置结合起来。 自动连接似乎适用于vaadin ui部分,但不适用于“自定义ui类”(例如,“公共类LoginScreen扩展自定义组件”)。我在SysOut上得到一个NPE或一个空对象。 此外,我注意到“@ComponentScan(base Packages={"net.myapp"})”没

  • 问题内容: 我必须在SpringBoot应用程序中使用@PathValiable从URL获取参数。这些参数通常带有 斜线 。我无法控制用户在URL中输入的内容,因此我想获取他输入的内容,然后我就可以对其进行处理。 我已经在这里浏览过材料和答案,我认为对我而言,好的解决方案不是要求用户以某种方式对输入的参数进行编码。 SpringBoot代码很简单: 因此,URL如下所示: 问题在于,参数 modu

  • 我必须在SpringBoot应用程序中使用@PathValiable从URL获取参数。这些参数通常有斜线。我没有一个关于用户将输入URL的控制,所以我想要得到他输入的内容,然后我可以处理它。 我已经看过了这里的资料和答案,我不认为对我来说,好的解决方案是要求用户以某种方式编码输入参数。

  • 有没有办法绕过授权?

  • 在下面的代码中,我有时会将设置为null。此时,它抛出错误为“could not extract resultset;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammarexception:could not extract resultset” 即使为空,我如何获取数据。总有一天约会就要来了。这是怎么做的? null

  • 我正在自己配置Spring Boot应用程序,以运行两个数据库(两个transactionManager相同)。MariaDB和MongoDb。在@Repository中,我已经用@PersistenceContext使用了@Autowired,注释@Transactional正在正确地使用TransactionManager。但对我来说,最有用的是在@Services层上添加@Transacio