OpenClaw pode expor métricas de diagnóstico por meio do plugin oficialDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
diagnostics-prometheus. Ele escuta diagnósticos internos confiáveis e renderiza um endpoint de texto Prometheus em:
text/plain; version=0.0.4; charset=utf-8, o formato padrão de exposição do Prometheus.
Para traces, logs, envio OTLP e atributos semânticos GenAI do OpenTelemetry, consulte exportação OpenTelemetry.
Início rápido
Restart the Gateway
A rota HTTP é registrada na inicialização do plugin, então recarregue após habilitar.
diagnostics.enabled: true é obrigatório. Sem isso, o plugin ainda registra a rota HTTP, mas nenhum evento de diagnóstico flui para o exportador, então a resposta fica vazia.Métricas exportadas
| Métrica | Tipo | Rótulos |
|---|---|---|
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_started_total | counter | channel, delivery_kind |
openclaw_message_delivery_total | counter | channel, delivery_kind, error_category, outcome |
openclaw_message_delivery_duration_seconds | histogram | channel, delivery_kind, error_category, outcome |
openclaw_talk_event_total | counter | brain, event_type, mode, provider, transport |
openclaw_talk_event_duration_seconds | histogram | brain, event_type, mode, provider, transport |
openclaw_talk_audio_bytes | histogram | brain, event_type, mode, provider, transport |
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_session_recovery_total | counter | action, active_work_kind, state, status |
openclaw_session_recovery_age_seconds | histogram | action, active_work_kind, state, status |
openclaw_memory_bytes | gauge | kind |
openclaw_memory_rss_bytes | histogram | nenhum |
openclaw_memory_pressure_total | counter | level, reason |
openclaw_telemetry_exporter_total | counter | exporter, reason, signal, status |
openclaw_prometheus_series_dropped_total | counter | nenhum |
Política de rótulos
Bounded, low-cardinality labels
Bounded, low-cardinality labels
Os rótulos do Prometheus permanecem limitados e com baixa cardinalidade. O exportador não emite identificadores de diagnóstico brutos, como
runId, sessionKey, sessionId, callId, toolCallId, IDs de mensagens, IDs de chat ou IDs de solicitação de provedores.Os valores dos rótulos são redigidos e devem corresponder à política de caracteres de baixa cardinalidade do OpenClaw. Valores que falham na política são substituídos por unknown, other ou none, dependendo da métrica.Limite de séries e contabilização de excedente
Limite de séries e contabilização de excedente
O exportador limita as séries temporais mantidas na memória a 2048 séries no total entre contadores, medidores e histogramas. Novas séries além desse limite são descartadas, e
openclaw_prometheus_series_dropped_total é incrementado em um a cada vez.Monitore esse contador como um sinal forte de que um atributo upstream está vazando valores de alta cardinalidade. O exportador nunca aumenta o limite automaticamente; se ele subir, corrija a origem em vez de desativar o limite.O que nunca aparece na saída do Prometheus
O que nunca aparece na saída do Prometheus
- texto de prompt, texto de resposta, entradas de ferramentas, saídas de ferramentas, prompts do sistema
- transcrições de conversas, payloads de áudio, IDs de chamadas, IDs de salas, tokens de handoff, IDs de turnos e IDs brutos de sessão
- IDs brutos de requisição de provedores (apenas hashes limitados, quando aplicável, em spans — nunca em métricas)
- chaves de sessão e IDs de sessão
- nomes de host, caminhos de arquivos, valores secretos
Receitas de PromQL
Escolhendo entre exportação para Prometheus e OpenTelemetry
O OpenClaw oferece suporte às duas superfícies de forma independente. Você pode executar uma, ambas ou nenhuma.- diagnostics-prometheus
- diagnostics-otel
- Modelo de pull: o Prometheus coleta
/api/diagnostics/prometheus. - Nenhum coletor externo é necessário.
- Autenticado pela autenticação normal do Gateway.
- A superfície é apenas de métricas (sem traces nem logs).
- Melhor para stacks já padronizadas em Prometheus + Grafana.
Solução de problemas
Corpo de resposta vazio
Corpo de resposta vazio
- Verifique
diagnostics.enabled: truena configuração. - Confirme que o plugin está habilitado e carregado com
openclaw plugins list --enabled. - Gere algum tráfego; contadores e histogramas só emitem linhas após pelo menos um evento.
401 / não autorizado
401 / não autorizado
O endpoint exige o escopo de operador do Gateway (
auth: "gateway" com gatewayRuntimeScopeSurface: "trusted-operator"). Use o mesmo token ou senha que o Prometheus usa para qualquer outra rota de operador do Gateway. Não há modo público não autenticado.`openclaw_prometheus_series_dropped_total` está subindo
`openclaw_prometheus_series_dropped_total` está subindo
Um novo atributo está excedendo o limite de 2048 séries. Inspecione métricas recentes em busca de um rótulo com cardinalidade inesperadamente alta e corrija-o na origem. O exportador descarta intencionalmente novas séries em vez de reescrever rótulos silenciosamente.
O Prometheus mostra séries obsoletas após uma reinicialização
O Prometheus mostra séries obsoletas após uma reinicialização
O plugin mantém estado apenas na memória. Após uma reinicialização do Gateway, os contadores são redefinidos para zero e os medidores reiniciam no próximo valor relatado. Use
rate() e increase() do PromQL para lidar com redefinições corretamente.Relacionado
- Exportação de diagnósticos — zip de diagnósticos local para pacotes de suporte
- Saúde e prontidão — sondas
/healthze/readyz - Registro em log — registro em log baseado em arquivos
- Exportação do OpenTelemetry — envio OTLP para rastreamentos, métricas e registros