На этой странице

На этой странице

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 (см. ниже)

Включение через конфигурацию

json
{  "diagnostics": {    "flags": ["telegram.http"]  }}

Несколько флагов:

json
{  "diagnostics": {    "flags": ["telegram.http", "brave.http", "gateway.*"]  }}

Переопределение переменной окружения (однократное)

bash
OPENCLAW_DIAGNOSTICS=telegram.http,brave.http

Значения разделяются запятыми или пробелами. Специальные значения:

Значение Эффект
0, false, off, none Отключает все флаги, также переопределяя конфигурацию
1, true, all, * Включает все флаги

OPENCLAW_DIAGNOSTICS=0 отключает флаги как из переменной окружения, так и из конфигурации для этого процесса. Это полезно, чтобы временно отключить флаг профилировщика, оставленный включенным в конфигурации, не редактируя файл.

Флаги профилировщика

Флаги профилировщика управляют легковесными интервалами измерения времени; в выключенном состоянии они не создают накладных расходов.

Включить все интервалы, управляемые профилировщиком, для одного запуска Gateway:

bash
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway run

Включить только интервалы профилировщика диспетчеризации ответов:

bash
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway run

Включить только интервалы профилировщика запуска, инструментов и потоков сервера приложений Codex:

bash
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway run

profiler включает и профилировщик ответов, и профилировщик Codex; используйте имена флагов с областью действия, чтобы включить только один из них.

Или задайте их в конфигурации:

json
{  "diagnostics": {    "flags": ["reply.profiler", "codex.profiler"]  }}

Перезапустите Gateway после изменения флагов конфигурации. Чтобы отключить флаг профилировщика, удалите его из diagnostics.flags и перезапустите Gateway либо запустите процесс с OPENCLAW_DIAGNOSTICS=0, чтобы переопределить все флаги диагностики для этого запуска.

Артефакты временной шкалы

Флаг timeline (псевдоним: diagnostics.timeline) записывает структурированные события времени запуска и выполнения в формате JSONL для внешних средств автоматизации контроля качества:

bash
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway run

Или включите его в конфигурации:

json
{  "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 и могут включать идентификаторы процессов, имена фаз, имена интервалов, длительности, идентификаторы плагинов, количество зависимостей, выборки задержки цикла событий, имена операций провайдера, состояние завершения дочерних процессов, а также имена и сообщения ошибок запуска. Считайте файлы временной шкалы локальными диагностическими артефактами; проверяйте их перед передачей за пределы своего компьютера.

Куда записываются журналы

Флаги записывают сообщения в стандартный файл журнала диагностики. По умолчанию:

Code
/tmp/openclaw/openclaw-YYYY-MM-DD.log

Если задан logging.file, вместо этого используется указанный в нем путь. Журналы имеют формат JSONL (один объект JSON на строку). Редактирование конфиденциальных данных по-прежнему применяется на основе logging.redactSensitive. Полное описание определения пути журнала, ротации и редактирования конфиденциальных данных см. в разделе Журналирование.

Извлечение журналов

Выбрать последний файл журнала:

bash
ls -t /tmp/openclaw/openclaw-*.log | head -n 1

Отфильтровать HTTP-диагностику Telegram:

bash
rg "telegram http error" /tmp/openclaw/openclaw-*.log

Отфильтровать HTTP-диагностику Brave Search:

bash
rg "brave http" /tmp/openclaw/openclaw-*.log

Или отслеживать журнал во время воспроизведения:

bash
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, чтобы изменить места назначения журналов, уровни и редактирование конфиденциальных данных.

Связанные материалы

Was this useful?