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

Quarkus 3.2.3中Reactive Routes的Prometheus指标收集问题

解决Quarkus响应式路由端点未出现在Prometheus指标中的问题

1. 先检查基础配置与依赖

确保quarkus-micrometer-registry-prometheus依赖正确引入,然后在application.properties中开启Vert.x Web的监控支持(默认不会自动采集响应式路由指标):

# 开启Vert.x Web的Micrometer监控采集
quarkus.micrometer.vertx-web.enabled=true
# 启用Prometheus指标导出
quarkus.micrometer.export.prometheus.enabled=true
# 配置Prometheus指标暴露路径
quarkus.micrometer.export.prometheus.path=/q/metrics

2. 配置不生效?手动添加指标拦截器

如果上述配置仍未生效,可以通过全局路由拦截器手动为@Route端点采集指标:

import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Timer;
import io.quarkus.vertx.web.RouteFilter;
import io.vertx.ext.web.RoutingContext;
import jakarta.inject.Inject;

public class RouteMetricsInterceptor {

    @Inject
    MeterRegistry meterRegistry;

    @RouteFilter(100) // 设置高优先级,确保在业务逻辑前执行
    public void recordRequestMetrics(RoutingContext ctx) {
        String requestMethod = ctx.request().method().name();
        // 剔除查询参数,避免不同参数值生成重复指标
        String cleanPath = ctx.normalizedPath().contains("?") 
                            ? ctx.normalizedPath().split("\\?")[0] 
                            : ctx.normalizedPath();
        
        Timer.Sample timerSample = Timer.start(meterRegistry);

        // 请求结束后记录指标
        ctx.addEndHandler(v -> {
            int responseStatus = ctx.response().getStatusCode();
            timerSample.stop(Timer.builder("http.server.requests")
                    .tag("method", requestMethod)
                    .tag("uri", cleanPath)
                    .tag("status", String.valueOf(responseStatus))
                    .register(meterRegistry));
        });

        ctx.next();
    }
}

3. 验证指标是否生成

启动应用后,直接访问/q/metrics端点,搜索http_server_requests指标,查看是否包含/something路径对应的条目。若仍未出现,检查拦截器是否在Quarkus扫描范围内(需放在应用包路径下),或是否有其他路由过滤器优先级冲突。


内容的提问来源于stack exchange,提问作者Денис Анд

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:47:08