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>
4.2.2. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
CXF の Quarkus Micrometer エコシステムへのインテグレーションは、io.quarkiverse.cxf.metrics.QuarkusCxfMetricsFeature を使用して実装されます。アプリケーションが quarkus-cxf-rt-features-metrics に依存している限り、QuarkusCxfMetricsFeature のインスタンスが内部的に作成され、Quarkus CXF によって作成されたすべてのクライアントとサービスエンドポイントに対してデフォルトで有効になります。以下に記載されている quarkus.cxf.metrics.enabled-for、quarkus.cxf.client."client-name".metrics.enabled および quarkus.cxf.endpoint."/endpoint-path".metrics.enabled プロパティーを使用して無効にできます。
4.2.2.1. 実行可能な例 リンクのコピーリンクがクリップボードにコピーされました!
Quarkus CXF ソースツリーには、Micrometer Metrics を対象とする integration test があります。
当然のことながら、これは quarkus-cxf-rt-features-metrics に依存します。
pom.xml
<dependency>
<groupId>io.quarkiverse.cxf</groupId>
<artifactId>quarkus-cxf-rt-features-metrics</artifactId>
</dependency>
quarkus-micrometer-registry-prometheus エクステンションを使用して、メトリクスを JSON 形式でエクスポートします。Prometheus の場合は次のとおりとなります。
pom.xml
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer-registry-prometheus</artifactId>
</dependency>
REST エンドポイント経由で収集されたメトリクスを検査するには、次の設定が必要です。
application.properties
quarkus.micrometer.export.json.enabled = true
quarkus.micrometer.export.json.path = metrics/json
quarkus.micrometer.export.prometheus.path = metrics/prometheus
上記をすべて完了すると、アプリケーションを開発モードで起動できます。
$ mvn quarkus:dev
ここで、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
その後、上記で設定したエンドポイントの出力の 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
},
...
}
4.2.3. 設定 リンクのコピーリンクがクリップボードにコピーされました!
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。
| 設定プロパティー | 型 | デフォルト |
|---|---|---|
|
|
| |
|
メトリクス収集を有効にする対象 (クライアント、サービス、両方、該当なし) を指定します。このグローバル設定は
環境変数: | ||
|
| ||
|
グローバルメトリクス機能にアタッチされる
環境変数: | ||
|
|
| |
|
環境変数: | ||
|
|
| |
|
環境変数: | ||