На этой странице
На этой странице
Diagnostics
Флаги диагностики
Флаги диагностики включают дополнительное журналирование для одной подсистемы, не повышая
logging.level глобально. Флаг не действует, если подсистема его не проверяет.
Как это работает
- Флаги — это строки без учета регистра, получаемые из
diagnostics.flagsв конфигурации с учетом переопределения переменной окруженияOPENCLAW_DIAGNOSTICS, с удалением дубликатов и приведением к нижнему регистру. name.*соответствует самомуnameи всему, что находится подname.(например,telegram.*соответствуетtelegram.http).*илиallвключает все флаги.- Перезапустите Gateway после изменения
diagnostics.flagsв конфигурации; оно не применяется без перезапуска.
Известные флаги
| Флаг | Что включает |
|---|---|
telegram.http |
Журналирование HTTP-ошибок Telegram Bot API |
brave.http |
Журналирование запросов, ответов и кеша Brave Search |
profiler |
Профилировщик этапа ответа и профилировщик сервера приложений Codex (оба) |
reply.profiler |
Только профилировщик этапа ответа |
codex.profiler |
Только профилировщик сервера приложений Codex |
timeline |
Структурированный артефакт временной шкалы JSONL (см. ниже) |
Включение через конфигурацию
{ "diagnostics": { "flags": ["telegram.http"] }}Несколько флагов:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}Переопределение переменной окружения (однократное)
OPENCLAW_DIAGNOSTICS=telegram.http,brave.httpЗначения разделяются запятыми или пробелами. Специальные значения:
| Значение | Эффект |
|---|---|
0, false, off, none |
Отключает все флаги, также переопределяя конфигурацию |
1, true, all, * |
Включает все флаги |
OPENCLAW_DIAGNOSTICS=0 отключает флаги как из переменной окружения, так и из конфигурации для этого
процесса. Это полезно, чтобы временно отключить флаг профилировщика, оставленный включенным в конфигурации,
не редактируя файл.
Флаги профилировщика
Флаги профилировщика управляют легковесными интервалами измерения времени; в выключенном состоянии они не создают накладных расходов.
Включить все интервалы, управляемые профилировщиком, для одного запуска Gateway:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runВключить только интервалы профилировщика диспетчеризации ответов:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runВключить только интервалы профилировщика запуска, инструментов и потоков сервера приложений Codex:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runprofiler включает и профилировщик ответов, и профилировщик Codex; используйте
имена флагов с областью действия, чтобы включить только один из них.
Или задайте их в конфигурации:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}Перезапустите Gateway после изменения флагов конфигурации. Чтобы отключить флаг профилировщика,
удалите его из diagnostics.flags и перезапустите Gateway либо запустите процесс с
OPENCLAW_DIAGNOSTICS=0, чтобы переопределить все флаги диагностики для этого запуска.
Артефакты временной шкалы
Флаг timeline (псевдоним: diagnostics.timeline) записывает структурированные события времени запуска
и выполнения в формате JSONL для внешних средств автоматизации контроля качества:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runИли включите его в конфигурации:
{ "diagnostics": { "flags": ["timeline"] }}Путь вывода всегда берется из OPENCLAW_DIAGNOSTICS_TIMELINE_PATH, даже
если сам флаг задан в конфигурации; ключа конфигурации для пути нет.
Если timeline включен только в конфигурации, самые ранние интервалы загрузки конфигурации
отсутствуют, поскольку OpenClaw еще не прочитал конфигурацию; последующие интервалы запуска
фиксируются как обычно.
OPENCLAW_DIAGNOSTICS=1, =all и =* также включают временную шкалу, поскольку они
включают все флаги. Используйте флаг с областью действия timeline, если вам нужен только
артефакт JSONL, а не все остальные флаги диагностики.
Для выборок задержки цикла событий во временной шкале требуется еще одно явное включение помимо
timeline: задайте OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 (или on/true/yes) в
дополнение к включению временной шкалы.
Записи временной шкалы используют оболочку openclaw.diagnostics.v1 и могут включать
идентификаторы процессов, имена фаз, имена интервалов, длительности, идентификаторы плагинов, количество
зависимостей, выборки задержки цикла событий, имена операций провайдера, состояние завершения
дочерних процессов, а также имена и сообщения ошибок запуска. Считайте файлы временной шкалы локальными
диагностическими артефактами; проверяйте их перед передачей за пределы своего компьютера.
Куда записываются журналы
Флаги записывают сообщения в стандартный файл журнала диагностики. По умолчанию:
/tmp/openclaw/openclaw-YYYY-MM-DD.logЕсли задан logging.file, вместо этого используется указанный в нем путь. Журналы имеют формат JSONL (один объект JSON
на строку). Редактирование конфиденциальных данных по-прежнему применяется на основе logging.redactSensitive.
Полное описание определения пути журнала, ротации и
редактирования конфиденциальных данных см. в разделе Журналирование.
Извлечение журналов
Выбрать последний файл журнала:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1Отфильтровать HTTP-диагностику Telegram:
rg "telegram http error" /tmp/openclaw/openclaw-*.logОтфильтровать HTTP-диагностику Brave Search:
rg "brave http" /tmp/openclaw/openclaw-*.logИли отслеживать журнал во время воспроизведения:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"Для удаленных экземпляров Gateway вместо этого используйте openclaw logs --follow (см.
/cli/logs).
Примечания
- Если
logging.levelзадан вышеwarn, сообщения журналов, управляемые флагами, могут подавляться. Значениеinfoпо умолчанию подходит. brave.httpжурналирует URL-адреса и параметры запросов Brave Search, состояние и время ответов, а также события попадания в кеш, промаха кеша и записи в кеш. Он не журналирует ключ API (передаваемый в заголовке запроса) или тела ответов, однако поисковые запросы могут содержать конфиденциальные данные.- Флаги можно безопасно оставлять включенными; они влияют только на объем журналов соответствующей подсистемы.
- Используйте /logging, чтобы изменить места назначения журналов, уровни и редактирование конфиденциальных данных.