Skip to main content
Flagi diagnostyczne włączają dodatkowe rejestrowanie dla jednego podsystemu bez globalnego podnoszenia poziomu logging.level. Flaga nie ma żadnego efektu, jeśli podsystem jej nie sprawdza.

Jak to działa

  • Flagi są ciągami znaków niewrażliwymi na wielkość liter, pobieranymi z diagnostics.flags w konfiguracji oraz z nadpisania przez zmienną środowiskową OPENCLAW_DIAGNOSTICS; duplikaty są usuwane, a litery zamieniane na małe.
  • name.* pasuje do samego name oraz wszystkiego poniżej name. (na przykład telegram.* pasuje do telegram.http).
  • * lub all włącza każdą flagę.
  • Po zmianie diagnostics.flags w konfiguracji uruchom Gateway ponownie; konfiguracja ta nie jest przeładowywana na gorąco.

Znane flagi

Włączanie przez konfigurację

Wiele flag:

Nadpisanie zmienną środowiskową (jednorazowe)

Wartości są rozdzielane przecinkami lub białymi znakami. Wartości specjalne: OPENCLAW_DIAGNOSTICS=0 wyłącza dla danego procesu flagi pochodzące zarówno ze zmiennej środowiskowej, jak i z konfiguracji. Jest to przydatne do tymczasowego wyciszenia flagi profilera pozostawionej włączonej w konfiguracji bez edytowania pliku.

Flagi profilera

Flagi profilera sterują lekkimi przedziałami pomiaru czasu; gdy są wyłączone, nie powodują żadnego narzutu. Włącz wszystkie przedziały kontrolowane przez profiler na czas jednego uruchomienia Gateway:
Włącz tylko przedziały profilera wysyłania odpowiedzi:
Włącz tylko przedziały profilera uruchamiania, narzędzi i wątków serwera aplikacji Codex:
profiler włącza zarówno profiler odpowiedzi, jak i profiler Codex; użyj nazw flag o węższym zakresie, aby włączyć tylko jeden z nich. Możesz też ustawić je w konfiguracji:
Po zmianie flag konfiguracji uruchom Gateway ponownie. Aby wyłączyć flagę profilera, usuń ją z diagnostics.flags i uruchom Gateway ponownie albo uruchom proces z OPENCLAW_DIAGNOSTICS=0, aby na czas tego uruchomienia nadpisać wszystkie flagi diagnostyczne.

Artefakty osi czasu

Flaga timeline (alias: diagnostics.timeline) zapisuje ustrukturyzowane zdarzenia pomiaru czasu uruchamiania i działania w formacie JSONL na potrzeby zewnętrznych zestawów testów kontroli jakości:
Możesz też włączyć ją w konfiguracji:
Ścieżka wyjściowa zawsze pochodzi z OPENCLAW_DIAGNOSTICS_TIMELINE_PATH, nawet gdy sama flaga jest ustawiona w konfiguracji; nie istnieje klucz konfiguracji określający tę ścieżkę. Gdy timeline jest włączona wyłącznie w konfiguracji, brakuje najwcześniejszych przedziałów ładowania konfiguracji, ponieważ OpenClaw nie odczytał jej jeszcze w tym momencie; kolejne przedziały uruchamiania są rejestrowane normalnie. OPENCLAW_DIAGNOSTICS=1, =all i =* również włączają oś czasu, ponieważ włączają każdą flagę. Użyj flagi timeline o węższym zakresie, jeśli potrzebujesz wyłącznie artefaktu JSONL, bez wszystkich pozostałych flag diagnostycznych. Próbki opóźnienia pętli zdarzeń na osi czasu wymagają dodatkowego jawnego włączenia poza timeline: oprócz włączenia osi czasu ustaw OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 (lub on/true/yes). Rekordy osi czasu korzystają z otoczki openclaw.diagnostics.v1 i mogą zawierać identyfikatory procesów, nazwy faz, nazwy przedziałów, czasy trwania, identyfikatory pluginów, liczby zależności, próbki opóźnienia pętli zdarzeń, nazwy operacji dostawcy, stan zakończenia procesu potomnego oraz nazwy i komunikaty błędów uruchamiania. Traktuj pliki osi czasu jako lokalne artefakty diagnostyczne; przejrzyj je przed udostępnieniem poza swoim urządzeniem.

Miejsce zapisywania dzienników

Flagi zapisują komunikaty w standardowym pliku dziennika diagnostycznego. Domyślnie:
Jeśli ustawisz logging.file, zostanie użyta podana tam ścieżka. Dzienniki są w formacie JSONL (jeden obiekt JSON w każdym wierszu). Redagowanie nadal odbywa się zgodnie z ustawieniem logging.redactSensitive. Pełny opis rozpoznawania ścieżki dziennika, rotacji i modelu redagowania zawiera sekcja Rejestrowanie.

Wyodrębnianie dzienników

Wybierz najnowszy plik dziennika:
Odfiltruj diagnostykę HTTP Telegram:
Odfiltruj diagnostykę HTTP Brave Search:
Możesz też obserwować dziennik podczas odtwarzania problemu:
W przypadku zdalnych instancji Gateway użyj zamiast tego openclaw logs --follow (patrz /cli/logs).

Uwagi

  • Jeśli logging.level ma poziom wyższy niż warn, komunikaty kontrolowane flagami mogą zostać pominięte. Domyślny poziom info jest odpowiedni.
  • brave.http rejestruje adresy URL i parametry zapytań żądań Brave Search, stan i czas odpowiedzi oraz zdarzenia trafienia, chybienia i zapisu w pamięci podręcznej. Nie rejestruje klucza API (przesyłanego w nagłówku żądania) ani treści odpowiedzi, ale zapytania wyszukiwania mogą zawierać dane wrażliwe.
  • Pozostawienie flag włączonych jest bezpieczne; wpływają one tylko na liczbę wpisów dziennika dotyczących określonego podsystemu.
  • Użyj sekcji /logging, aby zmienić miejsca docelowe dzienników, poziomy i redagowanie.

Powiązane