Skip to main content
OpenClaw può esporre le metriche diagnostiche tramite il Plugin ufficiale diagnostics-prometheus. Esso acquisisce i dati diagnostici attendibili e gli eventi diagnostici contrassegnati internamente e gestiti dal dispatcher (segnali relativi a code, memoria e ripristino delle sessioni), quindi rende disponibile un endpoint di testo Prometheus all’indirizzo:
Il tipo di contenuto è text/plain; version=0.0.4; charset=utf-8, il formato standard di esposizione di Prometheus.
La route usa l’autenticazione del Gateway (ambito operatore, superficie riservata agli operatori attendibili). Non esporla come endpoint /metrics pubblico e privo di autenticazione. Eseguine lo scraping tramite lo stesso percorso di autenticazione usato per le altre API per operatori.
Per tracce, log, push OTLP e attributi semantici GenAI di OpenTelemetry, consulta Esportazione OpenTelemetry.

Avvio rapido

1

Installa il Plugin

2

Abilita il Plugin

3

Riavvia il Gateway

La route HTTP viene registrata all’avvio del Plugin, quindi ricarica il Gateway dopo l’abilitazione.
4

Esegui lo scraping della route protetta

Invia la stessa autenticazione del Gateway usata dai client degli operatori:
5

Collega Prometheus

Il valore predefinito di diagnostics.enabled è true; impostalo su false solo in ambienti con vincoli rigorosi. Se è false, il plugin registra comunque la route HTTP, ma nessun evento diagnostico viene inoltrato all’esportatore, quindi la risposta è vuota.

Metriche esportate

Criteri per le etichette

Le etichette Prometheus rimangono limitate e a bassa cardinalità. L’esportatore non emette identificatori diagnostici non elaborati come runId, sessionKey, sessionId, callId, toolCallId, ID dei messaggi, ID delle chat o ID delle richieste del provider.I valori delle etichette vengono oscurati e devono rispettare i criteri di OpenClaw per i caratteri a bassa cardinalità. I valori che non rispettano tali criteri vengono sostituiti con unknown, other o none, a seconda della metrica. Anche le etichette che sembrano chiavi di sessione con ambito agente vengono sostituite con unknown.
L’esportatore limita a 2048 il numero complessivo di serie temporali mantenute in memoria tra contatori, indicatori e istogrammi. Le nuove serie che superano tale limite vengono scartate e openclaw_prometheus_series_dropped_total viene incrementato di uno ogni volta.Monitora questo contatore come segnale inequivocabile che un attributo a monte sta generando valori ad alta cardinalità. L’esportatore non innalza mai automaticamente il limite; se il contatore aumenta, correggi l’origine anziché disabilitare il limite.
  • testo dei prompt, testo delle risposte, input degli strumenti, output degli strumenti, prompt di sistema
  • trascrizioni delle conversazioni, payload audio, ID delle chiamate, ID delle stanze, token di passaggio, ID dei turni e ID di sessione non elaborati
  • ID delle richieste del provider non elaborati (solo hash con cardinalità limitata, ove applicabile, negli span, mai nelle metriche)
  • chiavi e ID di sessione
  • nomi host, percorsi di file, valori segreti

Ricette PromQL

Per i dashboard che aggregano più provider, preferisci gen_ai_client_token_usage: segue le convenzioni semantiche GenAI di OpenTelemetry ed è coerente con le metriche dei servizi GenAI diversi da OpenClaw.

Scelta tra esportazione Prometheus e OpenTelemetry

OpenClaw supporta entrambe le interfacce in modo indipendente. Puoi usare una delle due, entrambe oppure nessuna.
  • Modello pull: Prometheus esegue lo scraping di /api/diagnostics/prometheus.
  • Non è richiesto alcun collector esterno.
  • Autenticazione tramite la normale autenticazione del Gateway.
  • L’interfaccia include solo metriche, senza tracce né log.
  • Ideale per gli stack già standardizzati su Prometheus + Grafana.

Risoluzione dei problemi

  • Verifica che diagnostics.enabled non sia impostato su false nella configurazione (il valore predefinito è true).
  • Verifica che il Plugin sia abilitato e caricato con openclaw plugins list --enabled.
  • Genera del traffico; i contatori e gli istogrammi producono righe solo dopo almeno un evento.
L’endpoint richiede l’ambito operatore del Gateway (auth: "gateway" con gatewayRuntimeScopeSurface: "trusted-operator"). Usa lo stesso token o la stessa password utilizzati da Prometheus per qualsiasi altra route operatore del Gateway. Non è disponibile alcuna modalità pubblica senza autenticazione.
Un nuovo attributo sta superando il limite di 2048 serie. Esamina le metriche recenti per individuare un’etichetta con una cardinalità inaspettatamente elevata e correggila all’origine. L’esportatore scarta intenzionalmente le nuove serie anziché riscrivere silenziosamente le etichette.
Il Plugin mantiene lo stato solo in memoria. Dopo il riavvio del Gateway, i contatori vengono azzerati e gli indicatori ripartono dal successivo valore segnalato. Usa rate() e increase() di PromQL per gestire correttamente gli azzeramenti.

Contenuti correlati