Skip to main content
OpenClaw は、公式の diagnostics-prometheus Plugin を通じて診断メトリクスを公開できます。この Plugin は、信頼済みの診断情報に加え、 内部でタグ付けされたディスパッチャー所有の診断イベント(キュー、メモリ、 セッション復旧シグナル)をリッスンし、次の場所で Prometheus テキストエンドポイントを提供します。
コンテンツタイプは、標準の Prometheus 公開形式である text/plain; version=0.0.4; charset=utf-8 です。
このルートは Gateway 認証(オペレータースコープ、信頼済みオペレーター向けサーフェス)を使用します。認証のない公開 /metrics エンドポイントとして公開しないでください。他のオペレーター API に使用するものと同じ認証パスを通じてスクレイピングしてください。
トレース、ログ、OTLP プッシュ、OpenTelemetry GenAI セマンティック属性については、OpenTelemetry エクスポートを参照してください。

クイックスタート

1

Plugin をインストール

2

Plugin を有効化

3

Gateway を再起動

HTTP ルートは Plugin の起動時に登録されるため、有効化後に再読み込みしてください。
4

保護されたルートをスクレイピング

オペレータークライアントが使用するものと同じ Gateway 認証を送信します。
5

Prometheus を接続

diagnostics.enabled のデフォルトは true です。厳密に制約された環境でのみ false に設定してください。false の場合でも、Plugin は HTTP ルートを登録しますが、診断イベントはエクスポーターに流れないため、レスポンスは空になります。

エクスポートされるメトリクス

モデル呼び出しメトリクスでは、observation_unit="request" は観測可能な プロバイダーリクエスト 1 件を測定します。observation_unit="turn" は、複数の非表示のプロバイダーリクエストを含む可能性がある、合成された Claude Code または Codex CLI エージェントターンを測定します。 レイテンシを比較する際は、これらの系列を分けてください。

ラベルポリシー

Prometheus ラベルは、制限された低カーディナリティに保たれます。エクスポーターは、runIdsessionKeysessionIdcallIdtoolCallId、メッセージ ID、チャット ID、プロバイダーリクエスト ID などの生の診断識別子を出力しません。ラベル値は秘匿化され、OpenClaw の低カーディナリティ文字ポリシーに一致する必要があります。ポリシーに違反する値は、メトリクスに応じて unknownother、または none に置き換えられます。スコープ付きエージェントセッションキーに見えるラベルも、unknown に置き換えられます。
エクスポーターがメモリ内に保持する時系列は、カウンター、ゲージ、ヒストグラムの合計で 2048 系列に制限されます。この上限を超える新しい系列は破棄され、そのたびに openclaw_prometheus_series_dropped_total が 1 増加します。このカウンターは、上流の属性から高カーディナリティ値が漏れていることを示す明確なシグナルとして監視してください。エクスポーターが上限を自動的に引き上げることはありません。値が増加した場合は、上限を無効にするのではなく、発生源を修正してください。
  • プロンプトテキスト、応答テキスト、ツール入力、ツール出力、システムプロンプト
  • 通話の文字起こし、音声ペイロード、通話 ID、ルーム ID、ハンドオフトークン、ターン ID、生のセッション ID
  • 生のプロバイダーリクエスト ID(該当する場合でも、スパンには制限されたハッシュのみを使用し、メトリクスには決して使用しません)
  • セッションキーとセッション ID
  • ホスト名、ファイルパス、シークレット値

PromQL レシピ

プロバイダー横断ダッシュボードには gen_ai_client_token_usage を推奨します。これは OpenTelemetry GenAI セマンティック規約に準拠し、OpenClaw 以外の GenAI サービスのメトリクスとも一貫しています。

Prometheus と OpenTelemetry エクスポートの選択

OpenClaw は両方のサーフェスを独立してサポートしています。どちらか一方、両方、またはどちらも使用しない構成で実行できます。
  • プルモデル:Prometheus が /api/diagnostics/prometheus をスクレイプします。
  • 外部コレクターは不要です。
  • 通常の Gateway 認証によって認証されます。
  • サーフェスはメトリクスのみです(トレースやログは含まれません)。
  • すでに Prometheus + Grafana で標準化されているスタックに最適です。

トラブルシューティング

  • 設定で diagnostics.enabledfalse に設定されていないことを確認してください(デフォルトは true です)。
  • openclaw plugins list --enabled を使用して、Plugin が有効化され、読み込まれていることを確認してください。
  • トラフィックを発生させてください。カウンターとヒストグラムは、少なくとも 1 件のイベントが発生するまで行を出力しません。
エンドポイントには Gateway オペレータースコープ(gatewayRuntimeScopeSurface: "trusted-operator" を指定した auth: "gateway")が必要です。Prometheus が他の Gateway オペレータールートで使用するものと同じトークンまたはパスワードを使用してください。公開された未認証モードはありません。
新しい属性が 2048 系列の上限を超えています。最近のメトリクスを調べ、予期せずカーディナリティが高くなっているラベルを特定して、発生源で修正してください。エクスポーターはラベルを暗黙的に書き換えるのではなく、意図的に新しい系列を破棄します。
Plugin は状態をメモリ内にのみ保持します。Gateway の再起動後、カウンターはゼロにリセットされ、ゲージは次に報告された値から再開します。リセットを適切に処理するには、PromQL の rate()increase() を使用してください。

関連項目