Diagnostics
Diagnostische vlaggen
Diagnostische vlaggen schakelen extra logboekregistratie voor één subsysteem in zonder
logging.level globaal te verhogen. Een vlag heeft geen effect tenzij een subsysteem deze controleert.
Hoe het werkt
- Vlaggen zijn hoofdletterongevoelige tekenreeksen, bepaald op basis van
diagnostics.flagsin de configuratie plus de omgevingsvariabeleOPENCLAW_DIAGNOSTICS, waarna duplicaten worden verwijderd en alles naar kleine letters wordt omgezet. name.*komt overeen metnamezelf en alles ondername.(bijvoorbeeldtelegram.*komt overeen mettelegram.http).*ofallschakelt elke vlag in.- Start de Gateway opnieuw nadat u
diagnostics.flagsin de configuratie hebt gewijzigd; deze instelling wordt niet dynamisch herladen.
Bekende vlaggen
| Vlag | Schakelt in |
|---|---|
telegram.http |
Logboekregistratie van HTTP-fouten van de Telegram Bot API |
brave.http |
Logboekregistratie van verzoeken, antwoorden en cache van Brave Search |
profiler |
Profiler voor de antwoordfase en Codex-appserverprofiler (beide) |
reply.profiler |
Alleen de profiler voor de antwoordfase |
codex.profiler |
Alleen de Codex-appserverprofiler |
timeline |
Gestructureerd JSONL-tijdlijnartefact (zie hieronder) |
Inschakelen via configuratie
{ "diagnostics": { "flags": ["telegram.http"] }}Meerdere vlaggen:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}Overschrijven via omgevingsvariabele (eenmalig)
OPENCLAW_DIAGNOSTICS=telegram.http,brave.httpWaarden worden gesplitst op komma's of witruimte. Speciale waarden:
| Waarde | Effect |
|---|---|
0, false, off, none |
Schakelt alle vlaggen uit en overschrijft ook de configuratie |
1, true, all, * |
Schakelt elke vlag in |
OPENCLAW_DIAGNOSTICS=0 schakelt voor dat proces vlaggen uit zowel de omgevingsvariabele als de configuratie uit.
Dit is handig om tijdelijk een in de configuratie ingeschakelde profilervlag te onderdrukken
zonder het bestand te bewerken.
Profilervlaggen
Profilervlaggen beheren lichtgewicht tijdmetingen; wanneer ze uitgeschakeld zijn, veroorzaken ze geen overhead.
Schakel alle door de profiler beheerde tijdmetingen in voor één Gateway-uitvoering:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runSchakel alleen profiler-tijdmetingen voor antwoorddistributie in:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runSchakel alleen profiler-tijdmetingen voor opstarten, tools en threads van de Codex-appserver in:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runprofiler schakelt zowel de antwoordprofiler als de Codex-profiler in; gebruik de
specifieke vlagnamen om er slechts één in te schakelen.
Of stel dit in de configuratie in:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}Start de Gateway opnieuw nadat u configuratievlaggen hebt gewijzigd. Om een profilervlag uit te schakelen,
verwijdert u deze uit diagnostics.flags en start u opnieuw, of start u het proces met
OPENCLAW_DIAGNOSTICS=0 om elke diagnostische vlag voor die uitvoering te overschrijven.
Tijdlijnartefacten
De vlag timeline (alias: diagnostics.timeline) schrijft gestructureerde gebeurtenissen voor
opstart- en uitvoeringstijdmetingen als JSONL voor externe QA-testomgevingen:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runOf schakel deze in de configuratie in:
{ "diagnostics": { "flags": ["timeline"] }}Het uitvoerpad komt altijd uit OPENCLAW_DIAGNOSTICS_TIMELINE_PATH, zelfs
wanneer de vlag zelf in de configuratie is ingesteld; er is geen configuratiesleutel voor het pad.
Wanneer timeline alleen via de configuratie is ingeschakeld, ontbreken de vroegste tijdmetingen
voor het laden van de configuratie, omdat OpenClaw de configuratie dan nog niet heeft gelezen; latere opstarttijdmetingen
worden normaal vastgelegd.
OPENCLAW_DIAGNOSTICS=1, =all en =* schakelen ook de tijdlijn in, omdat ze
elke vlag inschakelen. Gebruik bij voorkeur de specifieke vlag timeline wanneer u alleen het
JSONL-artefact wilt en niet alle andere diagnostische vlaggen.
Metingen van de event-loopvertraging in de tijdlijn vereisen naast
timeline nog een extra expliciete inschakeling: stel OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 (of on/true/yes) in
naast het inschakelen van de tijdlijn.
Tijdlijnrecords gebruiken de envelop openclaw.diagnostics.v1 en kunnen
proces-ID's, fasenamen, namen van tijdmetingen, tijdsduren, Plugin-ID's, aantallen
afhankelijkheden, metingen van event-loopvertraging, namen van providerbewerkingen, afsluitstatussen
van subprocessen en namen/berichten van opstartfouten bevatten. Behandel tijdlijnbestanden als lokale
diagnostische artefacten; controleer ze voordat u ze buiten uw computer deelt.
Waar logboeken worden opgeslagen
Vlaggen schrijven logboekvermeldingen naar het standaardbestand voor diagnostische logboeken. Standaard:
/tmp/openclaw/openclaw-YYYY-MM-DD.logAls u logging.file instelt, wordt in plaats daarvan dat pad gebruikt. Logboeken zijn in JSONL-indeling (één JSON-
object per regel). Redactie wordt nog steeds toegepast op basis van logging.redactSensitive.
Zie Logboekregistratie voor het volledige model voor padbepaling, rotatie en
redactie van logboeken.
Logboeken extraheren
Selecteer het nieuwste logbestand:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1Filter op HTTP-diagnostiek van Telegram:
rg "telegram http error" /tmp/openclaw/openclaw-*.logFilter op HTTP-diagnostiek van Brave Search:
rg "brave http" /tmp/openclaw/openclaw-*.logOf volg het logboek tijdens het reproduceren:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"Gebruik voor externe Gateways in plaats daarvan openclaw logs --follow (zie
/cli/logs).
Opmerkingen
- Als
logging.levelhoger is ingesteld danwarn, kunnen door vlaggen beheerde logboekvermeldingen worden onderdrukt. De standaardwaardeinfois geschikt. brave.httpregistreert verzoek-URL's/queryparameters van Brave Search, de antwoordstatus/-timing en gebeurtenissen voor cachetreffers, cachemissers en cacheschrijfacties. De API-sleutel (die als verzoekheader wordt verzonden) en antwoordteksten worden niet geregistreerd, maar zoekopdrachten kunnen gevoelig zijn.- Vlaggen kunnen veilig ingeschakeld blijven; ze beïnvloeden alleen het logboekvolume voor het specifieke subsysteem.
- Gebruik /logging om logboekbestemmingen, niveaus en redactie te wijzigen.