Роль DEVELOPER устанавливается через метаданные. Идентификатор роли: role_id = -500. Роль DEVELOPER является служебной и предназначена только для отладки и мониторинга.

Включение debug режима

Debug информация возвращается только при двух условиях:

  1. Параметр debug: true в запросе
  2. У пользователя есть право 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
      }
    }
  }]
}

 

Связи контента