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 العدد والمستلمين الحديثين.
  • مسار إعادة الربط: openclaw channels logout && openclaw channels login --verbose عند ظهور رموز الحالة 409–515 أو loggedOut في السجلات. (ملاحظة: يعيد مسار تسجيل الدخول عبر رمز QR التشغيل تلقائيًا مرة واحدة للحالة 515 بعد الاقتران.)
  • التشخيصات مفعّلة افتراضيًا. يسجل Gateway الحقائق التشغيلية ما لم يتم ضبط diagnostics.enabled: false. تسجل أحداث الذاكرة عدد بايتات RSS/heap، وضغط العتبة، وضغط النمو. تُسجَّل ضغوط الذاكرة الحرجة عبر مسجل Gateway. عند ضبط diagnostics.memoryPressureSnapshot: true، تكتب ضغوط الذاكرة الحرجة أيضًا حزمة استقرار قبل نفاد الذاكرة تتضمن إحصاءات V8 heap، وعدّادات Linux 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.

مراقبة وقت التشغيل

ينبغي لخدمات مراقبة وقت التشغيل الخارجية استخدام نقطة النهاية المخصصة /health، وليس /v1/chat/completions.

  • استخدم: GET /health — استجابة فورية، لا تُنشأ جلسة، لا توجد مكالمة LLM، يعيد {"ok":true,"status":"live"}
  • لا تستخدم: /v1/chat/completions لفحوصات السلامة — ينشئ كل طلب جلسة وكيل كاملة مع لقطة skill، وتجميع السياق، ومكالمات LLM

عند عدم توفير ترويسة x-openclaw-session-key أو حقل user، ينشئ /v1/chat/completions جلسة عشوائية جديدة لكل طلب. خدمات المراقبة التي ترسل إشارة كل 15 دقيقة تنشئ نحو 96 جلسة/يوم، تستهلك كل منها 4–22KB. مع الوقت يسبب ذلك تضخم مخزن الجلسات وقد يؤدي إلى فيضان نافذة السياق.

أمثلة إعداد خدمات المراقبة

  • BetterStack: اضبط عنوان URL لفحص السلامة على https://<your-gateway-host>:<port>/health
  • UptimeRobot: أضف مراقب HTTP جديدًا بعنوان URL ‏https://<your-gateway-host>:<port>/health
  • عام: أي HTTP GET إلى /health يعيد 200 مع {"ok":true} عندما يكون Gateway سليمًا

عند حدوث فشل

  • 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).

أمر "health" المخصص

يطلب openclaw health من Gateway العامل لقطة سلامته (دون مقابس قنوات مباشرة من CLI). افتراضيًا يمكنه إرجاع لقطة Gateway مخبأة حديثة؛ ثم يحدّث Gateway تلك الذاكرة المخبأة في الخلفية. يفرض openclaw health --verbose فحصًا مباشرًا بدلًا من ذلك. يبلّغ الأمر عن بيانات الاعتماد المرتبطة/عمر المصادقة عند توفرها، وملخصات فحص لكل قناة، وملخص مخزن الجلسات، ومدة الفحص. يخرج برمز غير صفري إذا تعذر الوصول إلى Gateway أو فشل الفحص/انتهت مهلته.

الخيارات:

  • --json: مخرجات JSON قابلة للقراءة آليًا
  • --timeout <ms>: تجاوز مهلة الفحص الافتراضية البالغة 10 ثوانٍ
  • --verbose: فرض فحص مباشر وطباعة تفاصيل اتصال Gateway
  • --debug: اسم بديل لـ --verbose

تتضمن لقطة السلامة: ok (قيمة منطقية)، وts (طابع زمني)، وdurationMs (وقت الفحص)، وحالة كل قناة، وتوفر الوكيل، وملخص مخزن الجلسات.

ذو صلة

Was this useful?
On this page

On this page