Debug режим и диагностика - База знаний Modus
Роль DEVELOPER устанавливается через метаданные. Идентификатор роли: role_id = -500. Роль DEVELOPER является служебной и предназначена только для отладки и мониторинга.
Включение debug режима
Debug информация возвращается только при двух условиях:
- Параметр
debug: trueв запросе - У пользователя есть право
Debugging(только роль DEVELOPER)
Примечание — Debug информация включает логи backend, browser, frontend и HTTP мониторинга.
Структура Debug объекта
Debug информация содержит следующие поля:
- backend (массив строк) — логи генерации отчета с временными метками:
- генерация отчета, запуск браузера, обработка результатов
- формат:
YYYY-MM-DD HH:MM:SS [LEVEL] Message
- frontend (объект, опционально) — debug информация от фронтенда:
- передается фронтендом вместе с данными экспорта
- структура зависит от реализации фронтенда
- browser_logs (массив строк) — логи браузера с временными метками:
- работа с Chrome DevTools, навигация, снимки экрана
- формат:
YYYY-MM-DD HH:MM:SS [LEVEL] Message
- http_errors (массив объектов) — HTTP запросы с ошибками (status != 200):
timestamp(строка) — время запросаurl(строка) — полный URL запросаmethod(строка) — HTTP метод (GET, POST, etc.)status_code(число) — HTTP статус кодresponse(строка) — тело ответа (JSON)
- http_stats (объект, опционально) — статистика HTTP запросов:
success_count(число) — количество успешных запросов (status 200)error_count(число) — количество неуспешных запросов (status != 200)total_count(число) — общее количество запросов
HTTP мониторинг
При debug: true автоматически включается мониторинг HTTP запросов с фильтрацией по паттернам.
Примечание — По умолчанию мониторятся запросы к /v1/api/recordsets/ и /v1/api/exports/.
Варианты настройки monitoring_patterns:
- Не передавать — используются паттерны по умолчанию
- Указать свои паттерны:
"monitoring_patterns": ["/api/custom/", "/graphql"] - Отключить фильтрацию:
"monitoring_patterns": []— мониторятся все запросы
Паттерны проверяются методом contains — если URL содержит хотя бы один паттерн, запрос мониторится.
Пример запроса с debug и дефолтными паттернами
{
"object": {"name": "exports"},
"command": {"name": "automated"},
"data": [{
"url": "https://server.example.com/report/123",
"user_id": 456,
"output_type": "pdf",
"debug": true,
"delay": 2000,
"timeout": 120,
"headless": true
}]
}
Пример запроса с кастомными паттернами мониторинга
{
"object": {"name": "exports"},
"command": {"name": "automated"},
"data": [{
"url": "https://server.example.com/report/123",
"user_id": 456,
"output_type": "pdf",
"debug": true,
"monitoring_patterns": [
"/v1/api/datasets/",
"/v1/api/users/",
"/graphql"
],
"delay": 2000,
"timeout": 120,
"headless": true
}]
}
Пример ответа с debug информацией
{
"mode": "online",
"status": 200,
"message": "",
"data": [{
"success": 0,
"report_id": 123,
"message": "ошибка генерации отчета на фронтенде: не удалось загрузить данные виджета",
"elapsed": 5.23,
"debug": {
"backend": [
"2025-01-15 12:00:01 [INFO] Генерация отчета: ReportID=123, OutputType=pdf",
"2025-01-15 12:00:02 [INFO] Запуск браузера: headless=true"
],
"frontend": {
"enabled": true,
"issues": {
"errors": [],
"timeouts": [],
"warnings": ["Chart #chart-1 slow load"]
}
},
"browser_logs": [
"2025-01-15 12:00:02 [INFO] Запуск браузера: headless=true",
"2025-01-15 12:00:03 [DEBUG] Навигация к URL завершена"
],
"http_errors": [
{
"timestamp": "2025-01-15 12:00:04",
"url": "https://server.example.com/v1/api/recordsets/54",
"method": "POST",
"status_code": 500,
"response": "{\"status\":500,\"message\":\"Internal server error\"}"
}
],
"http_stats": {
"success_count": 10,
"error_count": 2,
"total_count": 12
}
}
}]
}