APIによる実行中のプロセス一覧の取得
【環境】
ご利用中の Kompira のバージョン:Kompira Enterprise 1.6.8 post1
Kompira をインストールしているサーバのOS・バージョン:RHEL8 with HA
システム構成(冗長構成か否かなど):AWS上のALB/NLBによる冗長構成
連携対象機器の情報(機器種別/OS/NW構成など):RHEL8互換OSからのHTTPS or HTTPアクセス(curl or python requests)を想定
【ご質問】
現在原因は不明なのですが、Kompoira Enterpriseにおいてジョブの起動は行われるもののその後の処理は行われずジョブが滞留してしまう事象があります。
そのため、この事象が発生すると気が付いたときには分単位で定期実行するジョブが大量に「プロセス一覧」画面の「実行中」タブを埋め尽くしているということがあります。
その原因の確認は別途確認していきたいと思ってはいるものの、ワークアラウンドとして
上記のように「プロセス一覧」画面の「実行中」タブに表示されるジョブの一覧を監視し、これが一定の数を超えた時、もしくは○○分以上実行しているジョブが一定の数を超えた時にアラートにつなげたいと思っています。
この時Kompira EnterpriseのAPIを用いて外部の監視システムから上記のプロセス一覧を取得できればと思っているのですが、取得するための方法はありますでしょうか?
-
正式なコメント
フィックスポイントの高橋です。
この時Kompira EnterpriseのAPIを用いて外部の監視システムから上記のプロセス一覧を取得できればと思っているのですが、取得するための方法はありますでしょうか?
Kompira Enterprise の REST-API でプロセスの一覧情報を取得することができます。
(以下では REST-API の基本的な呼び出し方の説明については省略しています)マニュアル「8.4.1. プロセス一覧の取得」にある以下のAPIを用いると、プロセスオブジェクトの一覧を取得することができます。
GET /process
ただし、このままでは終了したプロセスの情報も取得されます。実行中のプロセスに限る場合は、以下のように is_active=true パラメータを追加してみてください。
GET /process?is_active=true
コンソール情報などが不要な場合、attrs パラメータで必要なフィールドだけ取得することもできます。以下の例ではプロセスの ID, ステータス, 開始日時, 現在のジョブ、だけを取得します。
/process?is_active=true&attrs=id&attrs=status&attrs=started_time&attrs=current_job
プロセス一覧は結果に含まれる results 配列から得られます。絞り込み対象のプロセスの個数については結果に含まれる count から知ることができます。
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 46898,
"started_time": "2024-07-05T18:33:00.876283+09:00",
"status": "WAITING",
"current_job": "/foo/bar/jobflow"
}
]
}参考になさってみてください。
コメントアクション
サインインしてコメントを残してください。
コメント
4件のコメント