diagnostics-prometheus. وهو يستمع إلى التشخيصات الداخلية الموثوقة ويعرض نقطة نهاية نصية لـ Prometheus على:
text/plain; version=0.0.4; charset=utf-8، وهو تنسيق العرض القياسي لـ Prometheus.
بالنسبة إلى التتبعات، والسجلات، ودفع OTLP، وسمات OpenTelemetry GenAI الدلالية، راجع تصدير OpenTelemetry.
البدء السريع
يشترط
diagnostics.enabled: true. وبدونه، سيظل Plugin يسجل مسار HTTP لكن لن تتدفق أي أحداث تشخيصية إلى المُصدِّر، لذلك ستكون الاستجابة فارغة.المقاييس المُصدَّرة
| المقياس | النوع | labels |
|---|---|---|
openclaw_run_completed_total | counter | channel, model, outcome, provider, trigger |
openclaw_run_duration_seconds | histogram | channel, model, outcome, provider, trigger |
openclaw_model_call_total | counter | api, error_category, model, outcome, provider, transport |
openclaw_model_call_duration_seconds | histogram | api, error_category, model, outcome, provider, transport |
openclaw_model_tokens_total | counter | agent, channel, model, provider, token_type |
openclaw_gen_ai_client_token_usage | histogram | model, provider, token_type |
openclaw_model_cost_usd_total | counter | agent, channel, model, provider |
openclaw_tool_execution_total | counter | error_category, outcome, params_kind, tool |
openclaw_tool_execution_duration_seconds | histogram | error_category, outcome, params_kind, tool |
openclaw_harness_run_total | counter | channel, error_category, harness, model, outcome, phase, plugin, provider |
openclaw_harness_run_duration_seconds | histogram | channel, error_category, harness, model, outcome, phase, plugin, provider |
openclaw_message_processed_total | counter | channel, outcome, reason |
openclaw_message_processed_duration_seconds | histogram | channel, outcome, reason |
openclaw_message_delivery_total | counter | channel, delivery_kind, error_category, outcome |
openclaw_message_delivery_duration_seconds | histogram | channel, delivery_kind, error_category, outcome |
openclaw_queue_lane_size | gauge | lane |
openclaw_queue_lane_wait_seconds | histogram | lane |
openclaw_session_state_total | counter | reason, state |
openclaw_session_queue_depth | gauge | state |
openclaw_memory_bytes | gauge | kind |
openclaw_memory_rss_bytes | histogram | none |
openclaw_memory_pressure_total | counter | level, reason |
openclaw_telemetry_exporter_total | counter | exporter, reason, signal, status |
openclaw_prometheus_series_dropped_total | counter | none |
سياسة labels
labels محدودة ومنخفضة الكاردينالية
labels محدودة ومنخفضة الكاردينالية
تظل labels في Prometheus محدودة ومنخفضة الكاردينالية. ولا يُصدر المُصدِّر معرّفات تشخيصية خام مثل
runId، أو sessionKey، أو sessionId، أو callId، أو toolCallId، أو معرّفات الرسائل، أو معرّفات الدردشة، أو معرّفات طلبات provider.تُنقَّح قيم labels ويجب أن تطابق سياسة الأحرف منخفضة الكاردينالية في OpenClaw. ويتم استبدال القيم التي لا تطابق السياسة بـ unknown أو other أو none، بحسب المقياس.حد السلاسل واحتساب الفائض
حد السلاسل واحتساب الفائض
يضع المُصدِّر حدًا أقصى للسلاسل الزمنية المحتفَظ بها في الذاكرة يبلغ 2048 سلسلة عبر counters وgauge وhistograms مجتمعة. وأي سلاسل جديدة تتجاوز هذا الحد يتم إسقاطها، وتزداد قيمة
openclaw_prometheus_series_dropped_total بمقدار واحد في كل مرة.راقب هذا العداد بوصفه إشارة حاسمة إلى أن إحدى السمات في المنبع تسرّب قيمًا عالية الكاردينالية. ولا يرفع المُصدِّر الحد تلقائيًا أبدًا؛ فإذا استمرت الزيادة، أصلح المصدر بدلًا من تعطيل الحد.ما الذي لا يظهر أبدًا في خرج Prometheus
ما الذي لا يظهر أبدًا في خرج Prometheus
- نص prompt، ونص الاستجابة، ومدخلات الأدوات، ومخرجات الأدوات، وsystem prompts
- معرّفات طلبات provider الخام (فقط تجزئات محدودة، عند الاقتضاء، على spans — وليس أبدًا على المقاييس)
- مفاتيح الجلسات ومعرّفات الجلسات
- أسماء المضيفين، ومسارات الملفات، والقيم السرية
وصفات PromQL
الاختيار بين Prometheus وتصدير OpenTelemetry
يدعم OpenClaw كلا السطحين بشكل مستقل. يمكنك تشغيل أحدهما، أو كليهما، أو لا شيء منهما.- diagnostics-prometheus
- diagnostics-otel
- نموذج سحب: يقوم Prometheus بجمع
/api/diagnostics/prometheus. - لا حاجة إلى مجمّع خارجي.
- تتم المصادقة عبر مصادقة Gateway العادية.
- السطح يقتصر على المقاييس فقط (من دون تتبعات أو سجلات).
- الأفضل للحِزم التي تعتمد أصلًا على Prometheus + Grafana.
استكشاف الأخطاء وإصلاحها
جسم استجابة فارغ
جسم استجابة فارغ
- تحقّق من
diagnostics.enabled: trueفي الإعدادات. - أكّد أن Plugin مفعّل ومحمّل عبر
openclaw plugins list --enabled. - أنشئ بعض الحركة؛ فلا تصدر counters وhistograms أي أسطر إلا بعد حدث واحد على الأقل.
401 / unauthorized
401 / unauthorized
ارتفاع `openclaw_prometheus_series_dropped_total`
ارتفاع `openclaw_prometheus_series_dropped_total`
تتجاوز سمة جديدة الحد الأقصى 2048 للسلاسل. افحص المقاييس الحديثة بحثًا عن label عالية الكاردينالية بشكل غير متوقع وأصلحها من المصدر. يقوم المُصدِّر عمدًا بإسقاط السلاسل الجديدة بدلًا من إعادة كتابة labels بصمت.
يعرض Prometheus سلاسل قديمة بعد إعادة التشغيل
يعرض Prometheus سلاسل قديمة بعد إعادة التشغيل
يحتفظ Plugin بحالته في الذاكرة فقط. بعد إعادة تشغيل Gateway، تعود counters إلى الصفر وتُعاد gauges من قيمتها التالية المُبلَّغ عنها. استخدم
rate() وincrease() في PromQL للتعامل مع إعادة الضبط بشكل صحيح.ذو صلة
- تصدير التشخيصات — ملف zip تشخيصات محلي لحِزم الدعم
- السلامة والجاهزية — probes
/healthzو/readyz - Logging — التسجيل المعتمد على الملفات
- تصدير OpenTelemetry — دفع OTLP للتتبعات، والمقاييس، والسجلات