Skill v1.0.1
LLM-judged scan90/100+1 new
version: "1.0.1" name: event-log-analysis description: "Use for поиска ошибок, событий и действий пользователей в журнале регистрации (ЖР) через ClickHouse. Helps локализовать время и контекст сбоя по event-log до обращения к техжурналу." uses_capabilities:
- search_event_log
- logc_get_actual_log_timestamp
Анализ журнала регистрации (Event Log)
ЖР — read-only источник. Сырые записи не включать в вывод без маскирования персональных данных. По умолчанию mode: "minimal".
Для запросов СУБД, блокировок, исключений платформы — tech-log-analysis.
Когда применять
| Триггер | Действие | |
|---|---|---|
| Пользователь сообщает об ошибке | Сначала последние Error, затем узкое окно времени | |
| Ошибка за конкретный период | search_event_log с from/to | |
| Аудит действий пользователя | search_event_log с фильтром по пользователю | |
| Проверка изменений объекта | search_event_log с фильтром по метаданным | |
| Состояние базы после тестов | search_event_log с from: test_start_time, limit: 20 | |
| Vanessa-прогон не прошёл | Сначала последние Error, если пусто — без фильтра уровня |
Алгоритм поиска
- Получить
cluster_guidиinfobase_guidизcluster_map.yaml. - Определить стратегию (см. каскад ниже).
search_event_logс нужными фильтрами.- Анализ
records:event_time,event_presentation,comment,metadata_presentation. - При упоминании объекта метаданных —
navigate_symbolдля перехода к коду.
Каскад фильтрации
- Сначала — последние записи
level: "Error"(безfrom/toпри неизвестном точном времени). - Если пусто — повторить без фильтра уровня.
- Если известно время — сузить
from/toдо ±15 минут. - Если ЖР не даёт ответа — переходить к
tech-log-analysis.
Timezone drift: локальное время и ClickHouse могут расходиться; поэтому шаг 1 без временного фильтра надёжнее.
search_event_log(cluster_guid: "...",infobase_guid: "...",from: "2025-02-11T13:00:00Z",to: "2025-02-11T14:00:00Z",level: "Error",mode: "minimal",limit: 100)
Интерпретация результатов (после тестов / Vanessa)
| Картина | Вывод | |
|---|---|---|
| Записей нет | База не запустилась / ЖР недоступен | |
Есть события, Error отсутствует | База живая, тесты выполняются | |
| Последнее событие — завершение сеанса без ошибок | Тесты завершились успешно | |
Есть Error в event_presentation / comment | Анализировать comment и metadata_presentation | |
Предупреждение безопасности | Перейти к визуальной диагностике через GUI/скриншот |
Сшивка записи ЖР с кодом
После получения event_presentation и metadata_presentation:
- Если
metadata_presentationсодержит имя объекта метаданных — вызватьnavigate_symbolдля перехода к коду. - Если в
commentупомянут текст ошибки или имя процедуры — выполнить поиск по тексту комментария в codebase. - В отчёте указывать конкретный модуль и процедуру (не только имя объекта метаданных). Формат:
ОбщийМодуль.ОбработкаОшибок → ЗафиксироватьОшибку().
Correlation id и сессия
Если поле comment содержит идентификатор сессии, HTTP-запроса или correlation id:
- Извлечь значение и сохранить его в контексте ответа.
- Явно включить в вывод:
session=...,corrId=...илиhttpReq=.... - При необходимости дальнейшего расследования передать эти идентификаторы в
tech-log-analysisкак фильтры (search_tech_logсsession/corrId).
Цель — сохранить ключи корреляции для следующего шага, не смешивая анализ ЖР и ТЖ в одном запросе.
Безопасность
- Маскировать ФИО, ИНН, контактные данные в выводе.
- По умолчанию
mode: "minimal". - Сужать
from/toдо минимально необходимого периода. - Не запрашивать более 1000 записей при первичном поиске.
Capabilities
| Capability | Назначение | |
|---|---|---|
search_event_log | Поиск по журналу регистрации (через ClickHouse) | |
navigate_symbol | Переход к коду по метаданным из записи ЖР |
Типичные ошибки
| Ошибка | Обходной путь | |
|---|---|---|
GUID-ы не из cluster_map.yaml | Прочитать конфиг; при отсутствии — запросить у пользователя | |
| ClickHouse недоступен | Зафиксировать причину; предложить альтернативу через ТЖ | |
| Слишком широкий диапазон — timeout | Сузить окно до 15–30 минут; уменьшить limit | |
| Нет ошибок в ЖР | Каскад: без фильтра уровня → сузить окно → ТЖ |
depends_on: []