オンプレミスエージェント監視
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]を、前のステップで定義した値に置き換えます。
メトリクスのスクレイプ
エンドポイントが動作していることを確認する手動チェックとして、次のコマンドを使用します。 継続的な自動収集については、自動スクレイピングの設定を参照してください。
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ラベルが含まれます。 このラベルをクエリで使用して、エージェントをフィルタリングまたは比較します。 例:
# 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_bytesLast updated: