Поиск по логам в WireCat Desktop
Узнайте, почему инструмент упал, как часто это бывает и какие команда, профиль или ошибка тут замешаны, — с фильтрами, группами и записью каждого запуска.
Страница Logs в WireCat Desktop показывает, что каждый инструмент командной строки записал о своих запусках. Запуск — это один старт инструмента, например tg personal messages send, от начала до выхода. Откройте эту страницу, когда инструмент упал и нужно понять почему, как часто это бывает или какие команда, профиль или ошибка тут замешаны. Вы научитесь фильтровать запуски, группировать их, открывать один запуск и копировать его запись для отчёта об ошибке.
Что показывает страница
Логи запусков ведут Telegram (tg), MAX (max) и WhatsApp (wa). Приложение читает их собственными командами инструмента runs list и runs show. Zoom (zm), Google Drive (drive) и Memo (memo) пока не ведут логов, которые приложение может прочитать. Строка над поиском показывает каждый инструмент и сколько запусков приложение у него прочитало. Приложение читает 500 последних запусков каждого инструмента; Load older читает следующие 500.
Почему почти все запуски — ошибки
Инструмент сохраняет запуск, только когда запуск упал или выполнился частично. Успешный запуск не оставляет записи. Поэтому в списке в основном ошибки. Это не значит, что всё сломано.
Чтобы сохранять каждый запуск, нажмите Keep every run у нужного инструмента вверху страницы Logs или задайте настройку сами:
tg config set record true --defaultsНастройка действует для всех профилей этого инструмента. Для MAX или WhatsApp напишите max или wa вместо tg. Инструмент удаляет запуски старше keep_runs_for_days дней. По умолчанию — 30 дней. Где хранятся эти настройки и как их менять, объясняет страница Настройки.
Поиск запусков
Пишите в поле поиска над списком. Поиск состоит из условий, разделённых пробелами. Запуск должен подходить под каждое условие.
| Как писать | Что значит | Пример |
|---|---|---|
field:value | У поля такое значение. Значение должно совпасть целиком, регистр букв не важен. | status:failed |
field:"two words" | Значение с пробелами берите в кавычки. | cli_command:"tg messages send" |
* | Любые символы, в том числе ни одного. Так можно найти часть значения. | cli_command:"tg messages*" |
- перед условием | Исключить запуски, которые подходят под условие. | -profile:work |
field:>N, <, >=, <= | Сравнить число. | duration_ms:>1000 |
a.b.c:value | Поле внутри другого поля. Список подходит, если подходит один из его элементов. | partial.failures.stage:upload |
слово без field: | Текст, который входит в основные поля запуска: команду, профиль, статус или коды ошибок. | timeout |
Два значения одного поля подходят любым из них: tool:tg tool:max покажет запуски обоих инструментов. Разные поля должны подойти все: tool:tg status:failed покажет только упавшие запуски tg. Исключение и сравнение чисел всегда действуют сами по себе. Например, duration_ms:>1000 duration_ms:<5000 найдёт запуски длиной от одной до пяти секунд.
Поле поиска подсказывает названия полей и значения, которые есть у загруженных запусков. Если приложение не может прочитать условие, оно подчёркивает его и объясняет причину: не закрыта кавычка, у поля нет значения, число сравнивается не с числом или такого поля нет ни у одного загруженного запуска.
Поля
У запуска бывают и другие поля. Откройте запуск, чтобы увидеть все: любое поле его записи можно искать по имени или по пути. Если cli_command — только имя инструмента, например max, инструмент запустили без команды, которую он знает. Обычно это опечатка или не указан профиль.
Примеры поиска
| Что найти | Поиск |
|---|---|
| Упавшие запуски одной команды | status:failed cli_command:"tg messages send" |
| Ограничения частоты запросов за последние сутки | code:rate_limited, затем выберите Last 24h |
| Медленные запуски | duration_ms:>10000 |
| Запуски одного профиля | profile:work |
| Ошибки, кроме тайм-аутов | status:failed -error_code:timeout |
| Частичные запуски, где не удалась загрузка | status:partial partial.failures.stage:upload |
Чем это отличается от поиска сообщений
Поиск сообщений использует синтаксис Lucene. Поиск по логам проще:
- Нет слов
AND,OR,NOTи скобок. Пробел значит «и», одно поле дважды — «любое из»,-исключает. field:valueдолжно совпасть со всем значением. Чтобы найти часть, добавьте*. Слова без поля находят часть значения.*— единственный шаблон. Нет?, нечёткого поиска и диапазонов в скобках.- Нет поля даты для сравнения. Используйте кнопки периода.
Фильтры по фасетам
Колонка слева показывает фасеты: значения полей Tool, Status, Command, Profile и Error code и число запусков для каждого. Нажмите значение, чтобы оставить только эти запуски, и нажмите ещё раз, чтобы снять фильтр. Alt + клик по значению или его кнопка с минусом скрывают эти запуски. Каждый клик добавляет условие в поле поиска, поэтому поиск можно увидеть и поправить. Числа учитывают все остальные условия поиска. Поэтому можно выбрать и второе значение того же фасета.
В узком окне фасеты открывает кнопка Facets.
Группировка запусков
Выберите поле в Group by, чтобы увидеть по строке на каждое значение: сколько у него запусков, сколько из них упало и когда начался последний. Группировать можно и из фасета кнопкой Group by this field, и из значения в записи запуска кнопкой Group by. Нажмите строку группы, чтобы оставить только её запуски.
Период
Выберите Last 1h, Last 24h, Last 7d, Last 30d или All. Период действует на запуски, которые приложение загрузило. Если старого запуска не видно, нажмите Load older у этого инструмента.
Открыть запуск
Нажмите запуск, чтобы открыть его. Вы увидите:
- Events — события: запросы, которые инструмент сделал к сервису, и важные шаги запуска, со временем, результатом и длительностью каждого. Нажмите событие, чтобы увидеть все его поля.
- Run record — запись запуска: всё, что инструмент сохранил о нём, в виде раскрывающегося дерева. У большинства значений есть кнопки: фильтровать по нему, исключить его, сгруппировать по его полю и скопировать.
- Copy JSON копирует всю запись запуска. Приложите её к отчёту об ошибке или отдайте агенту.
Copy run id копирует идентификатор запуска. Его можно передать команде инструмента runs show.
Приватность
В записях запусков никогда нет текста сообщений, имён людей, названий чатов и секретов входа, например паролей и ключей сессии. Что инструмент записывает, а что никогда, перечисляет руководство по диагностике Telegram.
Перед показом запуска приложение ещё и скрывает личные данные: значения полей вроде токенов, паролей, телефонов, адресов почты, имён аккаунтов и ID пользователей становятся •••. В тексте приложение заменяет адреса почты на [email], номера телефонов — на [number], токены ботов — на [bot token]. То же скрытие действует и для того, что вы копируете.
Отчёт об ошибке, отправленный из приложения, всегда содержит последние логи ошибок: 20 последних упавших запусков каждого установленного инструмента, скрытые тем же способом. Сервер WireCat скрывает их ещё раз. Они хранятся закрыто на сервере WireCat 90 дней, затем удаляются, и никогда не публикуются. В остальных случаях логи не покидают ваш компьютер. Что отправляет отчёт об ошибке, объясняет политика конфиденциальности.