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

如何通过Spring Boot 3.2 Actuator暴露嵌入式ActiveMQ Artemis指标

问题描述

使用Spring Boot 3.2版本,希望通过Prometheus端点暴露嵌入式ActiveMQ Artemis的指标,但目前Prometheus端点未提供相关指标。已添加的依赖和配置如下:

已添加的依赖

implementation 'org.apache.activemq:artemis-jakarta-server'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-tracing-bridge-otel'

implementation 'org.springframework.boot:spring-boot-starter-artemis'
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'

已配置的application.properties

spring.artemis.mode=embedded
spring.artemis.password=test
spring.artemis.user=test
spring.artemis.embedded.enabled=true
spring.artemis.embedded.persistent=true
spring.artemis.embedded.data-directory=./mq-data
spring.artemis.embedded.cluster-password=test
spring.artemis.embedded.topics=module1.out.topic

management.endpoint.health.show-components=always
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=prometheus,health,hawtio
management.server.port=8090
解决方案

要使嵌入式ActiveMQ Artemis的指标暴露到Prometheus端点,需完成以下配置:

1. 添加Artemis-Micrometer集成依赖

Spring Boot的spring-boot-starter-artemis默认未包含Artemis与Micrometer的集成组件,需手动添加对应依赖:

implementation 'org.apache.activemq:artemis-micrometer-plugin'

注意:该依赖版本需与artemis-jakarta-server版本保持一致,避免版本冲突。

2. 配置嵌入式Artemis启用指标收集

创建EmbeddedArtemisConfigurationCustomizer类型的Bean,为嵌入式Artemis服务器绑定Micrometer注册表:

import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ;
import org.apache.activemq.artemis.metrics.plugin.ArtemisMetricsPlugin;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.boot.autoconfigure.jms.artemis.EmbeddedArtemisConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ArtemisMetricsConfig {

    @Bean
    public EmbeddedArtemisConfigurationCustomizer artemisMetricsCustomizer(MeterRegistry meterRegistry) {
        return configuration -> {
            ArtemisMetricsPlugin metricsPlugin = new ArtemisMetricsPlugin();
            metricsPlugin.setMeterRegistry(meterRegistry);
            configuration.setMetricsPlugin(metricsPlugin);
        };
    }
}

该Bean会在嵌入式Artemis启动时,将Micrometer的注册表注入到Artemis的指标插件中,让Artemis生成的指标能被Micrometer收集并传递到Prometheus端点。

3. 验证配置效果

启动应用后,访问Prometheus端点http://localhost:8090/actuator/prometheus,搜索artemis_前缀的指标(如artemis_messages_total、artemis_queue_size),确认指标已正常暴露。

额外注意事项

  • Spring Boot 3.2中引入micrometer-registry-prometheus后会自动配置Prometheus类型的MeterRegistry,无需手动创建。
  • 若使用自定义MeterRegistry配置,需确保Artemis插件能正确获取到该实例。

内容的提问来源于stack exchange,提问作者AverageLukas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:42:57