diagnostics-prometheus. Nasłuchuje on zaufanych danych diagnostycznych oraz
wewnętrznie oznaczonych zdarzeń diagnostycznych należących do dyspozytora (sygnałów
kolejki, pamięci i odzyskiwania sesji), a następnie udostępnia punkt końcowy w formacie tekstowym Prometheus pod adresem:
text/plain; version=0.0.4; charset=utf-8, czyli standardowy
format ekspozycji Prometheus.
Informacje o śladach, dziennikach, wysyłaniu OTLP i atrybutach semantycznych OpenTelemetry GenAI znajdziesz w sekcji Eksport OpenTelemetry.
Szybki start
1
Zainstaluj plugin
2
Włącz plugin
- Konfiguracja
- CLI
3
Uruchom ponownie Gateway
Trasa HTTP jest rejestrowana podczas uruchamiania pluginu, dlatego po jego włączeniu wykonaj ponowne załadowanie.
4
Pobierz metryki z chronionej trasy
Prześlij te same dane uwierzytelniające Gateway, których używają klienty operatora:
5
Podłącz Prometheus
Domyślna wartość
diagnostics.enabled to true; ustaw ją na false tylko w ściśle ograniczonych środowiskach. Jeśli ma wartość false, plugin nadal rejestruje trasę HTTP, ale żadne zdarzenia diagnostyczne nie trafiają do eksportera, więc odpowiedź jest pusta.Eksportowane metryki
Zasady dotyczące etykiet
Ograniczone etykiety o niskiej kardynalności
Ograniczone etykiety o niskiej kardynalności
Etykiety Prometheus pozostają ograniczone i mają niską kardynalność. Eksporter nie emituje nieprzetworzonych identyfikatorów diagnostycznych, takich jak
runId, sessionKey, sessionId, callId, toolCallId, identyfikatory wiadomości, identyfikatory czatów ani identyfikatory żądań dostawcy.Wartości etykiet są redagowane i muszą być zgodne z zasadami OpenClaw dotyczącymi znaków dozwolonych w wartościach o niskiej kardynalności. Wartości, które nie spełniają tych zasad, są zastępowane przez unknown, other lub none, zależnie od metryki. Etykiety przypominające klucze sesji agenta z określonym zakresem są również zastępowane przez unknown.Limit serii i rozliczanie nadmiaru
Limit serii i rozliczanie nadmiaru
Eksporter ogranicza liczbę przechowywanych w pamięci szeregów czasowych do 2048 łącznie dla liczników, mierników i histogramów. Nowe szeregi przekraczające ten limit są odrzucane, a wartość
openclaw_prometheus_series_dropped_total jest za każdym razem zwiększana o jeden.Obserwuj ten licznik jako jednoznaczny sygnał, że atrybut na wcześniejszym etapie przepływu powoduje wyciek wartości o wysokiej kardynalności. Eksporter nigdy nie zwiększa limitu automatycznie; jeśli licznik rośnie, napraw źródło zamiast wyłączać limit.Co nigdy nie pojawia się w danych wyjściowych Prometheus
Co nigdy nie pojawia się w danych wyjściowych Prometheus
- teksty promptów, teksty odpowiedzi, dane wejściowe narzędzi, dane wyjściowe narzędzi, prompty systemowe
- transkrypcje rozmów, dane audio, identyfikatory połączeń, identyfikatory pokojów, tokeny przekazania, identyfikatory tur i nieprzetworzone identyfikatory sesji
- nieprzetworzone identyfikatory żądań dostawcy (tylko skróty o ograniczonej liczbie wartości, tam gdzie ma to zastosowanie, w spanach — nigdy w metrykach)
- klucze sesji i identyfikatory sesji
- nazwy hostów, ścieżki plików, wartości sekretów
Przepisy PromQL
Wybór między eksportem Prometheus a OpenTelemetry
OpenClaw obsługuje oba mechanizmy niezależnie. Można używać jednego z nich, obu lub żadnego.- diagnostics-prometheus
- diagnostics-otel
- Model pull: Prometheus pobiera dane z
/api/diagnostics/prometheus. - Zewnętrzny kolektor nie jest wymagany.
- Uwierzytelnianie odbywa się przy użyciu standardowego mechanizmu uwierzytelniania Gateway.
- Udostępniane są tylko metryki (bez śladów i dzienników).
- Najlepsze rozwiązanie dla stosów już ustandaryzowanych na Prometheus + Grafana.
Rozwiązywanie problemów
Pusta treść odpowiedzi
Pusta treść odpowiedzi
- Sprawdź, czy
diagnostics.enablednie ustawiono w konfiguracji nafalse(wartość domyślna totrue). - Potwierdź za pomocą polecenia
openclaw plugins list --enabled, że Plugin jest włączony i załadowany. - Wygeneruj ruch; liczniki i histogramy generują wiersze dopiero po wystąpieniu co najmniej jednego zdarzenia.
401 / brak autoryzacji
401 / brak autoryzacji
Punkt końcowy wymaga zakresu operatora Gateway (
auth: "gateway" z gatewayRuntimeScopeSurface: "trusted-operator"). Użyj tego samego tokenu lub hasła, którego Prometheus używa dla pozostałych tras operatora Gateway. Publiczny tryb bez uwierzytelniania nie jest dostępny.Wartość `openclaw_prometheus_series_dropped_total` rośnie
Wartość `openclaw_prometheus_series_dropped_total` rośnie
Nowy atrybut przekracza limit 2048 szeregów. Sprawdź ostatnie metryki pod kątem etykiety o nieoczekiwanie wysokiej kardynalności i usuń problem u źródła. Eksporter celowo odrzuca nowe szeregi zamiast niejawnie przepisywać etykiety.
Prometheus pokazuje nieaktualne szeregi po ponownym uruchomieniu
Prometheus pokazuje nieaktualne szeregi po ponownym uruchomieniu
Plugin przechowuje stan wyłącznie w pamięci. Po ponownym uruchomieniu Gateway liczniki są zerowane, a mierniki rozpoczynają od kolejnej zgłoszonej wartości. Używaj funkcji PromQL
rate() i increase(), aby prawidłowo obsługiwać zerowania.Powiązane materiały
- Eksport diagnostyki — lokalne archiwum ZIP z diagnostyką dołączane do pakietów pomocy technicznej
- Kondycja i gotowość — sondy
/healthzi/readyz - Rejestrowanie — rejestrowanie oparte na plikach
- Eksport OpenTelemetry — wysyłanie przez OTLP śladów, metryk i dzienników