第17章 Red Hat Process Automation Manager の Prometheus メトリクスの監視


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

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

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

重要

Prometheus に対する Red Hat の サポートは、Red Hat 製品ドキュメントに記載の設定および設定の推奨事項に限定されます。

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

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

前提条件

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

手順

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

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

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

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

    prometheus.yaml ファイルの Scrape 設定

    scrape_configs:
      - job_name: 'kie-server'
        metrics_path: /SERVER_PATH/services/rest/metrics
        basicAuth:
          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"]

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

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

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

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

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

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

    REST クライアントの場合:

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

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

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

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

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

    Red Hat JBoss EAP での Red Hat Process Automation Manager の curl コマンド例

    curl -u 'baAdmin:password@1' -X GET "http://localhost:8080/kie-server/services/rest/metrics"

    Spring Boot での Red Hat Process Automation Manager の curl コマンド例

    curl -u 'baAdmin:password@1' -X GET "http://localhost:8080/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
    # HELP kie_server_case_started_total Kie Server Started Cases
    # TYPE kie_server_case_started_total counter
    kie_server_case_started_total{case_definition_id="itorders.orderhardware",} 1.0
    # HELP kie_server_case_running_total Kie Server Running Cases
    # TYPE kie_server_case_running_total gauge
    kie_server_case_running_total{case_definition_id="itorders.orderhardware",} 2.0
    # HELP kie_server_data_set_registered_total Kie Server Data Set Registered
    # TYPE kie_server_data_set_registered_total gauge
    kie_server_data_set_registered_total{name="jbpmProcessInstanceLogs::CUSTOM",uuid="jbpmProcessInstanceLogs",} 1.0
    kie_server_data_set_registered_total{name="jbpmRequestList::CUSTOM",uuid="jbpmRequestList",} 1.0
    kie_server_data_set_registered_total{name="tasksMonitoring::CUSTOM",uuid="tasksMonitoring",} 1.0
    kie_server_data_set_registered_total{name="jbpmHumanTasks::CUSTOM",uuid="jbpmHumanTasks",} 1.0
    kie_server_data_set_registered_total{name="jbpmHumanTasksWithUser::FILTERED_PO_TASK",uuid="jbpmHumanTasksWithUser",} 1.0
    kie_server_data_set_registered_total{name="jbpmHumanTasksWithVariables::CUSTOM",uuid="jbpmHumanTasksWithVariables",} 1.0
    kie_server_data_set_registered_total{name="jbpmProcessInstancesWithVariables::CUSTOM",uuid="jbpmProcessInstancesWithVariables",} 1.0
    kie_server_data_set_registered_total{name="jbpmProcessInstances::CUSTOM",uuid="jbpmProcessInstances",} 1.0
    kie_server_data_set_registered_total{name="jbpmExecutionErrorList::CUSTOM",uuid="jbpmExecutionErrorList",} 1.0
    kie_server_data_set_registered_total{name="processesMonitoring::CUSTOM",uuid="processesMonitoring",} 1.0
    kie_server_data_set_registered_total{name="jbpmHumanTasksWithAdmin::FILTERED_BA_TASK",uuid="jbpmHumanTasksWithAdmin",} 1.0
    # HELP kie_server_execution_error_total Kie Server Execution Errors
    # TYPE kie_server_execution_error_total counter
    # HELP kie_server_task_completed_total Kie Server Completed Tasks
    # TYPE kie_server_task_completed_total counter
    # HELP kie_server_container_running_total Kie Server Running Containers
    # TYPE kie_server_container_running_total gauge
    kie_server_container_running_total{container_id="itorders_1.0.0-SNAPSHOT",} 1.0
    # HELP kie_server_job_cancelled_total Kie Server Cancelled Jobs
    # TYPE kie_server_job_cancelled_total counter
    # HELP kie_server_process_instance_started_total Kie Server Started Process Instances
    # TYPE kie_server_process_instance_started_total counter
    kie_server_process_instance_started_total{container_id="itorders_1.0.0-SNAPSHOT",process_id="itorders.orderhardware",} 1.0
    # HELP solver_duration_seconds Time in seconds it took solver to solve the constraint problem
    # TYPE solver_duration_seconds summary
    # HELP kie_server_task_skipped_total Kie Server Skipped Tasks
    # TYPE kie_server_task_skipped_total counter
    # HELP kie_server_data_set_execution_time_seconds Kie Server Data Set Execution Time
    # TYPE kie_server_data_set_execution_time_seconds summary
    kie_server_data_set_execution_time_seconds_count{uuid="jbpmProcessInstances",} 8.0
    kie_server_data_set_execution_time_seconds_sum{uuid="jbpmProcessInstances",} 0.05600000000000001
    # HELP kie_server_job_scheduled_total Kie Server Started Jobs
    # TYPE kie_server_job_scheduled_total counter
    # HELP kie_server_data_set_execution_total Kie Server Data Set Execution
    # TYPE kie_server_data_set_execution_total counter
    kie_server_data_set_execution_total{uuid="jbpmProcessInstances",} 8.0
    # HELP kie_server_process_instance_completed_total Kie Server Completed Process Instances
    # TYPE kie_server_process_instance_completed_total counter
    # HELP kie_server_job_running_total Kie Server Running Jobs
    # TYPE kie_server_job_running_total gauge
    # HELP kie_server_task_failed_total Kie Server Failed Tasks
    # TYPE kie_server_task_failed_total counter
    # HELP kie_server_task_exited_total Kie Server Exited Tasks
    # TYPE kie_server_task_exited_total counter
    # HELP dmn_evaluate_decision_nanosecond DMN Evaluation Time
    # TYPE dmn_evaluate_decision_nanosecond histogram
    # HELP kie_server_data_set_lookups_total Kie Server Data Set Running Lookups
    # TYPE kie_server_data_set_lookups_total gauge
    kie_server_data_set_lookups_total{uuid="jbpmProcessInstances",} 0.0
    # HELP kie_server_process_instance_duration_seconds Kie Server Process Instances Duration
    # TYPE kie_server_process_instance_duration_seconds summary
    # HELP kie_server_case_duration_seconds Kie Server Case Duration
    # TYPE kie_server_case_duration_seconds summary
    # HELP dmn_evaluate_failed_count DMN Evaluation Failed
    # TYPE dmn_evaluate_failed_count counter
    # HELP kie_server_task_added_total Kie Server Added Tasks
    # TYPE kie_server_task_added_total counter
    kie_server_task_added_total{deployment_id="itorders_1.0.0-SNAPSHOT",process_id="itorders.orderhardware",task_name="Prepare hardware spec",} 1.0
    # HELP drl_match_fired_nanosecond Drools Firing Time
    # TYPE drl_match_fired_nanosecond histogram
    # HELP kie_server_container_started_total Kie Server Started Containers
    # TYPE kie_server_container_started_total counter
    kie_server_container_started_total{container_id="itorders_1.0.0-SNAPSHOT",} 1.0
    # HELP kie_server_process_instance_sla_violated_total Kie Server Process Instances SLA Violated
    # TYPE kie_server_process_instance_sla_violated_total counter
    # HELP kie_server_task_duration_seconds Kie Server Task Duration
    # TYPE kie_server_task_duration_seconds summary
    # HELP kie_server_job_executed_total Kie Server Executed Jobs
    # TYPE kie_server_job_executed_total counter
    # HELP kie_server_deployments_active_total Kie Server Active Deployments
    # TYPE kie_server_deployments_active_total gauge
    kie_server_deployments_active_total{deployment_id="itorders_1.0.0-SNAPSHOT",} 1.0
    # HELP kie_server_process_instance_running_total Kie Server Running Process Instances
    # TYPE kie_server_process_instance_running_total gauge
    kie_server_process_instance_running_total{container_id="itorders_1.0.0-SNAPSHOT",process_id="itorders.orderhardware",} 2.0
    # HELP solvers_running Number of solvers currently running
    # TYPE solvers_running gauge
    solvers_running 0.0
    # HELP kie_server_work_item_duration_seconds Kie Server Work Items Duration
    # TYPE kie_server_work_item_duration_seconds summary
    # HELP kie_server_job_duration_seconds Kie Server Job Duration
    # TYPE kie_server_job_duration_seconds summary
    # HELP solver_score_calculation_speed Number of moves per second for a particular solver solving the constraint problem
    # TYPE solver_score_calculation_speed summary
    # HELP kie_server_start_time Kie Server Start Time
    # TYPE kie_server_start_time gauge
    kie_server_start_time{name="sample-server",server_id="sample-server",location="http://localhost:8080/kie-server/services/rest/server",version="7.22.0-SNAPSHOT",} 1.557285486469E12

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

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

    図17.1 Prometheus の expression browser と Process Server メトリクス

    prometheus expression browser data

    図17.2 Prometheus の expression browser と Process Server ターゲット

    prometheus expression browser targets

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

    prometheus grafana data dmn

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

    prometheus grafana data optimizer

    図17.5 Grafana ダッシュボードとプロセス、ケースおよびタスクの Process Server メトリクス

    prometheus grafana data jbpm
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.