第13章 Red Hat Decision Manager の Prometheus メトリクスのモニターリング


Prometheus は、オープンソースのシステムモニターリングツールキットで、Red Hat Decision Manager と連携して、ビジネスルール、プロセス、Decision Model and Notation (DMN) モデル、その他の Red Hat Decision Manager アセットの実行に関するメトリクスを収集して保存できます。Decision Server への REST API 呼び出しや、Prometheus 表現ブラウザー、Grafana などのデータグラフツールを使用して 、保存したメトリクスにアクセスできます。

オンプレミスの Decision Server、Spring Boot の Decision Server、Red Hat OpenShift Container Platform の Decision Server デプロイメントに、Prometheus メトリクス監視を設定できます。

Decision Server が Prometheus を使用して公開するメトリクスで、利用可能なものの一覧については、Red Hat カスタマーポータル から Red Hat Decision Manager 7.4.0 Source Distribution をダウンロードし、~/rhdm-7.4.0-sources/src/droolsjbpm-integration-$VERSION/kie-server-parent/kie-server-services/kie-server-services-prometheus/src/main/java/org/kie/server/services/prometheus に移動してください。

13.1. Decision Server のモニターリングを行う Prometheus メトリクスの設定

Decision Server インスタンスが Prometheus を使用し、Red Hat Decision Manager でのビジネスアセットアクティビティーに関連するメトリクスを収集して保存するように設定できます。Decision Server が Prometheus を使用して公開するメトリクスで、利用可能なものの一覧については、Red Hat カスタマーポータル から Red Hat Decision Manager 7.4.0 Source Distribution をダウンロードし、~/rhdm-7.4.0-sources/src/droolsjbpm-integration-$VERSION/kie-server-parent/kie-server-services/kie-server-services-prometheus/src/main/java/org/kie/server/services/prometheus に移動してください。

前提条件

  • Decision Server がインストールされている。
  • kie-server ユーザーロールで Decision Server にアクセスできる。
  • Prometheus がインストールされている。Prometheus のダウンロードおよび使用に関する情報は、Prometheus ドキュメントページ を参照してください。

手順

  1. Decision Server インスタンスで、org.kie.prometheus.server.ext.disabled システムプロパティーを false に設定して、Prometheus 拡張機能を有効にします。このプロパティーは、Decision Server の起動時、または Red Hat Decision Manager ディストリビューションの standalone.xml または standalone-full.xml ファイルで定義できます。
  2. Spring Boot で Red Hat Decision Manager を実行している場合には、Maven プロジェクトの pom.xml ファイルに次の依存関係を追加し、application.properties システムプロパティーで必要なキーを設定します。

    Prometheus の Spring Boot pom.xml 依存関係

    <dependency>
      <groupId>org.kie.server</groupId>
      <artifactId>kie-server-services-prometheus</artifactId>
      <version>${rhdm.version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.kie.server</groupId>
      <artifactId>kie-server-rest-prometheus</artifactId>
      <version>${rhdm.version}</version>
    </dependency>

    Red Hat Decision Manager および Prometheus の Spring Boot application.properties キー

    kieserver.drools.enabled=true
    kieserver.dmn.enabled=true
    kieserver.prometheus.enabled=true

  3. Prometheus ディストリビューションの prometheus.yaml ファイルで、scrape_configs セクションに以下の設定を追加して、Prometheus が Decision Server からメトリクスを収集 (scrape) するように設定します。

    prometheus.yaml ファイルの Scrape 設定

    scrape_configs:
      job_name: 'kie-server'
    metrics_path: /SERVER_PATH/services/rest/metrics
    Basic_auth:
    username: USER_NAME
    password: PASSWORD
    static_configs:
      - targets: ["HOST:PORT"]

    Spring Boot の prometheus.yaml ファイルでの Scrape 設定 (該当する場合)

    scrape_configs:
      job_name: 'kie'
    metrics_path: /rest/metrics
    static_configs:
    - targets: ["HOST:PORT"]

    Decision Server の場所と設定に合わせて、値を置き換えます。

  4. Decision Server インスタンスを起動します。

    Red Hat JBoss EAP での Red Hat Decision Manager の起動コマンド例

    $ cd ~/EAP_HOME/bin
    $ ./standalone.sh --c standalone-full.xml

    設定済みの Decision Server インスタンスを起動すると、Prometheus はメトリクスの収集を開始し、Decision Server はメトリクスを REST API エンドポイント http://HOST:PORT/SERVER/services/rest/metrics (または Spring Boot では http://HOST:PORT/rest/metrics) に公開します。

  5. REST クライアントまたは curl ユーティリティーで、以下のコンポーネントを含む REST API 要求を送信し、Decision Server がメトリクスを公開していることを確認します。

    REST クライアントの場合:

    • Authentication: kie-server ロールを持つ Decision Server ユーザーのユーザー名とパスワードを入力します。
    • HTTP Headers: 以下のヘッダーを設定します。

      • Accept: application/json
    • HTTP method: GET に設定します。
    • URL: Decision Server REST API ベース URL とメトリクスエンドポイントを入力します。たとえば、http://localhost:8080/kie-server/services/rest/metrics (または Spring Boot では http://localhost:8080/rest/metrics) となります。

    curl ユーティリティーの場合:

    • -u: kie-server ロールを持つ Decision Server ユーザーのユーザー名とパスワードを入力します。
    • -H: 以下のヘッダーを設定します。

      • accept: application/json
    • -X: GET に設定します。
    • URL: Decision Server REST API ベース URL とメトリクスエンドポイントを入力します。たとえば、http://localhost:8080/kie-server/services/rest/metrics (または Spring Boot では http://localhost:8080/rest/metrics) となります。
    curl -u 'baAdmin:password@1' -H "accept: application/json" -X GET "http://localhost:8080/kie-server/services/rest/metrics"

    サーバーの応答例

    # HELP kie_server_container_started_total Kie Server Started Containers
    # TYPE kie_server_container_started_total counter
    kie_server_container_started_total{container_id="task-assignment-kjar-1.0",} 1.0
    # HELP solvers_running Number of solvers currently running
    # TYPE solvers_running gauge
    solvers_running 0.0
    # HELP dmn_evaluate_decision_nanosecond DMN Evaluation Time
    # TYPE dmn_evaluate_decision_nanosecond histogram
    # HELP solver_duration_seconds Time in seconds it took solver to solve the constraint problem
    # TYPE solver_duration_seconds summary
    solver_duration_seconds_count{solver_id="100tasks-5employees.xml",} 1.0
    solver_duration_seconds_sum{solver_id="100tasks-5employees.xml",} 179.828255925
    solver_duration_seconds_count{solver_id="24tasks-8employees.xml",} 1.0
    solver_duration_seconds_sum{solver_id="24tasks-8employees.xml",} 179.995759653
    # HELP drl_match_fired_nanosecond Drools Firing Time
    # TYPE drl_match_fired_nanosecond histogram
    # HELP dmn_evaluate_failed_count DMN Evaluation Failed
    # TYPE dmn_evaluate_failed_count counter
    # HELP kie_server_start_time Kie Server Start Time
    # TYPE kie_server_start_time gauge
    kie_server_start_time{name="myapp-kieserver",server_id="myapp-kieserver",location="http://myapp-kieserver-demo-monitoring.127.0.0.1.nip.io:80/services/rest/server",version="7.4.0.redhat-20190428",} 1.557221271502E12
    # HELP kie_server_container_running_total Kie Server Running Containers
    # TYPE kie_server_container_running_total gauge
    kie_server_container_running_total{container_id="task-assignment-kjar-1.0",} 1.0
    # HELP solver_score_calculation_speed Number of moves per second for a particular solver solving the constraint problem
    # TYPE solver_score_calculation_speed summary
    solver_score_calculation_speed_count{solver_id="100tasks-5employees.xml",} 1.0
    solver_score_calculation_speed_sum{solver_id="100tasks-5employees.xml",} 6997.0
    solver_score_calculation_speed_count{solver_id="24tasks-8employees.xml",} 1.0
    solver_score_calculation_speed_sum{solver_id="24tasks-8employees.xml",} 19772.0

    Decision Server でメトリクスが利用できない場合には、このセクションで説明されている Decision Server および Prometheus の設定を確認します。

    また、http://HOST:PORT/graph の Prometheus の expression browser で収集したメトリクスと対話したり、Prometheus データソースを Grafana などのデータグラフ作成ツールと統合したりすることもできます。

    図13.1 Prometheus expression browser と Decision Server メトリクス

    prometheus expression browser data

    図13.2 Prometheus expression browser と Decision Server ターゲット

    prometheus expression browser targets

    図13.3 Grafana ダッシュボードと DMN モデルの Decision Server メトリクス

    prometheus grafana data dmn

    図13.4 Grafana ダッシュボードとソルバーの Decision Server メトリクス

    prometheus grafana data optimizer
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る