diagnostics-prometheus. Він прослуховує довірену діагностику, а також події стабільності gateway, які генерує ядро, а потім віддає текстову кінцеву точку Prometheus за адресою:
text/plain; version=0.0.4; charset=utf-8, стандартний формат експозиції Prometheus.
Для трасувань, журналів, OTLP push і семантичних атрибутів OpenTelemetry GenAI див. експорт OpenTelemetry.
Швидкий старт
Перезапустіть Gateway
HTTP-маршрут реєструється під час запуску Plugin, тому перезавантажте після ввімкнення.
Збирайте дані із захищеного маршруту
Надішліть ту саму автентифікацію gateway, яку використовують ваші операторські клієнти:
Потрібно встановити
diagnostics.enabled: true. Без цього plugin усе одно реєструє HTTP-маршрут, але діагностичні події не надходять до експортера, тому відповідь порожня.Експортовані метрики
| Метрика | Тип | Мітки |
|---|---|---|
openclaw_run_completed_total | лічильник | channel, model, outcome, provider, trigger |
openclaw_run_duration_seconds | гістограма | channel, model, outcome, provider, trigger |
openclaw_model_call_total | лічильник | api, error_category, model, outcome, provider, transport |
openclaw_model_call_duration_seconds | гістограма | api, error_category, model, outcome, provider, transport |
openclaw_model_failover_total | лічильник | from_model, from_provider, lane, reason, suspended, to_model, to_provider |
openclaw_model_tokens_total | лічильник | agent, channel, model, provider, token_type |
openclaw_gen_ai_client_token_usage | гістограма | model, provider, token_type |
openclaw_model_cost_usd_total | лічильник | agent, channel, model, provider |
openclaw_skill_used_total | лічильник | activation, agent, skill, source |
openclaw_tool_execution_total | лічильник | error_category, outcome, params_kind, tool, tool_owner, tool_source |
openclaw_tool_execution_duration_seconds | гістограма | error_category, outcome, params_kind, tool, tool_owner, tool_source |
openclaw_tool_execution_blocked_total | лічильник | denied_reason, params_kind, tool, tool_owner, tool_source |
openclaw_harness_run_total | лічильник | channel, error_category, harness, model, outcome, phase, plugin, provider |
openclaw_harness_run_duration_seconds | гістограма | channel, error_category, harness, model, outcome, phase, plugin, provider |
openclaw_webhook_received_total | лічильник | channel, webhook |
openclaw_webhook_error_total | лічильник | channel, webhook |
openclaw_webhook_duration_seconds | гістограма | channel, webhook |
openclaw_message_received_total | лічильник | channel, source |
openclaw_message_dispatch_started_total | лічильник | channel, source |
openclaw_message_dispatch_completed_total | лічильник | channel, outcome, reason, source |
openclaw_message_dispatch_duration_seconds | гістограма | channel, outcome, reason, source |
openclaw_message_processed_total | лічильник | channel, outcome, reason |
openclaw_message_processed_duration_seconds | гістограма | channel, outcome, reason |
openclaw_message_delivery_started_total | лічильник | channel, delivery_kind |
openclaw_message_delivery_total | лічильник | channel, delivery_kind, error_category, outcome |
openclaw_message_delivery_duration_seconds | гістограма | channel, delivery_kind, error_category, outcome |
openclaw_talk_event_total | лічильник | brain, event_type, mode, provider, transport |
openclaw_talk_event_duration_seconds | гістограма | brain, event_type, mode, provider, transport |
openclaw_talk_audio_bytes | гістограма | brain, event_type, mode, provider, transport |
openclaw_queue_lane_size | вимірювач | lane |
openclaw_queue_lane_wait_seconds | гістограма | lane |
openclaw_session_state_total | лічильник | reason, state |
openclaw_session_queue_depth | вимірювач | state |
openclaw_session_turn_created_total | лічильник | agent, channel, trigger |
openclaw_session_stuck_total | лічильник | reason, state |
openclaw_session_stuck_age_seconds | гістограма | reason, state |
openclaw_session_recovery_total | лічильник | action, active_work_kind, state, status |
openclaw_session_recovery_age_seconds | гістограма | action, active_work_kind, state, status |
openclaw_liveness_warning_total | лічильник | reason |
openclaw_liveness_sessions | вимірювач | state |
openclaw_liveness_event_loop_delay_p99_seconds | гістограма | reason |
openclaw_liveness_event_loop_delay_max_seconds | гістограма | reason |
openclaw_liveness_event_loop_utilization_ratio | гістограма | reason |
openclaw_liveness_cpu_core_ratio | гістограма | reason |
openclaw_payload_large_total | лічильник | action, channel, plugin, reason, surface |
openclaw_payload_large_bytes | гістограма | action, channel, plugin, reason, surface |
openclaw_memory_bytes | вимірювач | kind |
openclaw_memory_rss_bytes | гістограма | немає |
openclaw_memory_pressure_total | лічильник | level, reason |
openclaw_telemetry_exporter_total | лічильник | exporter, reason, signal, status |
openclaw_prometheus_series_dropped_total | лічильник | немає |
Політика міток
Обмежені мітки з низькою кардинальністю
Обмежені мітки з низькою кардинальністю
Мітки Prometheus залишаються обмеженими й низькокардинальними. Експортер не видає необроблені діагностичні ідентифікатори, як-от
runId, sessionKey, sessionId, callId, toolCallId, ідентифікатори повідомлень, ідентифікатори чатів або ідентифікатори запитів провайдера.Значення міток редагуються й мають відповідати політиці OpenClaw щодо символів із низькою кардинальністю. Значення, що не проходять цю політику, замінюються на unknown, other або none, залежно від метрики. Мітки, схожі на ключі scoped agent session, також замінюються на unknown.Обмеження серій і облік переповнення
Обмеження серій і облік переповнення
Експортер обмежує збережені часові ряди в пам’яті до 2048 серій загалом для лічильників, вимірювачів і гістограм. Нові серії понад це обмеження відкидаються, а
openclaw_prometheus_series_dropped_total збільшується на одиницю щоразу.Відстежуйте цей лічильник як жорсткий сигнал, що атрибут вище за потоком пропускає висококардинальні значення. Експортер ніколи не знімає обмеження автоматично; якщо значення зростає, виправте джерело замість вимикання обмеження.Що ніколи не з’являється у виводі Prometheus
Що ніколи не з’являється у виводі Prometheus
- текст prompt, текст відповіді, вхідні дані інструментів, вихідні дані інструментів, системні prompt
- транскрипти Talk, аудіонавантаження, ідентифікатори викликів, ідентифікатори кімнат, токени передавання, ідентифікатори ходів і необроблені ідентифікатори сеансів
- необроблені ідентифікатори запитів провайдера (лише обмежені хеші, де застосовно, у spans — ніколи в метриках)
- ключі сеансів та ідентифікатори сеансів
- імена хостів, шляхи до файлів, секретні значення
Рецепти PromQL
Вибір між експортом Prometheus і OpenTelemetry
OpenClaw підтримує обидві поверхні незалежно. Ви можете запускати будь-яку з них, обидві або жодну.- diagnostics-prometheus
- diagnostics-otel
- Модель Pull: Prometheus збирає
/api/diagnostics/prometheus. - Зовнішній collector не потрібен.
- Автентифікація через звичайну автентифікацію Gateway.
- Поверхня містить лише метрики (без трас або журналів).
- Найкраще для стеків, уже стандартизованих на Prometheus + Grafana.
Усунення несправностей
Порожнє тіло відповіді
Порожнє тіло відповіді
- Перевірте
diagnostics.enabled: trueу конфігурації. - Переконайтеся, що Plugin увімкнено й завантажено за допомогою
openclaw plugins list --enabled. - Згенеруйте трохи трафіку; лічильники та гістограми виводять рядки лише після принаймні однієї події.
401 / неавторизовано
401 / неавторизовано
Кінцева точка потребує області оператора Gateway (
auth: "gateway" із gatewayRuntimeScopeSurface: "trusted-operator"). Використовуйте той самий токен або пароль, який Prometheus використовує для будь-якого іншого маршруту оператора Gateway. Публічного режиму без автентифікації немає.`openclaw_prometheus_series_dropped_total` зростає
`openclaw_prometheus_series_dropped_total` зростає
Новий атрибут перевищує обмеження у 2048 серій. Перевірте нещодавні метрики на наявність мітки з неочікувано високою кардинальністю та виправте це в джерелі. Експортер навмисно відкидає нові серії замість тихого переписування міток.
Prometheus показує застарілі серії після перезапуску
Prometheus показує застарілі серії після перезапуску
Plugin зберігає стан лише в пам’яті. Після перезапуску Gateway лічильники скидаються до нуля, а gauges перезапускаються з наступного повідомленого значення. Використовуйте PromQL
rate() і increase(), щоб коректно обробляти скидання.Пов’язане
- Експорт діагностики — локальний zip діагностики для пакетів підтримки
- Стан і готовність — проби
/healthzі/readyz - Журналювання — журналювання на основі файлів
- Експорт OpenTelemetry — OTLP push для трас, метрик і журналів