event-log-analysis
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/event-log-analysisAnalyzes 1C Event Log via ClickHouse to find errors, user actions, and events for troubleshooting and auditing.
- Helps diagnose errors, audit user activities, and verify database changes after tests.
- Integrates with ClickHouse for querying logs and uses cluster_map.yaml for database identification.
- Follows a cascading strategy, prioritizing recent error-level entries before broader time-based searches.
- Presents results with event details like time and metadata, masking personal data by default.
SKILL.md
.github/skills/event-log-analysisView on GitHub ↗
--- name: event-log-analysis description: Анализ журнала регистрации 1С (Event Log). Навык учит агента искать ошибки, события и действия пользователей в журнале регистрации (ЖР) через ClickHouse. --- # Анализ журнала регистрации (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`, если пусто — без фильтра уровня | --- ## Алгоритм поиска 1. Получить `cluster_guid` и `infobase_guid` из `cluster_map.yaml`. 2. Определить стратегию (см. каскад ниже). 3. `search_event_log` с нужными фильтрами. 4. Анализ `records`: `event_time`, `event_presentation`, `comment`, `metadata_presentation`. 5. При упоминании объекта метаданных — `navigate_symbol` для перехода к коду. ### Каскад фильтрации 1. **Сначала** — последние записи `level: "Error"` (без `from`/`to` при неизвестном точном времени). 2. **Если пусто** — повторить без фильтра уровня. 3. **Если известно время** — сузить `from`/`to` до ±15 минут. 4. **Если ЖР не даёт ответа** — переходить к `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/скриншот | --- ## Безопасность - Маскировать ФИО, ИНН, контактные данные в выводе. - По умолчанию `mode: "minimal"`. - Сужать `from`/`to` до минимально необходимого периода. - Не запрашивать более 1000 записей при первичном поиске. --- ## Capabilities | Capability | Назначение | |------------|------------| | `search_event_log` | Поиск по журналу регистрации (через ClickHouse) | | `navigate_symbol` | Переход к коду по метаданным из записи ЖР | --- ## Типичные ошибки | Ошибка | Обходной путь | |--------|---------------| | GUID-ы не из `cluster_map.yaml` | Прочитать конфиг; при отсутствии — запросить у пользователя | | ClickHouse недоступен | Зафиксировать причину; предложить альтернативу через ТЖ | | Слишком широкий диапазон — timeout | Сузить окно до 15–30 минут; уменьшить `limit` | | Нет ошибок в ЖР | Каскад: без фильтра уровня → сузить окно → ТЖ | --- depends_on: [] ---