オンプレミスエージェント監視

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

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を使用して次の手順を実行します:

1

ご使用のオペレーティングシステム用のエージェント起動コマンドを、--monitoringフラグおよび--mgmt-listenフラグとともに実行します。

2

http://[HOST]:[PORT]/monitoringに移動します。 [HOST][PORT]を、前のステップで定義した値に置き換えます。

ヘルスエンドポイント

OPAバージョン2.13.0以降では、管理サーバーは、コンテナーオーケストレーションプラットフォーム、ロードバランサー、または外部監視ツールで使用できるヘルスエンドポイントも公開します。 エージェントが正常な場合、両方のエンドポイントは{"status":"UP"}を返します:

エンドポイント説明
/health/liveエージェントプロセスが実行中であることを示します。
/health/readyエージェントがWorkatoに接続され、リクエストを処理できる状態であることを示します。

例:

sh
curl http://[HOST]:[PORT]/health/live

メトリクスのスクレイプ

エンドポイントが動作していることを確認する手動チェックとして、次のコマンドを使用します。 継続的な自動収集については、自動スクレイピングの設定を参照してください。

sh
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にスクレイプジョブを追加して、メトリクスを定期的に収集および保存できます。 例:

yaml
scrape_configs:
  - job_name: 'workato-opa'
    metrics_path: '/prometheus'
    static_configs:
      - targets:
          - '[HOST]:[PORT]'

複数のエージェント

グループ内の各エージェントは、それぞれ独自の/prometheusエンドポイントを公開します。 スクレイプ設定に、各エージェントのターゲットを追加します:

yaml
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一時停止時間、スレッド数。 例:
  • jvm_memory_used_bytes: JVMによって使用されているメモリ量。
  • jvm_gc_pause_seconds: ガベージコレクションの一時停止に費やされた時間。
  • jvm_threads_live_threads: デーモンスレッドと非デーモンスレッドの両方を含む、現在のライブスレッド数。
プロセスCPU時間と利用状況、プロセス稼働時間、プロセスメモリ利用状況、開いているファイルディスクリプター。 例:
  • process_cpu_usage: エージェントプロセスの最近のCPU利用状況。
  • process_cpu_time_ns_total: エージェントプロセスが使用した合計CPU時間。
  • process_uptime_seconds: JVMの稼働時間。
  • process_start_time_seconds: Unixエポックからの経過秒数で表したプロセスの開始時刻。
  • process_memory_used_bytes: エージェントプロセスによって使用されているメモリ量。
  • process_files_open_files: 開いているファイルディスクリプターの数。
  • process_files_max_files: プロセスで利用可能なファイルディスクリプターの最大数。
システムホストレベルのCPU、メモリ、ディスク統計。 例:
  • system_cpu_usage: ホストシステムの最近のCPU利用状況。
  • system_cpu_count: JVMで利用可能なプロセッサー数。
  • system_memory_used_bytes: ホストシステムで使用されているメモリ量。
  • disk_free_bytes: エージェントの一時ファイルディレクトリで使用可能なディスク容量。
  • disk_total_bytes: エージェントの一時ファイルディレクトリの合計ディスク容量。
HTTPWorkatoのクラウドサービスへのエージェントのアウトバウンドHTTPトラフィックのリクエスト数とレイテンシ。 例:
  • http_requests_seconds: WorkatoのクラウドサービスへのエージェントのアウトバウンドHTTP呼び出しのリクエスト数とレイテンシ。
Executorスレッドプールアクティビティとタスクスループット。 例:
  • executor_active_threads: タスクをアクティブに実行しているスレッドのおおよその数。
  • executor_completed_tasks_total: 実行が完了したタスクのおおよその合計数。
  • jetty_threads_*: エージェントの組み込みJettyサーバーのスレッドプールサイズと使用率。
  • request_lookup_table_size_requests: エージェントで現在処理中のリクエスト数。
コネクターコネクターごとの呼び出し時間。プロファイルでラベル付けされています。 これらのメトリクスを使用して、最も多くのOPAリソースを消費しているプロファイルとコネクションを特定します。 例:
  • profile_invocation_duration_seconds: コネクタープロファイルの呼び出し時間。プロファイル名とタイプでラベル付けされています。
エージェントアイデンティティとネットワークメトリクス。 例:
  • instance_info: バージョンやOSなど、エージェントインスタンスに関するランタイム情報。
  • netty_channel_ping_rtt_ms: Workatoのゲートウェイへのpingラウンドトリップ時間で測定されたネットワークレイテンシ。
ログ記録重大度レベル別のログイベント数。 例:
  • logback_events_total: 出力されたログイベント数。重大度レベルでラベル付けされています。

WINDOWSでの動作

process_files_open_filesはLinux/Unix OSの概念であり、Windowsレスポンスには含まれません。 起動直後は、process_memory_used_bytessystem_memory_used_bytesなどのメトリクスが0.0を示す場合があります。通常、エージェントのウォームアップ後、一般的には2~3分後に値が正しく設定されます。

最終更新日: