Gateway
ヘルスチェック
チャンネル接続性を推測せずに確認するための短いガイド。
クイックチェック
openclaw status— ローカル概要: gateway の到達性/モード、更新ヒント、リンク済みチャンネル認証の経過時間、セッション + 最近のアクティビティ。openclaw status --all— 完全なローカル診断(読み取り専用、カラー表示、デバッグ用に貼り付けても安全)。openclaw status --deep— 実行中の gateway にライブヘルスプローブ(probe:true付きのhealth)を要求し、対応している場合はアカウントごとのチャンネルプローブも含める。openclaw health— 実行中の gateway にヘルススナップショットを要求する(WS のみ。CLI からチャンネルソケットへ直接接続しない)。openclaw health --verbose— ライブヘルスプローブを強制し、gateway 接続の詳細を出力する。openclaw health --json— 機械可読のヘルススナップショット出力。- WhatsApp/WebChat で
/statusを単独メッセージとして送信すると、エージェントを呼び出さずにステータス返信を取得できる。 - ログ:
/tmp/openclaw/openclaw-*.logを tail し、web-heartbeat、web-reconnect、web-auto-reply、web-inboundでフィルターする。
Discord やその他のチャットプロバイダーでは、セッション行はソケットの生存状態ではない。
openclaw sessions、Gateway の sessions.list、エージェントの sessions_list ツールは、保存された会話状態を読み取る。プロバイダーは再接続し、新しいセッション行が実体化される前に健全なチャンネルステータスを表示できる。ライブ接続チェックには、上記のチャンネルステータスとヘルスコマンドを使用する。
詳細診断
- ディスク上の認証情報:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json(mtime は最近であるべき)。 - セッションストア:
ls -l ~/.openclaw/agents/<agentId>/sessions/sessions.json(パスは設定で上書きできる)。件数と最近の受信者はstatusで表示される。 - 再リンクフロー: ステータスコード 409–515、またはログに
loggedOutが表示される場合は、openclaw channels logout && openclaw channels login --verboseを実行する。(注: QR ログインフローは、ペアリング後のステータス 515 に対して一度だけ自動再起動する。) - 診断はデフォルトで有効。
diagnostics.enabled: falseが設定されていない限り、gateway は運用上の事実を記録する。メモリーイベントは RSS/ヒープのバイト数、しきい値プレッシャー、増加プレッシャーを記録する。重大なメモリープレッシャーは gateway logger 経由でログに記録される。diagnostics.memoryPressureSnapshot: trueが設定されている場合、重大なメモリープレッシャーは、V8 ヒープ統計、利用可能な場合は Linux cgroup カウンター、アクティブなリソース数、リダクション済み相対パスで見た最大のセッション/トランスクリプトファイルを含む OOM 前の安定性バンドルも書き込む。生存性警告は、プロセスが実行中だが飽和している場合に、イベントループ遅延、イベントループ使用率、CPU コア比、アクティブ/待機中/キュー済みセッション数を記録する。過大ペイロードイベントは、拒否、切り詰め、またはチャンク化された内容に加え、利用可能な場合はサイズと制限を記録する。これらはメッセージ本文、添付ファイルの内容、webhook 本文、生のリクエストまたはレスポンス本文、トークン、Cookie、シークレット値を記録しない。同じ Heartbeat が境界付き安定性レコーダーを開始し、これはopenclaw gateway stabilityまたはdiagnostics.stabilityGateway RPC から利用できる。致命的な Gateway 終了、シャットダウンのタイムアウト、再起動時の起動失敗は、イベントが存在する場合に最新のレコーダースナップショットを~/.openclaw/logs/stability/に永続化する。重大なメモリープレッシャーも、diagnostics.memoryPressureSnapshot: trueが設定されている場合に限り同様に永続化する。最新の保存済みバンドルはopenclaw gateway stability --bundle latestで検査する。 - バグレポートでは、
openclaw gateway diagnostics exportを実行し、生成された zip を添付する。エクスポートには、Markdown の概要、最新の安定性バンドル、サニタイズ済みログメタデータ、サニタイズ済み Gateway ステータス/ヘルススナップショット、設定形状が含まれる。共有を前提としており、チャット本文、webhook 本文、ツール出力、認証情報、Cookie、アカウント/メッセージ識別子、シークレット値は省略またはリダクションされる。診断エクスポート を参照。
ヘルスモニター設定
gateway.channelHealthCheckMinutes: gateway がチャンネルヘルスを確認する頻度。デフォルト:5。ヘルスモニターによる再起動をグローバルに無効化するには0を設定する。gateway.channelStaleEventThresholdMinutes: 接続済みチャンネルがアイドル状態のままでいられる時間。この時間を超えると、ヘルスモニターはチャンネルを stale と見なして再起動する。デフォルト:30。これはgateway.channelHealthCheckMinutes以上にする。gateway.channelMaxRestartsPerHour: チャンネル/アカウントごとのヘルスモニター再起動に対するローリング 1 時間上限。デフォルト:10。channels.<provider>.healthMonitor.enabled: グローバル監視を有効にしたまま、特定チャンネルのヘルスモニター再起動を無効化する。channels.<provider>.accounts.<accountId>.healthMonitor.enabled: チャンネルレベルの設定より優先されるマルチアカウント上書き。- これらのチャンネルごとの上書きは、現在それを公開している組み込みチャンネルモニターに適用される: Discord、Google Chat、iMessage、Microsoft Teams、Signal、Slack、Telegram、WhatsApp。
アップタイム監視
外部アップタイム監視サービスは、/v1/chat/completions ではなく、専用の /health エンドポイントを使用するべき。
- 使用する:
GET /health— 即時レスポンス、セッション作成なし、LLM 呼び出しなし、{"ok":true,"status":"live"}を返す - 使用しない: ヘルスチェックに
/v1/chat/completionsを使用する — 各リクエストが、skill スナップショット、コンテキスト組み立て、LLM 呼び出しを含む完全なエージェントセッションを作成する
x-openclaw-session-key ヘッダーまたは user フィールドが提供されていない場合、/v1/chat/completions は各リクエストに対して新しいランダムセッションを生成する。15 分ごとに ping する監視サービスは 1 日あたり約 96 セッションを作成し、それぞれが 4–22KB を消費する。時間が経つと、これはセッションストアの肥大化を引き起こし、コンテキストウィンドウのオーバーフローにつながる可能性がある。
監視サービス設定例
- BetterStack: ヘルスチェック URL を
https://<your-gateway-host>:<port>/healthに設定する - UptimeRobot: URL
https://<your-gateway-host>:<port>/healthで新しい HTTP モニターを追加する - 汎用: gateway が健全な場合、
/healthへの任意の HTTP GET は{"ok":true}とともに 200 を返す
何かが失敗した場合
logged outまたはステータス 409–515 →openclaw channels logoutの後にopenclaw channels loginで再リンクする。- Gateway に到達できない → 起動する:
openclaw gateway --port 18789(ポートが使用中の場合は--forceを使用)。 - 受信メッセージがない → リンク済み電話がオンラインで、送信者が許可されていることを確認する(
channels.whatsapp.allowFrom)。グループチャットでは、allowlist + メンションルールが一致していることを確認する(channels.whatsapp.groups、agents.list[].groupChat.mentionPatterns)。
専用の「health」コマンド
openclaw health は、実行中の gateway にヘルススナップショットを要求する(CLI からチャンネルソケットへ直接接続しない)。デフォルトでは、新しいキャッシュ済み gateway スナップショットを返すことができ、その後 gateway はバックグラウンドでそのキャッシュを更新する。openclaw health --verbose は代わりにライブプローブを強制する。このコマンドは、利用可能な場合はリンク済み認証情報/認証の経過時間、チャンネルごとのプローブ概要、セッションストア概要、プローブ所要時間を報告する。gateway に到達できない場合、またはプローブが失敗/タイムアウトした場合は、非ゼロで終了する。
オプション:
--json: 機械可読の JSON 出力--timeout <ms>: デフォルトの 10 秒プローブタイムアウトを上書きする--verbose: ライブプローブを強制し、gateway 接続の詳細を出力する--debug:--verboseのエイリアス
ヘルススナップショットには、ok(真偽値)、ts(タイムスタンプ)、durationMs(プローブ時間)、チャンネルごとのステータス、エージェント可用性、セッションストア概要が含まれる。