Skip to main content
OpenClaw może udostępniać metryki diagnostyczne za pośrednictwem oficjalnego pluginu 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:
Typ zawartości to text/plain; version=0.0.4; charset=utf-8, czyli standardowy format ekspozycji Prometheus.
Trasa korzysta z uwierzytelniania Gateway (zakres operatora, interfejs dla zaufanego operatora). Nie udostępniaj jej jako publicznego, nieuwierzytelnionego punktu końcowego /metrics. Pobieraj z niej metryki przez tę samą ścieżkę uwierzytelniania, której używasz w przypadku innych interfejsów API operatora.
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

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

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.
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.
  • 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

W przypadku pulpitów obejmujących wielu dostawców preferuj gen_ai_client_token_usage: metryka ta jest zgodna z konwencjami semantycznymi GenAI projektu OpenTelemetry i spójna z metrykami usług GenAI innych niż OpenClaw.

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.
  • 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

  • Sprawdź, czy diagnostics.enabled nie ustawiono w konfiguracji na false (wartość domyślna to true).
  • 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.
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.
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.
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