You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Spring Boot获取Kafka指定主题的消息数量指标

解决Spring Boot Kafka消费者主题级消息计数指标问题

问题分析

你已配置生产者的Micrometer监听器,但消费者端仅能查看总消息计数,无法获取指定主题xxx的消息接收量,核心原因是消费者的Micrometer监听器未正确配置,或默认指标未开启主题维度标签。

具体配置调整步骤

1. 为消费者工厂绑定Micrometer监听器

和生产者配置逻辑一致,需要给消费者工厂添加MicrometerConsumerListener,确保消费者指标被采集:

@Bean
public ConsumerFactory<String, Object> consumerFactory(MeterRegistry meterRegistry) {
    Map<String, Object> configProps = new HashMap<>();
    // 此处添加你的Kafka消费者基础配置(如bootstrap.servers、group.id等)
    DefaultKafkaConsumerFactory<String, Object> factory = new DefaultKafkaConsumerFactory<>(configProps);
    // 绑定Micrometer消费者监听器
    factory.addListener(new MicrometerConsumerListener<>(meterRegistry));
    return factory;
}

2. 开启主题维度的指标标签

默认情况下,Micrometer的Kafka消费者指标不会自动携带主题标签,需通过配置开启:
在application.yml中添加:

management:
  metrics:
    tags:
      kafka.consumer:
        topic: true

或application.properties格式:

management.metrics.tags.kafka.consumer.topic=true

该配置会让消费者的消息计数指标(如kafka_consumer_records_consumed_total)带上topic标签,从而可以筛选出指定主题xxx的消息接收量。

3. 验证指标效果

配置完成后重启应用,访问Actuator的metrics端点(默认路径/actuator/metrics),查询kafka_consumer_records_consumed_total指标,就能看到包含topic="xxx"标签的维度数据,示例如下:

kafka_consumer_records_consumed_total{client_id="consumer-xxx-group-1",kafka_version="2.7.1",spring_id="consumerFactory.consumer-xxx-group-1",topic="xxx",} 100.0

额外说明

  • 若使用Spring Cloud Stream,可通过spring.cloud.stream.metrics.binding.enabled=true开启绑定级指标,更细粒度跟踪每个消费者绑定的主题消息量。
  • 确保Micrometer与Spring Kafka版本兼容,避免因版本差异导致指标采集异常。

内容的提问来源于stack exchange,提问作者Никита Д

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:37:28