25.4. Eclipse MicroProfile Metrics
Eclipse MicroProfile Metrics は、テクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
25.4.1. MicroProfile Metrics サブシステムについて
JBoss EAP では、microprofile-metrics-smallrye
サブシステムを使用して Eclipse MicroProfile Metrics 機能を提供する SmallRye Metrics コンポーネントが含まれるようになりました。このサブシステムは、JBoss EAP インスタンスのモニタリングデータを提供するために使用されます。これはデフォルトで有効です。
microprofile-metrics-smallrye
サブシステムは、スタンドアロン設定でのみ有効になります。
25.4.2. HTTP エンドポイントを使用したメトリクスの検証
メトリクスは JBoss EAP 管理インターフェイスで自動的に利用できるようになり、以下のコンテキストを使用できます。
-
/metrics/
: MicroProfile 3.0 仕様に指定されたメトリクスが含まれます。 -
/metrics/vendor
: メモリープールなどのベンダー固有のメトリクスが含まれます。 -
/metrics/application
: MicroProfile Metrics API を使用するデプロイしたアプリケーションおよびサブシステムのメトリクスが含まれます。
JBoss EAP サブシステムメトリクスは Prometheus 形式で公開されます。
メトリクス名はサブシステムと属性名に基づきます。たとえば、サブシステム undertow
は、アプリケーションデプロイメントのすべてのサーブレットのメトリクス属性 request-count
を公開します。このメトリクスの名前は jboss_undertow_request_count
です。接頭辞 jboss はメトリクスソースを特定するのに役立ちます。
EAP で公開されるメトリクスの一覧を表示するには、CLI で以下のコマンドを実行します。
$ curl -v http://localhost:9990/metrics | grep -i type
例: JAX-RS アプリケーションの要求数の取得
以下の例は、JBoss EAP にデプロイされた web サービスへのリクエスト数を検索する方法を示しています。この例では、helloworld-rs クイックスタートを web サービスとして使用します。クイックスタートを jboss-eap-quickstarts からダウンロードします。
helloworld-rs クイックスタートの request-count
メトリックを確認するには、以下の手順に従います。
undertow
サブシステムの統計を有効にします。統計が有効な状態でスタンドアロンサーバーを起動します。
$ ./standalone.sh -Dwildfly.statistics-enabled=true
既にサーバーが稼働している場合は、
undertow
サブシステムの統計を有効にします。/subsystem=undertow/:write-attribute(name=statistics-enabled,value=true)
helloworld-rs クイックスタートをデプロイします。
クイックスタートのルートディレクトリーに、Maven を使用して web アプリケーションをデプロイします。
$ mvn clean install wildfly:deploy
curl
コマンドを使用して CLI でhttp
エンドポイントをクエリーし、request_count
に対してフィルター処理を行います。$ curl -v http://localhost:9990/metrics | grep request_count
出力:
jboss_undertow_request_count_total{server="default-server",http_listener="default",} 0.0
返された属性値は
0.0
です。- Web ブラウザーで http://localhost:8080/helloworld-rs/ にあるクイックスタートにアクセスし、任意のリンクをクリックします。
CLI から
http
エンドポイントを再度クエリーします。$ curl -v http://localhost:9990/metrics | grep request_count
出力:
jboss_undertow_request_count_total{server="default-server",http_listener="default",} 1.0
値は
1.0
に更新されました。前回の 2 つの手順を繰り返して、要求数が正しく更新されていることを確認します。
25.4.3. 管理コンソールを使用した MicroProfile メトリクスの設定
管理コンソールでは、以下の設定を実行できます。
- メトリクスの公開を有効または無効にします。
- 公開されるメトリクスの接頭辞を編集します。
- セキュリティーを有効または無効にします。
- 必須でないフィールドを初期値またはデフォルト値にリセットします。
管理コンソールを使用して MicroProfile メトリクスを設定するには、以下の手順に従います。
-
管理コンソールにアクセスし、Configuration
Subsystems MicroProfile Metrics の順に移動して View をクリックし、MicroProfile Metrics ページを開きます。
25.4.4. HTTP エンドポイントの認証の有効化
metroics
コンテキストおよびすべてのサブコンテキストは、コンテキストのアクセスにユーザー許可を必須にするように設定できます。以下の手順は、このエンドポイントで認証を有効にします。
microprofile-metrics-smallrye
サブシステムでsecurity-enabled
属性をtrue
に設定します。/subsystem=microprofile-metrics-smallrye:write-attribute(name=security-enabled,value=true)
変更を反映するためにサーバーをリロードします。
reload
サブシステムが metrics
エンドポイントにアクセスを試みると、認証プロンプトが表示されるようになりました。