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

WildFly 25环境下MicroProfile Metrics自定义指标无法展示问题咨询

问题排查与解决步骤

1. 优先解决子系统冲突问题(对应多路径返回一致、请求头不生效问题)

你当前standalone.xml中同时配置了两套互相冲突的指标扩展:

  • 遗留的WildFly自有指标扩展:org.wildfly.extension.metrics、org.wildfly.extension.health
  • MicroProfile标准指标实现:org.wildfly.extension.microprofile.metrics-smallrye、org.wildfly.extension.microprofile.health-smallrye
    两套扩展会抢占/metrics端点的处理权,其中遗留扩展不支持分scope查询、也不支持展示自定义应用指标,直接导致你遇到的三个路径返回内容相同、自定义指标不显示的问题。
    解决方法:删除standalone.xml中以下两行配置,保留所有microprofile前缀的扩展即可:
<extension module="org.wildfly.extension.health"/>
<extension module="org.wildfly.extension.metrics"/>

2. 修复请求头拼写错误

官方指南要求的请求头是Accept: application/json,你使用的Accepted多了末尾的d,属于无效请求头,服务端会直接忽略,默认返回Prometheus格式的指标数据,修正请求头即可返回JSON格式内容。

3. 解决EE8版本NoClassDefFoundError问题

WildFly 25 普通Jakarta EE 8发行版默认未预装MicroProfile扩展栈,仅手动添加扩展配置无法加载对应模块。
解决方法二选一:

  • 直接下载WildFly 25的MicroProfile专属EE8发行版,预装了全部MicroProfile规范实现,无需额外配置扩展,且可以保留你现有的javax命名空间代码不用修改
  • 继续使用EE9 Preview发行版,无需调整扩展配置,但需要适配命名空间

4. 修复EE9版本自定义指标不显示问题

EE9及以上版本全面切换为Jakarta命名空间,你当前的依赖和代码存在命名空间混用问题:

  • 现有依赖中的org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec属于javax命名空间,仅兼容EE8版本
  • 代码中如果使用javax.ws.rs.*、javax.enterprise.*等javax开头的导入,EE9版本不会扫描识别对应的JAX-RS端点和CDI Bean,导致自定义指标没有被注册
    解决方法:
    如果使用EE9 Preview版本,将JAX-RS依赖替换为Jakarta版本:
<dependency>
  <groupId>jakarta.ws.rs</groupId>
  <artifactId>jakarta.ws.rs-api</artifactId>
  <scope>provided</scope>
</dependency>

同时将代码中所有javax开头的导入替换为对应的jakarta开头导入。

5. 自定义指标校验规则

确保你的指标实现符合以下要求:

  • 指标所在的类为CDI托管Bean,添加了@ApplicationScoped/@RequestScoped等CDI作用域注解
  • 指标注解(@Counted/@Gauge/@Timed等)添加在public方法上,且方法会被正常调用触发指标更新
  • 自定义指标默认在/metrics/application路径下展示,确认访问路径正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:18:03