diagnostics-prometheus-Plugin bereitstellen. Es erfasst vertrauenswürdige Diagnosedaten sowie
intern markierte, dem Dispatcher zugeordnete Diagnoseereignisse (Signale zu Warteschlangen, Arbeitsspeicher und
Sitzungswiederherstellung) und stellt einen Prometheus-Textendpunkt unter folgender Adresse bereit:
text/plain; version=0.0.4; charset=utf-8, das standardmäßige
Prometheus-Expositionsformat.
Informationen zu Traces, Protokollen, OTLP-Push und semantischen OpenTelemetry-GenAI-Attributen finden Sie unter OpenTelemetry-Export.
Schnellstart
1
Plugin installieren
2
Plugin aktivieren
- Konfiguration
- CLI
3
Gateway neu starten
Die HTTP-Route wird beim Start des Plugins registriert. Laden Sie das Gateway daher nach der Aktivierung neu.
4
Geschützte Route abrufen
Senden Sie dieselbe Gateway-Authentifizierung, die Ihre Operator-Clients verwenden:
5
Prometheus anbinden
diagnostics.enabled ist standardmäßig auf true gesetzt; setzen Sie es nur in streng abgeschotteten Umgebungen auf false. Wenn es false ist, registriert das Plugin weiterhin die HTTP-Route, es werden jedoch keine Diagnoseereignisse an den Exporter übermittelt, sodass die Antwort leer ist.Exportierte Metriken
Für Metriken zu Modellaufrufen misst
observation_unit="request" eine beobachtbare
Provider-Anfrage. observation_unit="turn" misst einen synthetischen Agentendurchlauf von Claude Code
oder der Codex CLI, der mehrere verborgene Provider-Anfragen enthalten kann.
Halten Sie diese Zeitreihen beim Vergleich der Latenz getrennt.
Richtlinie für Labels
Begrenzte Labels mit niedriger Kardinalität
Begrenzte Labels mit niedriger Kardinalität
Prometheus-Labels bleiben begrenzt und weisen eine niedrige Kardinalität auf. Der Exporter gibt keine unverarbeiteten Diagnosekennungen wie
runId, sessionKey, sessionId, callId, toolCallId, Nachrichten-IDs, Chat-IDs oder IDs von Provider-Anfragen aus.Labelwerte werden unkenntlich gemacht und müssen der OpenClaw-Zeichenrichtlinie für niedrige Kardinalität entsprechen. Werte, die diese Richtlinie nicht erfüllen, werden je nach Metrik durch unknown, other oder none ersetzt. Labels, die wie bereichsbezogene Schlüssel für Agentensitzungen aussehen, werden ebenfalls durch unknown ersetzt.Zeitreihenlimit und Erfassung von Überschreitungen
Zeitreihenlimit und Erfassung von Überschreitungen
Der Exporter begrenzt die Anzahl der im Arbeitsspeicher vorgehaltenen Zeitreihen über Zähler, Messwerte und Histogramme hinweg auf insgesamt 2048 Zeitreihen. Neue Zeitreihen, die dieses Limit überschreiten, werden verworfen, und
openclaw_prometheus_series_dropped_total wird jedes Mal um eins erhöht.Überwachen Sie diesen Zähler als eindeutiges Signal dafür, dass ein vorgelagertes Attribut Werte mit hoher Kardinalität durchlässt. Der Exporter hebt das Limit niemals automatisch auf. Wenn der Zähler steigt, beheben Sie die Ursache, statt das Limit zu deaktivieren.Was niemals in der Prometheus-Ausgabe erscheint
Was niemals in der Prometheus-Ausgabe erscheint
- Prompttext, Antworttext, Tool-Eingaben, Tool-Ausgaben, System-Prompts
- Gesprächstranskripte, Audiodaten, Anruf-IDs, Raum-IDs, Übergabe-Token, Durchlauf-IDs und unverarbeitete Sitzungs-IDs
- unverarbeitete IDs von Provider-Anfragen (gegebenenfalls nur begrenzte Hashwerte in Spans – niemals in Metriken)
- Sitzungsschlüssel und Sitzungs-IDs
- Hostnamen, Dateipfade, geheime Werte
PromQL-Rezepte
Wahl zwischen Prometheus- und OpenTelemetry-Export
OpenClaw unterstützt beide Schnittstellen unabhängig voneinander. Sie können eine, beide oder keine davon verwenden.- diagnostics-prometheus
- diagnostics-otel
- Pull-Modell: Prometheus ruft
/api/diagnostics/prometheusab. - Kein externer Collector erforderlich.
- Authentifizierung über die normale Gateway-Authentifizierung.
- Die Schnittstelle umfasst nur Metriken (keine Traces oder Protokolle).
- Am besten für Stacks geeignet, die bereits auf Prometheus + Grafana standardisiert sind.
Fehlerbehebung
Leerer Antworttext
Leerer Antworttext
- Prüfen Sie, dass
diagnostics.enabledin der Konfiguration nicht auffalsegesetzt ist (der Standardwert isttrue). - Bestätigen Sie mit
openclaw plugins list --enabled, dass das Plugin aktiviert und geladen ist. - Erzeugen Sie etwas Datenverkehr. Zähler und Histogramme geben erst nach mindestens einem Ereignis Zeilen aus.
401 / nicht autorisiert
401 / nicht autorisiert
Der Endpunkt erfordert den Gateway-Operator-Berechtigungsbereich (
auth: "gateway" mit gatewayRuntimeScopeSurface: "trusted-operator"). Verwenden Sie dasselbe Token oder Passwort, das Prometheus für alle anderen Gateway-Operator-Routen verwendet. Es gibt keinen öffentlichen, nicht authentifizierten Modus.`openclaw_prometheus_series_dropped_total` steigt
`openclaw_prometheus_series_dropped_total` steigt
Ein neues Attribut überschreitet das Limit von 2048 Zeitreihen. Untersuchen Sie die aktuellen Metriken auf ein Label mit unerwartet hoher Kardinalität und beheben Sie die Ursache. Der Exporter verwirft absichtlich neue Zeitreihen, statt Labels stillschweigend umzuschreiben.
Prometheus zeigt nach einem Neustart veraltete Zeitreihen an
Prometheus zeigt nach einem Neustart veraltete Zeitreihen an
Das Plugin speichert seinen Zustand ausschließlich im Arbeitsspeicher. Nach einem Neustart des Gateways werden Zähler auf null zurückgesetzt, und Messwerte beginnen erneut mit ihrem nächsten gemeldeten Wert. Verwenden Sie in PromQL
rate() und increase(), um Zurücksetzungen korrekt zu verarbeiten.Verwandte Themen
- Diagnoseexport — lokale Diagnose-ZIP-Datei für Supportpakete
- Systemzustand und Bereitschaft —
/healthz- und/readyz-Prüfungen - Protokollierung — dateibasierte Protokollierung
- OpenTelemetry-Export — OTLP-Push für Traces, Metriken und Protokolle