3.6. Eclipse MicroProfile Metrics 管理

3.6.1. 管理インターフェイスで利用可能なメトリック

JBoss EAP サブシステムメトリクスは Prometheus 形式で公開されます。

メトリクスは JBoss EAP 管理インターフェイスで自動的に利用できるようになり、以下のコンテキストを使用できます。

  • /metrics/: MicroProfile 3.0 仕様に指定されたメトリクスが含まれます。
  • /metrics/vendor: メモリープールなどのベンダー固有のメトリクスが含まれます。
  • /metrics/application: MicroProfile Metrics API を使用するデプロイしたアプリケーションおよびサブシステムのメトリクスが含まれます。

メトリクス名はサブシステムと属性名に基づきます。たとえば、サブシステム undertow は、アプリケーションデプロイメントのすべてのサーブレットのメトリクス属性 request-count を公開します。このメトリクスの名前は jboss_undertow_request_count です。接頭辞 jboss は JBoss EAP をメトリクスのソースとして識別します。

3.6.2. HTTP エンドポイントを使用したメトリクスの検証

HTTP エンドポイントを使用して JBoss EAP 管理インターフェイスで利用可能なメトリクスを確認します。

手順

  • curl コマンドを使用します。

    $ curl -v http://localhost:9990/metrics | grep -i type

3.6.3. Eclipse MicroProfile Metrics HTTP エンドポイントの認証の有効化

ユーザーによるコンテキストのアクセスの承認を要求するように metrics コンテキストを設定します。この設定は、metrics コンテキストのすべてのサブコンテキストに拡張されます。

手順

  1. microprofile-metrics-smallrye サブシステムで security-enabled 属性を true に設定します。

    /subsystem=microprofile-metrics-smallrye:write-attribute(name=security-enabled,value=true)
  2. 変更を反映するためにサーバーをリロードします。

    reload

metrics エンドポイントにアクセスしようとすると、認証プロンプトが表示されるようになります。

3.6.4. Web サービスの要求数の取得

要求カウントメトリクスを公開する Web サービスの要求数を取得します。

以下の手順では、リクエスト数を取得するために helloworld-rs クイックスタートを Web サービスとして使用します。クイックスタートは jboss-eap-quickstarts からクイックスタートをダウンロードします。

前提条件

  • Web サービスが要求数を公開している。

手順

  1. undertow サブシステムの統計を有効にします。

    • 統計が有効な状態でスタンドアロンサーバーを起動します。

      $ ./standalone.sh -Dwildfly.statistics-enabled=true
    • 既にサーバーが稼働している場合は、undertow サブシステムの統計を有効にします。

      /subsystem=undertow:write-attribute(name=statistics-enabled,value=true)
  2. helloworld-rs クイックスタートをデプロイします。

    • クイックスタートのルートディレクトリーに、Maven を使用して web アプリケーションをデプロイします。

      $ mvn clean install wildfly:deploy
  3. 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 です。

  4. Web ブラウザーで http://localhost:8080/helloworld-rs/ にあるクイックスタートにアクセスし、任意のリンクをクリックします。
  5. 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 つの手順を繰り返して、要求数が更新されていることを確認します。