API деталей запроса
API query detail возвращает детали выполнения недавних запросов, которые кэшируются в памяти FE.
примечание
Записи деталей запросов собираются только когда параметр конфигурации FE enable_collect_query_detail_info установлен в true.
Конечные точки
GET /api/query_detail(v1)GET /api/v2/query_detail(v2, поддерживаетis_request_all_frontendи возвращает обёрнутый результат)
Параметры
| Имя | Обязательный | По умолчанию | Описание |
|---|---|---|---|
event_time | Да | - | Фильтр нижней границы. Возвращает элементы, чей eventTime больше этого значения. Вы можете передать 0, чтобы получить все кэшированные элементы. |
user | Нет | - | Фильтр по полю user. Регистронезависимое сопоставление. |
is_request_all_frontend | Нет (только v2) | false | Когда true, текущий FE запрашивает другие активные FE и объединяет их результаты. |
Ответ
- v1 возвращает JSON-массив объектов
QueryDetail. - v2 возвращает
{ "code": "0", "message": "OK", "result": [ ... ] }, гдеresult— это списокQueryDetail.
Аутентификация и авторизация
Этот API требует HTTP Basic аутентификации. Помимо успешного входа, дополнительная проверка привилегий не выполняется. Любой аутентифицированный пользователь может получить доступ к конечной точке и просматривать все кэшированные детали запросов, если не применён фильтр user.
Поля QueryDetail
| Поле | Тип | Описание |
|---|---|---|
queryId | string | ID запроса. |
eventTime | long | Внутренняя временная метка для фильтрации. Монотонная временная метка в наносекундах. |
isQuery | boolean | Является ли команда запросом. |
remoteIP | string | IP-адрес клиента или System. |
connId | int | ID соединения. |
startTime | long | Время начала запроса в миллисекундах с начала эпохи. |
endTime | long | Время окончания запроса в миллисекундах с на чала эпохи. -1, если не завершён. |
latency | long | Задержка запроса в миллисекундах. -1, если не завершён. |
pendingTime | long | Время ожидания в миллисекундах. |
netTime | long | Чистое время выполнения в миллисекундах. |
netComputeTime | long | Чистое время вычислений в миллисекундах. |
state | string | Одно из: RUNNING, FINISHED, FAILED, CANCELLED. |
database | string | Текущая база данных. |
sql | string | Текст SQL (может быть обезличен при соответствующей настройке). |
user | string | Пользователь входа (полное имя пользователя). |
impersonatedUser | string | Целевой пользователь EXECUTE AS. null, если не выполняется от имени другого пользователя. |
errorMessage | string | Сообщение об ошибке при сбое. |
explain | string | План выполнения (уровень контролируется параметром query_detail_explain_level). |
profile | string | Текст profile, если собран. |
resourceGroupName | string | Имя resource group. |
scanRows | long | Количество просканированных строк. |
scanBytes | long | Количество просканированных байт. |
returnRows | long | Количество возвращённых строк. |
cpuCostNs | long | Стоимость CPU в наносекундах. |
memCostBytes | long | Стоимость памяти в байтах. |
spillBytes | long | Байты, сброшенные на диск. |
cacheMissRatio | float | Коэффициент промахов кэша в процентах (0-100). |
warehouse | string | Имя warehouse. |
digest | string | Дайджест SQL. |
catalog | string | Имя каталога. |
command | string | Имя команды MySQL. |
preparedStmtId | string | ID подготовленного выражения. |
queryFeMemory | long | Память FE, выделенная запросом, в байтах. |
querySource | string | Источник запроса: EXTERNAL, INTERNAL, MV или TASK. |
Примеры
v1
curl -u root: "http://<fe_host>:<fe_http_port>/api/query_detail?event_time=0"
v2
curl -u root: "http://<fe_host>:<fe_http_port>/api/v2/query_detail?event_time=0&is_request_all_frontend=true"