tech-log-analysis
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/tech-log-analysisManages the full lifecycle of 1C Tech Log for diagnosing technical issues like slow queries and deadlocks.
- Helps diagnose performance problems such as slow SQL queries, deadlocks, and platform exceptions.
- Integrates with 1C Tech Log for configuration, collection, and analysis of log data.
- Uses specific event triggers and algorithms to guide log searches and diagnostic steps.
- Presents results through structured log outputs and configuration backups for recovery.
SKILL.md
.github/skills/tech-log-analysisView on GitHub ↗
--- name: tech-log-analysis description: Работа с технологическим журналом 1С (Tech Log). Навык учит агента управлять полным жизненным циклом ТЖ — настройка, включение, сбор, анализ, восстановление — и диагностировать технические проблемы, например, медленные запросы, блокировки, исключения. --- # Работа с технологическим журналом 1С (Tech Log) ТЖ нагружает систему. Включать точечно, с минимальным набором событий. Всегда восстанавливать конфигурацию после диагностики. Для Vanessa — ТЖ последний источник диагностики; сначала `event-log-analysis` и визуальная проверка UI-блокеров. Для ошибок и аудита действий пользователей — `event-log-analysis`. --- ## Когда применять | Триггер | Действие | |---------|----------| | Медленный запрос — нужно найти SQL | `search_tech_log` с `name: "DBMSSQL"` / `"DBPOSTGRS"` | | Блокировки, deadlock | `search_tech_log` с `name: "TLOCK"` / `"TDEADLOCK"` / `"TTIMEOUT"` | | Исключение платформы не в ЖР | `search_tech_log` с `name: "EXCP"` | | Долгий серверный вызов | `search_tech_log` с `name: "CALL"` или `"SCALL"` | | Статус ТЖ неизвестен | `logc_get_techlog_config` — прочитать конфигурацию | | ТЖ не ведётся | Полный цикл (см. алгоритм ниже) | --- ## Полный цикл диагностики Единый алгоритм для пассивного (ждём воспроизведения) и активного (запускаем тест) режимов. **1. Сохранить конфигурацию** ``` logc_save_techlog() ``` Возвращает `backup_id` — сохранить для шага 7. **2. Настроить события** ``` logc_configure_techlog( location: "/var/log/1c/techlog", history: 24, events: ["EXCP", "DBMSSQL", "TLOCK", "TDEADLOCK"] ) ``` **3. Проверить, что сбор идёт** ``` logc_get_actual_log_timestamp() ``` **4. Воспроизвести проблему / дождаться воспроизведения** **5. Smart polling готовности лога** До 10 попыток с паузой 3–5 сек: `logc_get_actual_log_timestamp() >= целевое_время`. Если не дошло — сообщить пользователю, не делать выводов по неполному окну. **6. Прочитать записи** ``` search_tech_log( from: "2025-02-11T14:00:00Z", to: "2025-02-11T14:15:00Z", name: "DBMSSQL", min_duration: 1000 ) ``` **7. Восстановить конфигурацию** ``` logc_restore_techlog(backup_id: "...") ``` **8. Подтвердить статус пользователю**: `ТЖ восстановлен` / `ТЖ отключён` / `Минимальный профиль (события: ...)`. Шаги 1 и 7 — **обязательны**. Никогда не оставлять ТЖ включённым после диагностики без явного согласования. --- ### Варианты цикла **ТЖ уже настроен администратором** — только чтение: 1. `logc_get_techlog_config` → убедиться в наличии нужных событий. 2. `logc_get_actual_log_timestamp` → сбор актуален. 3. `search_tech_log` → читать записи. 4. НЕ изменять конфигурацию — ТЖ не наш. **Срочное отключение** (диск заполняется): `logc_disable_techlog()`. После решения — `logc_restore_techlog(backup_id)`. **Минимальный мониторинг** (вместо полного отключения, только по согласованию): события `["EXCP", "CONN"]`. Зафиксировать в ответе активные события и ответственного. --- ## События ТЖ | Событие | Когда использовать | |---------|--------------------| | `EXCP` | Ошибки, не видные в ЖР | | `DBMSSQL` | Медленные запросы MS SQL | | `DBPOSTGRS` | Медленные запросы PostgreSQL | | `TLOCK` | Конфликты блокировок | | `TDEADLOCK` | Взаимоблокировки | | `TTIMEOUT` | Таймауты блокировок | | `CALL` / `SCALL` | Медленные серверные вызовы | | `CONN` | Проблемы подключения | | `SDBL` | Трансляция запросов в SQL | **Стандартный набор:** `["EXCP", "DBMSSQL", "TLOCK", "TDEADLOCK"]` --- ## Capabilities | Capability | Назначение | |------------|------------| | `search_tech_log` | Поиск по записям ТЖ | | `logc_get_techlog_config` | Прочитать текущую конфигурацию ТЖ | | `logc_save_techlog` | Сохранить конфигурацию перед изменением | | `logc_configure_techlog` | Настроить события, путь, период хранения | | `logc_get_actual_log_timestamp` | Проверить, что сбор идёт | | `logc_restore_techlog` | Восстановить сохранённую конфигурацию | | `logc_disable_techlog` | Отключить ТЖ | | `navigate_symbol` | Переход к коду по контексту из записи ТЖ | --- ## Типичные ошибки | Ошибка | Обходной путь | |--------|---------------| | Забыли `logc_save_techlog` перед настройкой | Спросить пользователя о текущей конфигурации | | ТЖ не активен после `configure` | Платформа требует перезапуска служб | | `logc_get_actual_log_timestamp` не обновляется | Служба не перезапущена или неверный `location` | | Слишком много событий — диск заполняется | Ограничить набор событий; уменьшить `history` | | `search_tech_log` возвращает пусто | Проверить окно времени; событие должно быть после включения ТЖ | --- depends_on: [] ---
More from SteelMorgan/1c-agent-based-dev-framework
- 1c-ai-agent-cliCLI 1C BSL Agent Framework — tools/install.py (clone, install). Используй при клонировании репозитория, установке компонентов в проект, настройке IDE (Cursor, Claude Code, Windsurf, VS Code+Continue).
- agent-debugПаттерн отладочных сообщений для 1С BSL. Используй, когда стандартная диагностика (event-log, скриншоты) не даёт понять фактическое поведение системы — нужно вставить временные точки логирования в код, запустить тест и проанализировать записи ЖР.
- agent-developmentCreate custom subagents for specialized AI tasks. Use when the user wants to create a new type of subagent, set up task-specific agents, configure code reviewers, debuggers, or domain-specific assistants with custom prompts.
- agent-development-ext>
- agent-git-workflowStandardizes git workflow for the AI agent in the sandbox devcontainer: work in agent/<task>-<yyyymmdd>, integrate via agent, never push to main/master, open PRs via GitHub CLI. Use when the user asks to create branches, push changes, open PRs, or follow this sandbox repo setup.
- auto-skill-bootstrapDeterministic helper to inventory existing project skills, detect missing capability coverage, search skills.sh via Skills CLI, and (optionally) install missing skills under a trust policy. Uses skills-manifest.json + state.json to stay idempotent across changing requirements.
- code-navigationНавигация по коду (Code Navigation). Навык учит агента **эффективно перемещаться по BSL-коду** с помощью LSP (Language Server Protocol).
- config-operationsОперации с конфигурацией 1С (CF) — init, info, edit, validate. Используй при создании конфигурации, анализе структуры, изменении свойств и ChildObjects, валидации Configuration.xml.
- epf-buildСобрать EPF/ERF из XML-исходников. Используй после внесения временных диагностических правок в разобранную обработку.
- epf-dumpРазобрать EPF/ERF в XML-исходники. Используй, когда нужно быстро получить исходный код внешней обработки или отчета для анализа и временной модификации.