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

Quarkus 2.11.x移除microprofile-metrics-api,迁移时Gauge注解缺失求助

解决Quarkus 2.11.x迁移中@Gauge注解缺失的问题

Quarkus 2.11.x版本升级到了MicroProfile Metrics 4.0,而你之前使用的org.eclipse.microprofile.metrics.annotation.Gauge注解在这个版本中已被移除,这是导致问题的核心原因。

替代方案

有两种主要方式可以替换原有的@Gauge功能:

1. 使用@Metric注解(注解式)

将原来的@Gauge替换为@Metric注解,可指定type = MetricType.GAUGE(无参数且返回非void的方法默认会被识别为Gauge,该参数可选)。示例:

原来的代码:

import org.eclipse.microprofile.metrics.annotation.Gauge;

@Gauge(name = "activeConnections", tags = {"service=database"})
public int getActiveConnections() {
    return databaseConnectionPool.getActiveCount();
}

替换后的代码:

import org.eclipse.microprofile.metrics.MetricType;
import org.eclipse.microprofile.metrics.annotation.Metric;

@Metric(name = "activeConnections", tags = {"service=database"}, type = MetricType.GAUGE)
public int getActiveConnections() {
    return databaseConnectionPool.getActiveCount();
}

2. 编程式注册Gauge

如果需要更灵活的控制,可以通过注入MetricRegistry手动注册Gauge:

import org.eclipse.microprofile.metrics.Gauge;
import org.eclipse.microprofile.metrics.MetricRegistry;
import jakarta.inject.Inject;
import jakarta.annotation.PostConstruct;

public class DatabaseMetrics {

    @Inject
    MetricRegistry registry;

    private DatabaseConnectionPool databaseConnectionPool;

    @PostConstruct
    public void initGauge() {
        registry.register("activeConnections", 
            Gauge.of(() -> databaseConnectionPool.getActiveCount()));
    }
}

关键说明

  • Quarkus 2.11.x的BOM会自动将microprofile-metrics-api升级到4.0版本,无需手动修改依赖版本。
  • MicroProfile Metrics 4.0中移除了@Gauge、@ConcurrentGauge等专用注解,统一通过@Metric注解或编程式API实现各类度量指标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:01:55