提问者:小点点

MicroProfile指标在Wildfly 25上不显示自定义指标


我正在试验Javax/JaxR,并且我正在使用我不太熟悉的WildFly 25服务器。

在寻找类似于Spring's Actuator的东西时,我偶然发现了指标

但是,无论我做什么,这些自定义终结点都不会在默认http://localhost:9990/metricsURL下公开。

我正在遵循GitHub存储库下WildFly提供的指南:https://github.com/wildfly/quickstart/tree/main/microprofile-metrics

教程中有一些“危险信号”,似乎不适合我尝试做的任何事情。

  1. 指南建议,如果我们想获取JSON格式的指标,我们需要使用以下标头:"接受:application/json",它仍然返回默认的Prometheus格式,Postman和Curl都是如此。
  2. 该指南还建议metrics/供应商、metrics/application、metrics/base返回不同范围的指标,在我的测试中,它们都返回相同的指标。

就教程代码而言,我尝试在JakartaEE上运行它

神器microprofile-metrics:战争爆炸:java. lang.Exception:{"WFLYCTL0080:失败的服务"=

我尝试用不同版本的Java(1.8、11、17)编译代码,希望它能解决问题,但无济于事。

但是,使用WildFly预览版EE9.1发行版似乎停止抛出错误,但自定义指标仍然不起作用。

在我尝试期间,我向这两个发行版添加了一些子系统(取自标准化. xml):

    <extension module="org.wildfly.extension.health"/>
    <extension module="org.wildfly.extension.metrics"/>
    <extension module="org.wildfly.extension.microprofile.config-smallrye"/>
    <extension module="org.wildfly.extension.microprofile.fault-tolerance-smallrye"/>
    <extension module="org.wildfly.extension.microprofile.health-smallrye"/>
    <extension module="org.wildfly.extension.microprofile.jwt-smallrye"/>
    <extension module="org.wildfly.extension.microprofile.metrics-smallrye"/>
    <extension module="org.wildfly.extension.microprofile.openapi-smallrye"/>
    <extension module="org.wildfly.extension.microprofile.opentracing-smallrye"/>
    <extension module="org.wildfly.extension.undertow"/>

(为简洁起见,其他省略)

我还尝试通过创建以下蝙蝠并启动它来启用统计信息:

call standalone.bat -Dwildfly.statistics-enabled=true

(“启用统计”选项已添加到VM选项中

以下是我使用的依赖项,基于我的服务器版本:

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.wildfly.bom</groupId>
        <artifactId>wildfly-microprofile</artifactId>
        <version>25.0.0.Final</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.wildfly.bom</groupId>
        <artifactId>wildfly-jakartaee8-with-tools</artifactId>
        <version>25.0.0.Final</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

<dependencies>
    <!-- Import the MicroProfile Metrics API, we use provided scope as the API is included in the server -->
    <dependency>
      <groupId>org.eclipse.microprofile.metrics</groupId>
      <artifactId>microprofile-metrics-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- Import the CDI API, we use provided scope as the API is included in the server -->
    <dependency>
      <groupId>jakarta.enterprise</groupId>
      <artifactId>jakarta.enterprise.cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- Import the Jakarta REST API, we use provided scope as the API is included in the server -->
    <dependency>
      <groupId>org.jboss.spec.javax.ws.rs</groupId>
      <artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

共1个答案

匿名用户

约翰。我是WildFly的度量/MP度量组件负责人,所以希望我能帮你解决问题。

在我对挖掘WF源代码过于兴奋之前,您能确认您使用的是哪个配置吗?看起来您使用的是标准. xml配置。虽然它确实有一个指标扩展,但它不是MP指标。为此,您需要使用独立-microprofile.xml。

希望你的问题就这么简单。如果没有,请告诉我,我们会深入研究。:)