Gateway
بررسیهای سلامت
راهنمای کوتاه برای راستیآزمایی اتصال کانال بدون حدسزدن.
بررسیهای سریع
openclaw status— خلاصه محلی: دسترسپذیری/حالت gateway، نکته بهروزرسانی، سن احراز هویت کانال متصل، نشستها + فعالیت اخیر.openclaw status --all— عیبیابی کامل محلی (فقطخواندنی، رنگی، امن برای چسباندن جهت اشکالزدایی).openclaw status --deep— از gateway در حال اجرا یک بررسی سلامت زنده میخواهد (healthباprobe:true)، شامل بررسیهای کانال برای هر حساب در صورت پشتیبانی.openclaw health— از gateway در حال اجرا نمای سلامت آن را میخواهد (فقط WS؛ بدون سوکت مستقیم کانال از CLI).openclaw health --verbose— یک بررسی سلامت زنده را اجباری میکند و جزئیات اتصال gateway را چاپ میکند.openclaw health --json— خروجی نمای سلامت قابلخواندن برای ماشین.- برای دریافت پاسخ وضعیت بدون فراخوانی عامل،
/statusرا بهعنوان یک پیام مستقل در WhatsApp/WebChat بفرستید. - لاگها:
/tmp/openclaw/openclaw-*.logرا دنبال کنید و برایweb-heartbeat،web-reconnect،web-auto-reply،web-inboundفیلتر کنید.
برای Discord و دیگر ارائهدهندگان چت، ردیفهای نشست به معنی زندهبودن سوکت نیستند.
openclaw sessions، sessions.list در Gateway، و ابزار 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 یکبار بهطور خودکار دوباره شروع میشود.) - عیبیابیها بهطور پیشفرض فعال هستند. gateway واقعیتهای عملیاتی را ثبت میکند مگر اینکه
diagnostics.enabled: falseتنظیم شده باشد. رویدادهای حافظه شمارش بایت RSS/heap، فشار آستانه، و فشار رشد را ثبت میکنند. فشار بحرانی حافظه از طریق ثبتکننده gateway لاگ میشود. وقتیdiagnostics.memoryPressureSnapshot: trueتنظیم شده باشد، فشار بحرانی حافظه همچنین یک بسته پایداری پیش از OOM با آمار heap در V8، شمارندههای cgroup لینوکس در صورت دسترس بودن، شمارش منابع فعال، و بزرگترین فایلهای نشست/رونوشت بر اساس مسیر نسبی ویرایششده مینویسد. هشدارهای زندهبودن، تاخیر حلقه رویداد، بهرهبرداری حلقه رویداد، نسبت هسته CPU، و شمارش نشستهای فعال/در انتظار/صفشده را وقتی فرایند در حال اجرا اما اشباع است ثبت میکنند. رویدادهای بار بیشازحد بزرگ، آنچه رد، کوتاه، یا تکهتکه شده است، بههمراه اندازهها و محدودیتها در صورت دسترس بودن را ثبت میکنند. آنها متن پیام، محتوای پیوست، بدنه webhook، بدنه خام درخواست یا پاسخ، توکنها، کوکیها، یا مقادیر محرمانه را ثبت نمیکنند. همان Heartbeat ضبطکننده پایداری محدود را شروع میکند، که از طریقopenclaw gateway stabilityیا RPC diagnostics.stabilityدر Gateway در دسترس است. خروجهای مرگبار Gateway، وقفههای خاموشسازی، و شکستهای شروع مجدد، وقتی رویدادها وجود داشته باشند، تازهترین نمای ضبطکننده را زیر~/.openclaw/logs/stability/پایدار میکنند؛ فشار بحرانی حافظه نیز فقط وقتیdiagnostics.memoryPressureSnapshot: trueتنظیم شده باشد همین کار را میکند. تازهترین بسته ذخیرهشده را باopenclaw gateway stability --bundle latestبررسی کنید. - برای گزارشهای باگ،
openclaw gateway diagnostics exportرا اجرا کنید و فایل zip تولیدشده را پیوست کنید. خروجی، یک خلاصه Markdown، تازهترین بسته پایداری، فراداده لاگ پاکسازیشده، نماهای وضعیت/سلامت Gateway پاکسازیشده، و شکل پیکربندی را ترکیب میکند. برای اشتراکگذاری طراحی شده است: متن چت، بدنههای webhook، خروجیهای ابزار، اعتبارنامهها، کوکیها، شناسههای حساب/پیام، و مقادیر محرمانه حذف یا ویرایش میشوند. خروجی عیبیابی را ببینید.
پیکربندی پایش سلامت
gateway.channelHealthCheckMinutes: gateway هر چند وقت یکبار سلامت کانال را بررسی کند. پیشفرض:5. برای غیرفعال کردن شروعهای مجدد پایش سلامت بهصورت سراسری،0تنظیم کنید.gateway.channelStaleEventThresholdMinutes: یک کانال متصل چه مدت میتواند بیکار بماند پیش از آنکه پایش سلامت آن را کهنه تلقی کند و دوباره راهاندازیاش کند. پیشفرض:30. این مقدار را بزرگتر یا برابر باgateway.channelHealthCheckMinutesنگه دارید.gateway.channelMaxRestartsPerHour: سقف لغزان یکساعته برای شروعهای مجدد پایش سلامت به ازای هر کانال/حساب. پیشفرض:10.channels.<provider>.healthMonitor.enabled: شروعهای مجدد پایش سلامت را برای یک کانال مشخص غیرفعال میکند، در حالی که پایش سراسری فعال میماند.channels.<provider>.accounts.<accountId>.healthMonitor.enabled: بازنویسی چندحسابی که بر تنظیم سطح کانال مقدم است.- این بازنویسیهای هر کانال روی پایشگرهای داخلی کانال اعمال میشوند که امروز آنها را ارائه میکنند: Discord، Google Chat، iMessage، Microsoft Teams، Signal، Slack، Telegram، و WhatsApp.
پایش زمان کارکرد
سرویسهای بیرونی پایش زمان کارکرد باید از endpoint اختصاصی /health استفاده کنند، نه از /v1/chat/completions.
- استفاده کنید:
GET /health— پاسخ فوری، بدون ایجاد نشست، بدون فراخوانی مدل زبانی بزرگ، برمیگرداند{"ok":true,"status":"live"} - استفاده نکنید:
/v1/chat/completionsبرای بررسی سلامت — هر درخواست یک نشست کامل عامل با نمای Skills، مونتاژ زمینه، و فراخوانیهای مدل زبانی بزرگ ایجاد میکند
وقتی هدر x-openclaw-session-key یا فیلد user ارائه نشود، /v1/chat/completions برای هر درخواست یک نشست تصادفی جدید تولید میکند. سرویسهای پایشی که هر 15 دقیقه پینگ میکنند، حدود 96 نشست در روز ایجاد میکنند که هرکدام 4 تا 22KB مصرف میکند. با گذشت زمان این باعث تورم ذخیرهگاه نشست میشود و میتواند به سرریز پنجره زمینه منجر شود.
نمونههای راهاندازی سرویس پایش
- BetterStack: نشانی بررسی سلامت را روی
https://<your-gateway-host>:<port>/healthتنظیم کنید - UptimeRobot: یک پایشگر HTTP جدید با نشانی
https://<your-gateway-host>:<port>/healthاضافه کنید - عمومی: هر HTTP GET به
/healthوقتی gateway سالم باشد، 200 همراه با{"ok":true}برمیگرداند
وقتی چیزی شکست میخورد
logged outیا وضعیت 409–515 → باopenclaw channels logoutو سپسopenclaw channels loginدوباره پیوند دهید.- Gateway دسترسناپذیر است → آن را شروع کنید:
openclaw gateway --port 18789(اگر پورت مشغول است از--forceاستفاده کنید). - پیام ورودی وجود ندارد → تأیید کنید تلفن پیوندشده آنلاین است و فرستنده مجاز است (
channels.whatsapp.allowFrom)؛ برای چتهای گروهی، مطمئن شوید فهرست مجاز + قواعد اشاره مطابقت دارند (channels.whatsapp.groups،agents.list[].groupChat.mentionPatterns).
فرمان اختصاصی «سلامت»
openclaw health از gateway در حال اجرا نمای سلامت آن را میخواهد (بدون سوکت مستقیم کانال
از CLI). بهطور پیشفرض میتواند یک نمای تازه ذخیرهشده gateway را برگرداند؛ سپس
gateway آن cache را در پسزمینه تازهسازی میکند. openclaw health --verbose بهجای آن
یک بررسی زنده را اجباری میکند. این فرمان اعتبارنامههای پیوندشده/سن احراز هویت را در صورت دسترس بودن،
خلاصههای بررسی هر کانال، خلاصه ذخیرهگاه نشست، و مدت بررسی را گزارش میکند. اگر
gateway دسترسناپذیر باشد یا بررسی شکست بخورد/مهلتش تمام شود، با مقدار غیرصفر خارج میشود.
گزینهها:
--json: خروجی JSON قابلخواندن برای ماشین--timeout <ms>: بازنویسی مهلت پیشفرض 10 ثانیهای بررسی--verbose: اجبار بررسی زنده و چاپ جزئیات اتصال gateway--debug: نام مستعار برای--verbose
نمای سلامت شامل این موارد است: ok (بولی)، ts (برچسب زمانی)، durationMs (زمان بررسی)، وضعیت هر کانال، دسترسپذیری عامل، و خلاصه ذخیرهگاه نشست.