Gateway
Pemeriksaan kesehatan
Panduan singkat untuk memverifikasi konektivitas saluran tanpa menebak.
Pemeriksaan cepat
openclaw status— ringkasan lokal: keterjangkauan/mode gateway, petunjuk pembaruan, umur autentikasi saluran tertaut, sesi + aktivitas terbaru.openclaw status --all— diagnosis lokal lengkap (hanya-baca, berwarna, aman ditempel untuk debugging).openclaw status --deep— meminta Gateway yang sedang berjalan untuk probe kesehatan langsung (healthdenganprobe:true), termasuk probe saluran per akun jika didukung.openclaw health— meminta Gateway yang sedang berjalan untuk snapshot kesehatannya (hanya WS; tidak ada soket saluran langsung dari CLI).openclaw health --verbose— memaksa probe kesehatan langsung dan mencetak detail koneksi Gateway.openclaw health --json— keluaran snapshot kesehatan yang dapat dibaca mesin.- Kirim
/statussebagai pesan mandiri di WhatsApp/WebChat untuk mendapatkan balasan status tanpa memanggil agen. - Log: tail
/tmp/openclaw/openclaw-*.logdan filter untukweb-heartbeat,web-reconnect,web-auto-reply,web-inbound.
Untuk Discord dan penyedia chat lain, baris sesi bukan tanda soket masih hidup.
openclaw sessions, Gateway sessions.list, dan tool sessions_list agen
membaca status percakapan yang tersimpan. Penyedia dapat tersambung ulang dan menampilkan status
saluran yang sehat sebelum baris sesi baru diwujudkan. Gunakan status saluran dan
perintah kesehatan di atas untuk pemeriksaan konektivitas langsung.
Diagnosis mendalam
- Kredensial di disk:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json(mtime seharusnya baru). - Penyimpanan sesi:
ls -l ~/.openclaw/agents/<agentId>/sessions/sessions.json(jalur dapat ditimpa di config). Jumlah dan penerima terbaru ditampilkan melaluistatus. - Alur tautkan ulang:
openclaw channels logout && openclaw channels login --verbosesaat kode status 409–515 atauloggedOutmuncul di log. (Catatan: alur login QR otomatis dimulai ulang sekali untuk status 515 setelah pairing.) - Diagnosis diaktifkan secara default. Gateway mencatat fakta operasional kecuali
diagnostics.enabled: falseditetapkan. Peristiwa memori mencatat jumlah byte RSS/heap, tekanan ambang, dan tekanan pertumbuhan. Tekanan memori kritis dicatat melalui logger Gateway. Saatdiagnostics.memoryPressureSnapshot: trueditetapkan, tekanan memori kritis juga menulis bundel stabilitas pra-OOM dengan statistik heap V8, penghitung cgroup Linux jika tersedia, jumlah resource aktif, dan file sesi/transkrip terbesar berdasarkan jalur relatif yang disunting. Peringatan liveness mencatat penundaan event-loop, utilisasi event-loop, rasio inti CPU, dan jumlah sesi aktif/menunggu/antre saat proses berjalan tetapi jenuh. Peristiwa payload terlalu besar mencatat apa yang ditolak, dipotong, atau dipecah, beserta ukuran dan batas jika tersedia. Peristiwa ini tidak mencatat teks pesan, isi lampiran, badan Webhook, badan request atau response mentah, token, cookie, atau nilai rahasia. Heartbeat yang sama memulai perekam stabilitas berbatas, yang tersedia melaluiopenclaw gateway stabilityatau RPC Gatewaydiagnostics.stability. Keluar fatal Gateway, timeout shutdown, dan kegagalan startup ulang mempertahankan snapshot perekam terbaru di bawah~/.openclaw/logs/stability/saat peristiwa ada; tekanan memori kritis juga melakukannya hanya saatdiagnostics.memoryPressureSnapshot: trueditetapkan. Periksa bundel tersimpan terbaru denganopenclaw gateway stability --bundle latest. - Untuk laporan bug, jalankan
openclaw gateway diagnostics exportdan lampirkan zip yang dihasilkan. Ekspor ini menggabungkan ringkasan Markdown, bundel stabilitas terbaru, metadata log yang disanitasi, snapshot status/kesehatan Gateway yang disanitasi, dan bentuk config. Ini dimaksudkan untuk dibagikan: teks chat, badan Webhook, keluaran tool, kredensial, cookie, identifier akun/pesan, dan nilai rahasia dihilangkan atau disunting. Lihat Ekspor Diagnosis.
Config monitor kesehatan
gateway.channelHealthCheckMinutes: seberapa sering Gateway memeriksa kesehatan saluran. Default:5. Tetapkan0untuk menonaktifkan restart monitor kesehatan secara global.gateway.channelStaleEventThresholdMinutes: berapa lama saluran yang tersambung boleh tetap idle sebelum monitor kesehatan menganggapnya stale dan memulai ulangnya. Default:30. Pertahankan ini lebih besar dari atau sama dengangateway.channelHealthCheckMinutes.gateway.channelMaxRestartsPerHour: batas bergulir satu jam untuk restart monitor kesehatan per saluran/akun. Default:10.channels.<provider>.healthMonitor.enabled: menonaktifkan restart monitor kesehatan untuk saluran tertentu sambil tetap mengaktifkan pemantauan global.channels.<provider>.accounts.<accountId>.healthMonitor.enabled: override multi-akun yang mengalahkan pengaturan tingkat saluran.- Override per saluran ini berlaku untuk monitor saluran bawaan yang mengeksposnya saat ini: Discord, Google Chat, iMessage, Microsoft Teams, Signal, Slack, Telegram, dan WhatsApp.
Pemantauan uptime
Layanan pemantauan uptime eksternal harus menggunakan endpoint khusus /health, bukan /v1/chat/completions.
- GUNAKAN:
GET /health— respons instan, tidak ada sesi dibuat, tidak ada panggilan LLM, mengembalikan{"ok":true,"status":"live"} - JANGAN gunakan:
/v1/chat/completionsuntuk pemeriksaan kesehatan — setiap request membuat sesi agen lengkap dengan snapshot Skills, penyusunan konteks, dan panggilan LLM
Saat tidak ada header x-openclaw-session-key atau field user yang diberikan, /v1/chat/completions menghasilkan sesi acak baru untuk setiap request. Layanan pemantauan yang melakukan ping setiap 15 menit membuat ~96 sesi/hari, masing-masing mengonsumsi 4–22KB. Seiring waktu ini menyebabkan penyimpanan sesi membengkak dan dapat menyebabkan overflow jendela konteks.
Contoh penyiapan layanan pemantauan
- BetterStack: Tetapkan URL pemeriksaan kesehatan ke
https://<your-gateway-host>:<port>/health - UptimeRobot: Tambahkan monitor HTTP baru dengan URL
https://<your-gateway-host>:<port>/health - Generik: HTTP GET apa pun ke
/healthmengembalikan 200 dengan{"ok":true}saat Gateway sehat
Saat sesuatu gagal
logged outatau status 409–515 → tautkan ulang denganopenclaw channels logoutlaluopenclaw channels login.- Gateway tidak terjangkau → mulai:
openclaw gateway --port 18789(gunakan--forcejika port sedang dipakai). - Tidak ada pesan masuk → pastikan ponsel tertaut online dan pengirim diizinkan (
channels.whatsapp.allowFrom); untuk chat grup, pastikan allowlist + aturan mention cocok (channels.whatsapp.groups,agents.list[].groupChat.mentionPatterns).
Perintah khusus "health"
openclaw health meminta Gateway yang sedang berjalan untuk snapshot kesehatannya (tidak ada soket saluran langsung
dari CLI). Secara default perintah ini dapat mengembalikan snapshot Gateway cache yang baru; lalu
Gateway menyegarkan cache tersebut di latar belakang. openclaw health --verbose memaksa
probe langsung sebagai gantinya. Perintah ini melaporkan kredensial tertaut/umur autentikasi jika tersedia,
ringkasan probe per saluran, ringkasan penyimpanan sesi, dan durasi probe. Perintah keluar
non-zero jika Gateway tidak terjangkau atau probe gagal/timeout.
Opsi:
--json: keluaran JSON yang dapat dibaca mesin--timeout <ms>: menimpa timeout probe default 10s--verbose: memaksa probe langsung dan mencetak detail koneksi Gateway--debug: alias untuk--verbose
Snapshot kesehatan mencakup: ok (boolean), ts (timestamp), durationMs (waktu probe), status per saluran, ketersediaan agen, dan ringkasan penyimpanan sesi.