オンプレミスエージェント監視
OPAバージョン32.0以降、オンプレミスエージェントはPrometheus互換のメトリクスエンドポイントを公開します。
Prometheus serverはオープンソースの監視ツールであり、HTTPエンドポイントを定期的にポーリング(スクレイピング)してメトリクスを収集し、その結果をローカルの時系列データベースに保存します。 Grafanaなどの可視化およびアラートツールは、そのデータベースにクエリを実行し、CPU利用状況、メモリ、JVMの健全性、コネクターアクティビティなどのメトリクスに基づいてダッシュボードを構築し、アラートを設定できます。 Datadogなど、Prometheus公開形式を直接サポートするツールは、Prometheusサーバーなしでエンドポイントをスクレイプすることもできます。
手動監視の非推奨化
手動監視機能(OPA 2.14.0から利用可能)は非推奨となり、OPAバージョン31.0以降では利用できません。 OPAバージョン2.14.0~30.0を実行している場合は、以前の監視ツールに引き続きアクセスできます。
監視エンドポイントの有効化
監視を有効にするには、エージェントの起動パラメーターに--mgmt-listenフラグを追加します:
ネットワークアクセス
ローカルマシンへのアクセスに制限するには、ホストアドレスとして127.0.0.1を使用します。他のホストからのアクセスを許可するには、特定のネットワークインターフェースアドレスを使用します。 Prometheusエンドポイントはデフォルトで認証されないことに注意してください。
管理サーバーがリクエストを受け入れる準備ができると、エージェントは次の内容をログに記録します:
ManagementServer - Management server is up非推奨の監視UIにアクセスする
以前の監視UIにアクセスするには、OPAバージョン2.14.0~30.0を使用して次の手順を実行します:
ご使用のオペレーティングシステム用のエージェント起動コマンドを、--monitoringフラグおよび--mgmt-listenフラグとともに実行します。
http://[HOST]:[PORT]/monitoringに移動します。 [HOST]と[PORT]を、前のステップで定義した値に置き換えます。
ヘルスエンドポイント
OPAバージョン2.13.0以降では、管理サーバーは、コンテナーオーケストレーションプラットフォーム、ロードバランサー、または外部監視ツールで使用できるヘルスエンドポイントも公開します。 エージェントが正常な場合、両方のエンドポイントは{"status":"UP"}を返します:
| エンドポイント | 説明 |
|---|---|
/health/live | エージェントプロセスが実行中であることを示します。 |
/health/ready | エージェントがWorkatoに接続され、リクエストを処理できる状態であることを示します。 |
例:
curl http://[HOST]:[PORT]/health/liveメトリクスのスクレイプ
エンドポイントが動作していることを確認する手動チェックとして、次のコマンドを使用します。 継続的な自動収集については、自動スクレイピングの設定を参照してください。
curl http://[HOST]:[PORT]/prometheusレスポンスは標準のPrometheusテキスト公開形式で、Content-Type: text/plain;version=0.0.4;charset=utf-8を使用します。 各メトリクスには、# HELP説明、# TYPE宣言、および1行以上のサンプル行が含まれます:
# HELP jvm_threads_live_threads The current number of live threads
# TYPE jvm_threads_live_threads gauge
jvm_threads_live_threads{session_id="abc123"} 60.0エンドポイントはデータをストリーミングまたはプッシュしません。 各リクエストは、呼び出し時点の現在のメトリクス値の新しいスナップショットを返します。
自動スクレイピングの設定
Grafanaなどの一部の監視ツールでは、OPAメトリクスをPrometheus serverの時系列データベースに保存する必要があります。
prometheus.ymlにスクレイプジョブを追加して、メトリクスを定期的に収集および保存できます。 例:
scrape_configs:
- job_name: 'workato-opa'
metrics_path: '/prometheus'
static_configs:
- targets:
- '[HOST]:[PORT]'複数のエージェント
グループ内の各エージェントは、それぞれ独自の/prometheusエンドポイントを公開します。 スクレイプ設定に、各エージェントのターゲットを追加します:
scrape_configs:
- job_name: 'workato-opa'
metrics_path: '/prometheus'
static_configs:
- targets:
- '10.0.1.10:[PORT]'
- '10.0.1.11:[PORT]'ほとんどのメトリクスには、取得元のエージェントインスタンスを一意に識別するsession_idラベルが含まれます。 このラベルをクエリで使用して、エージェントをフィルタリングまたは比較します。 ExecutorおよびHTTPメトリクスには、このラベルは含まれません。
例:
# Metrics from a specific agent
jvm_memory_used_bytes{session_id="abc123"}
# Memory usage across all agents (group or compare by session_id in your dashboard)
jvm_memory_used_bytes利用可能なメトリクス
/prometheusエンドポイントは、次のメトリクスグループを提供します:
| グループ | 説明 |
|---|---|
| JVM | メモリ利用状況、GC一時停止時間、スレッド数。 例:
|
| プロセス | CPU時間と利用状況、プロセス稼働時間、プロセスメモリ利用状況、開いているファイルディスクリプター。 例:
|
| システム | ホストレベルのCPU、メモリ、ディスク統計。 例:
|
| HTTP | WorkatoのクラウドサービスへのエージェントのアウトバウンドHTTPトラフィックのリクエスト数とレイテンシ。 例:
|
| Executor | スレッドプールアクティビティとタスクスループット。 例:
|
| コネクター | コネクターごとの呼び出し時間。プロファイルでラベル付けされています。 これらのメトリクスを使用して、最も多くのOPAリソースを消費しているプロファイルとコネクションを特定します。 例:
|
| エージェント | アイデンティティとネットワークメトリクス。 例:
|
| ログ記録 | 重大度レベル別のログイベント数。 例:
|
WINDOWSでの動作
process_files_open_filesはLinux/Unix OSの概念であり、Windowsレスポンスには含まれません。 起動直後は、process_memory_used_bytesやsystem_memory_used_bytesなどのメトリクスが0.0を示す場合があります。通常、エージェントのウォームアップ後、一般的には2~3分後に値が正しく設定されます。
最終更新日: