diagnostics-prometheus. Nasłuchuje on zaufanej wewnętrznej diagnostyki i renderuje punkt końcowy tekstowy Prometheus pod adresem:
text/plain; version=0.0.4; charset=utf-8, czyli standardowy format ekspozycji Prometheus.
Informacje o śladach, logach, push OTLP i semantycznych atrybutach OpenTelemetry GenAI znajdziesz w Eksport OpenTelemetry.
Szybki start
Uruchom ponownie Gateway
Trasa HTTP jest rejestrowana przy starcie pluginu, więc po włączeniu wykonaj przeładowanie.
Wymagane jest
diagnostics.enabled: true. Bez tego plugin nadal rejestruje trasę HTTP, ale żadne zdarzenia diagnostyczne nie trafiają do eksportera, więc odpowiedź jest pusta.Eksportowane metryki
| Metryka | Typ | Etykiety |
|---|---|---|
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_total | counter | channel, delivery_kind, error_category, outcome |
openclaw_message_delivery_duration_seconds | histogram | channel, delivery_kind, error_category, outcome |
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_memory_bytes | gauge | kind |
openclaw_memory_rss_bytes | histogram | none |
openclaw_memory_pressure_total | counter | level, reason |
openclaw_telemetry_exporter_total | counter | exporter, reason, signal, status |
openclaw_prometheus_series_dropped_total | counter | none |
Polityka etykiet
Ograniczone etykiety o niskiej kardynalności
Ograniczone etykiety o niskiej kardynalności
Etykiety Prometheus pozostają ograniczone i mają niską kardynalność. Eksporter nie emituje surowych identyfikatorów diagnostycznych, takich jak
runId, sessionKey, sessionId, callId, toolCallId, identyfikatory wiadomości, identyfikatory czatów ani identyfikatory żądań providera.Wartości etykiet są redagowane i muszą być zgodne z polityką znaków niskiej kardynalności OpenClaw. Wartości, które nie spełniają tej polityki, są zastępowane przez unknown, other lub none, zależnie od metryki.Limit serii i rozliczanie przepełnienia
Limit serii i rozliczanie przepełnienia
Eksporter ogranicza liczbę utrzymywanych serii czasowych w pamięci do 2048 serii łącznie dla counterów, gauge’y i histogramów. Nowe serie ponad ten limit są odrzucane, a
openclaw_prometheus_series_dropped_total zwiększa się o jeden przy każdym takim przypadku.Traktuj ten counter jako twardy sygnał, że jakiś atrybut wyżej w stosie przecieka wartości o wysokiej kardynalności. Eksporter nigdy nie podnosi limitu automatycznie; jeśli wartość rośnie, napraw źródło zamiast wyłączać limit.Co nigdy nie pojawia się w wyjściu Prometheus
Co nigdy nie pojawia się w wyjściu Prometheus
- tekst promptu, tekst odpowiedzi, wejścia narzędzi, wyjścia narzędzi, prompty systemowe
- surowe identyfikatory żądań providera (tylko ograniczone hashe, tam gdzie dotyczy, na spanach — nigdy w metrykach)
- klucze sesji i identyfikatory sesji
- nazwy hostów, ścieżki plików, wartości sekretów
Receptury PromQL
Wybór między Prometheus a eksportem OpenTelemetry
OpenClaw obsługuje obie powierzchnie niezależnie. Możesz używać jednej, obu albo żadnej.- diagnostics-prometheus
- diagnostics-otel
- Model pull: Prometheus odczytuje
/api/diagnostics/prometheus. - Nie wymaga zewnętrznego collectora.
- Uwierzytelnianie przez zwykłe auth Gateway.
- Powierzchnia obejmuje tylko metryki (bez śladów i logów).
- Najlepsze dla stosów już opartych na Prometheus + Grafana.
Rozwiązywanie problemów
Puste body odpowiedzi
Puste body odpowiedzi
- Sprawdź
diagnostics.enabled: truew konfiguracji. - Potwierdź, że plugin jest włączony i załadowany, używając
openclaw plugins list --enabled. - Wygeneruj trochę ruchu; countery i histogramy emitują linie dopiero po co najmniej jednym zdarzeniu.
401 / unauthorized
401 / unauthorized
`openclaw_prometheus_series_dropped_total` rośnie
`openclaw_prometheus_series_dropped_total` rośnie
Nowy atrybut przekracza limit 2048 serii. Sprawdź ostatnie metryki pod kątem etykiety o nieoczekiwanie wysokiej kardynalności i napraw źródło. Eksporter celowo odrzuca nowe serie zamiast po cichu przepisywać etykiety.
Prometheus pokazuje nieaktualne serie po restarcie
Prometheus pokazuje nieaktualne serie po restarcie
Plugin przechowuje stan wyłącznie w pamięci. Po restarcie Gateway countery resetują się do zera, a gauge’e startują od następnej zgłoszonej wartości. Używaj w PromQL
rate() i increase(), aby poprawnie obsługiwać resety.Powiązane
- Eksport diagnostyki — lokalny zip diagnostyczny do paczek wsparcia
- Health i gotowość — sondy
/healthzi/readyz - Logowanie — logowanie oparte na plikach
- Eksport OpenTelemetry — push OTLP dla śladów, metryk i logów