4.2. 指标功能


使用 Micrometer 收集指标。

重要

CXF Metrics 功能 不同,这个 Quarkus CXF 扩展不支持 Dropwizard Metrics。仅支持 Micrometer。

4.2.1. Maven 协调

code.quarkus.redhat.com 上使用 quarkus-cxf-rt-features-metrics 创建新项目,或将这些协调添加到现有项目中:

<dependency>
    <groupId>io.quarkiverse.cxf</groupId>
    <artifactId>quarkus-cxf-rt-features-metrics</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

4.2.2. 使用方法

CXF 集成到 Quarkus Micrometer 生态系统中的集成是使用 io.quarkiverse.cxf.metrics.QuarkusCxfMetricsFeature 实施的。只要您的应用程序依赖于 quarkus-cxf-rt-features-metrics,在内部为 Quarkus CXF 创建并默认启用 QuarkusCxfMetricsFeature 实例。您可以通过 quarkus.cxf.metrics.enabled-for,quarkus.cxf.client."client-name".metrics.enabledquarkus.cxf.endpoint."/endpoint-path".metrics.enabled 属性禁用它。

4.2.2.1. runnable 示例

在 Quarkus CXF 源树中有一个涵盖 Micrometer Metrics 的集成测试。https://github.com/quarkiverse/quarkus-cxf/tree/main/integration-tests/metrics

不正常,它依赖于 quarkus-cxf-rt-features-metrics

pom.xml

<dependency>
    <groupId>io.quarkiverse.cxf</groupId>
    <artifactId>quarkus-cxf-rt-features-metrics</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

它使用 quarkus-micrometer-registry-prometheus 扩展来导出 JSON 格式和 Prometheus 的指标:

pom.xml

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-micrometer-registry-prometheus</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

需要以下配置才能检查通过 REST 端点收集的指标:

application.properties

quarkus.micrometer.export.json.enabled = true
quarkus.micrometer.export.json.path = metrics/json
quarkus.micrometer.export.prometheus.path = metrics/prometheus
Copy to Clipboard Toggle word wrap

使用以上所有设置,您可以在 Dev 模式中启动应用程序:

$ mvn quarkus:dev
Copy to Clipboard Toggle word wrap

现在,向 HelloService 发送请求:

$ curl \
  -d '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:helloResponse xmlns:ns2="http://it.server.metrics.cxf.quarkiverse.io/"><return>Hello Joe!</return></ns2:helloResponse></soap:Body></soap:Envelope>' \
  -H 'Content-Type: text/xml' \
  -X POST \
  http://localhost:8080/metrics/client/hello
Copy to Clipboard Toggle word wrap

之后,您应该在上述配置的端点的输出中看到 cxf.server.requests 下的一些指标:

$ curl http://localhost:8080/q/metrics/json
metrics: {
    ...
    "cxf.server.requests": {
        "count;exception=None;faultCode=None;method=POST;operation=hello;outcome=SUCCESS;status=200;uri=/soap/hello": 2,
        "elapsedTime;exception=None;faultCode=None;method=POST;operation=hello;outcome=SUCCESS;status=200;uri=/soap/hello": 64.0
    },
    ...
}
Copy to Clipboard Toggle word wrap

4.2.3. 配置

lock 在构建时修复的配置属性。所有其他配置属性可在运行时覆盖。

Expand
配置属性类型default

quarkus.cxf.metrics.enabled-for

客户端,services,both,none

两者

指定是否为客户端、服务(包括 或 none)启用指标集合。此全局设置可以分别使用 quarkus.cxf.client."client-name".metrics.enabledquarkus.cxf.endpoint."/endpoint-path".metrics.enabled 选项覆盖每个客户端或服务端点。

环境变量:QUARKUS_CXF_METRICS_ENABLED_FOR
Since Quarkus CXF: 2.7.0

quarkus.cxf.metrics.tags-customizers

字符串列表

 

org.apache.cxf.metrics.micrometer.provider.TagsCustomizer Bean 的引用 列表,它将附加到全局指标功能。

环境变量:QUARKUS_CXF_METRICS_TAGS_CUSTOMIZERS
Since Quarkus CXF: 3.15.0

quarkus.cxf.client."client-name".metrics.enabled

布尔值

true

如果为 true,如果 quarkus.cxf.metrics.enabled-for 设为 这两个 或客户端,则 MetricsFeature 将添加到此客户端中;否则,该功能不会添加到此客户端。

环境变量:QUARKUS_CXF_CLIENT__CLIENT_NAME__METRICS_ENABLED
Since Quarkus CXF: 2.7.0

quarkus.cxf.endpoint."/endpoint-path".metrics.enabled

布尔值

true

如果为 true,如果 quarkus.cxf.metrics.enabled-for 设为 这两个 或服务,则 MetricsFeature 将添加到此服务端点中;否则,这个功能不会添加到此服务端点中。

环境变量:QUARKUS_CXF_ENDPOINT___ENDPOINT_PATH__METRICS_ENABLED
Since Quarkus CXF: 2.7.0

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部