Все запросы
На странице Queries → All queries выводятся все запросы, выполненные в кластере ADQM в указанный интервал времени (в том числе для каждого распределенного запроса отдельно выводятся запросы, выполненные на каждом хосте кластера — перед основным текстом таких запросов используется префикс /* ddl_entry=query-num */).
Поля таблицы All queries
Информация о запросах на странице Queries → All queries предоставляется в виде таблицы, которая может включать следующие поля.
| Поле | Описание |
|---|---|
Query ID |
Уникальный идентификатор запроса. В столбце также показывается иконка-индикатор статуса запроса:
Статус запроса дополнительно можно вывести в отдельном столбце Status, по которому доступна фильтрация |
Query text |
Текст запроса. Текст длинных запросов обрезается, а при наведении курсора мыши на ячейку столбца показывается в виде |
Status |
Текущий статус запроса. Возможные значения:
|
Host |
Хост, на котором выполнялся запрос |
Exception |
Текст ошибки, произошедшей до или во время выполнения запроса |
Exception code |
Код ошибки, произошедшей до или во время выполнения запроса |
Frequency |
Сколько раз выполнялся запрос в кластере за выбранный период времени в контексте всех фильтров, установленных в данный момент на странице. Статистика считается по запросам, текст которых полностью совпадает (то есть для параметризованных запросов учитываются конкретные значения параметров) |
Databases |
Названия баз данных (может быть несколько — например, для запросов с JOIN), к которым обращается запрос |
Tables |
Названия таблиц (может быть несколько — например, для запросов с JOIN), к которым обращается запрос |
Used memory |
Объем памяти, используемой запросом |
User |
Имя пользователя ADQM, запустившего выполнение запроса. Для запросов, выполняемых на хостах кластера при запуске распределенного запроса, пользователь не определяется — в столбце User показывается пустая строка ( |
Time started |
Время начала выполнения запроса |
Duration |
Длительность выполнения завершенного запроса или время выполнения на текущий момент ( |
Average duration |
Среднее время выполнения запроса. Статистика считается по запросам, текст которых полностью совпадает (то есть для параметризованных запросов учитываются конкретные значения параметров) |
Read bytes |
Общий объем данных, считанных из всех таблиц и табличных функций, участвующих в запросе. Для распределенных запросов это количество байтов, прочитанных на всех репликах — каждая реплика передает собственное значение |
Result bytes |
Объем памяти для хранения результата запроса |
Result rows |
Количество строк в результате запроса |
Read rows |
Общее количество строк, считанных из всех таблиц и табличных функций, участвующих в запросе. Для распределенных запросов это общее количество строк, прочитанных на всех репликах — каждая реплика передает собственное значение |
Written rows |
Количество строк, записанных запросом |
Written bytes |
Объем данных, записанных запросом |
Type |
Тип запроса. Возможные значения:
|
Чтобы вывести/скрыть поля таблицы All queries, нажмите Customize table и отметьте нужные поля в выпадающем списке. Поля Query ID и Query text всегда присутствуют в таблице запросов, их скрыть нельзя.
Сортировка и фильтрация данных
Для отбора необходимых данных на странице Queries → All queries можно использовать фильтры, расположенные в заголовках столбцов таблицы запросов. Чтобы открыть фильтр, кликните по иконке
. Фильтры доступны в следующих столбцах:
-
Query text — можно ввести сокращенный текст запроса (отображается во всплывающей подсказке, которая показывается при наведении курсора мыши на ячейку столбца) или его фрагмент;
-
Databases, Tables — нужно ввести название базы данных или таблицы соответственно (для строк, где в столбце Databases или Tables через запятую перечислены названия нескольких баз данных или таблиц, фильтрация работает только если поиск выполняется по одному значению из списка баз данных или таблиц в ячейке);
-
Exception code — нужно ввести числовой код ошибки (или несколько кодов через запятую) на вкладке Search или выбрать группу ошибок на вкладке Presets;
-
Host, User — можно ввести названия нескольких хостов или имена нескольких пользователей соответственно (для запросов, выполнение которых инициировано распределенным запросом, фильтрация по пустому значению в столбце User не поддерживается);
-
Duration — можно ввести минимальную и максимальную длительность выполнения запросов (в секундах);
-
Status, Type — можно выбрать значение (статус или тип запроса) из выпадающего списка.
Иконка
означает, что применен фильтр по значениям столбца. Для сброса всех условий фильтрации нажмите
.
Сортировка данных возможна по столбцам Exception (фактически сортировка выполняется по коду ошибки), Exception code, Used memory, Time started, Duration, Read bytes, Result bytes, Result rows, Read rows, Written rows, Written bytes. Для изменения порядка сортировки данных по значениям столбца используйте иконку
или
в его заголовке.
Над таблицей с запросами расположена панель с индикаторами применяемых в настоящий момент условий сортировки (Sorted by) и фильтрации (Filtered by) данных.
Детали запроса
Чтобы просмотреть детальную информацию о запросе, нажмите на его идентификатор в поле Query ID таблицы запросов All queries.
Открывшаяся страница Query details содержит полный текст запроса, а также текст сообщения об ошибке в случае ее возникновения при обработке запроса. В верхней части страницы также выводятся метрики запроса в столбцах, выбранных на странице Queries → All queries через Customize table.
Графики
На странице Queries → All queries можно построить различные графики для анализа запросов, направленных в таблицы кластера ADQM в указанный период времени, по следующим показателям:
-
Duration — длительность выполнения запросов. Доступны два типа графика:
-
Duration trend — трендовое изменение длительности выполнения запросов;
-
Duration delta — сравнение средней длительности выполнения запросов в отдельных временных ячейках выбранного интервала относительно средней длительности выполнения запросов по всему этому интервалу.
-
-
User — распределение запросов по пользователям. Доступны два типа графика:
-
User queries — количество запросов от конкретных пользователей;
-
User load — нагрузка на кластер, создаваемая запросами от конкретных пользователей, из-за которой запросы от других пользователей должны ждать в очереди на выполнение.
-
-
Kind — количество запросов определенных типов.
-
Host — распределение запросов по хостам кластера (с выявлением возможных аномалий по различным метрикам загруженности хостов при выполнении запросов).
Чтобы построить график, нажмите кнопку Show graph и выберите нужный тип графика из выпадающего списка.
В выпадающем меню справа от графика можно изменить тип графика, а также выбрать уровень детализации (число точек на графике): Low или High.
Duration
При выборе типа графика Duration используйте переключатель Trend/Delta на панели справа, чтобы построить график Duration trend или Duration delta соответственно.
Для графика можно выбрать тип шкалы: Normal или Log (логарифмическая шкала может быть более удобна для больших временных интервалов — например, месяц или неделя).
Duration trend
График Duration trend показывает общую динамику длительности выполнения запросов и позволяет найти запросы, которые выполнялись долго (по отношению к другим запросам в том же интервале времени) и могут быть предметом для анализа.
На этом графике выводится следующая информация по длительности выполнения запросов, направленных в кластер ADQM в определенный период времени:
-
95th Quantile — 95-й квантиль длительности выполнения запроса.
-
Average — среднее время выполнения запроса.
-
Extreme zone (область, заштрихованная красным цветом, если линия Average расположена выше линии 95th Quantile) — интервал времени, когда был один или несколько долгих запросов относительно большинства других. Например, на графике выше такая зона наблюдается в период времени с
6:00до7:00— в таблице запросов видно, что в06:58:07был запрос длительностью1m 17s, при этом все остальные запросы выполнились значительно быстрее (запросы в таблице отсортированы по столбцу Duration в порядке убывания).
Calm zone (область между линиями Average и 95th Quantile, заштрихованная зеленым цветом) — интервал времени, когда длительность всех запросов сопоставима. Пик в этой зоне означает, что все запросы в данный интервал времени стали выполняться дольше. -
Query — число запросов.
-
No data (область, заштрихованная серым цветом) — интервал времени, для которого нет данных о запросах с учетом выбранных фильтров. Строка No data показывается в легенде, только если на графике есть интервал времени (или несколько интервалов) с отсутствующей информацией по запросам.
Пример графика с No data
График, включающий интервалы времени No data
Duration delta
График Duration delta визуализирует разницу (delta) между средним временем выполнения запроса в каждой ячейке (cell) временного интервала, выбранного в ADQM Control, и средним временем выполнения запроса по всему этому интервалу. Зеленые и красные столбцы на графике обозначают соответственно более быстрые и более медленные запросы в ячейках относительно запросов на общем интервале. Значение разницы среднего времени выполнения запросов показывается во всплывающей подсказке при наведении курсора мыши на столбец ячейки (значение Window diff в миллисекундах и в процентах).
При клике по столбцу, соответствующему ячейке временного интервала, эта ячейка отмечается как выбранная, и под графиком на дополнительных панелях выводится более подробная информация для сравнения среднего времени выполнения запросов в этой ячейке и на остальном временном интервале. Также для анализа можно выбрать несколько последовательных временных ячеек, кликнув поочередно по соответствующим столбцам на графике.
Панели, которые показываются при выборе временных ячеек на графике:
-
Cell (N cells, если выбрано несколько последовательных ячеек) и Rest of window — информация о запросах, выполненных в течение интервала времени выбранной ячейки (или нескольких выбранных ячеек) и всего остального времени, соответственно:
-
Queries — количество выполненных запросов;
-
Average — среднее время выполнения запроса;
-
p95 — 95-й квантиль длительности выполнения запроса;
-
Slowest 5% mean — среднее время выполнения 5% самых медленных запросов.
-
-
Delta — значения, показывающие расхождение в длительности выполнения запросов в выбранной временной ячейке и на всем остальном интервале (то есть сравнение значений, которые выводятся на панелях Cell/N cells и Rest of window).
-
Workload — имена пользователей (максимум 3), отсортированные в порядке убывания по общему времени выполнения запросов от этих пользователей в интервале выбранной временной ячейки. Для каждого пользователя в этом списке и для всех остальных пользователей (Others) выводится количество отправленных запросов и среднее время их выполнения.
-
Profile — графики, которые могут быть полезны для более детального анализа факторов, определяющих разницу в среднем времени выполнения запросов в выбранной временной ячейке и на всем остальном интервале. Доступны два типа графика:
-
Cost — профиль "стоимости" запросов по времени выполнения, показывающий, сколько времени на один запрос можно было бы "сэкономить", если бы все запросы, которые выполнялись дольше определенного количества времени (значение по горизонтальной оси), выполнялись бы ровно столько времени.
-
Count — доля запросов, выполненных в выбранной временной ячейке, и запросов, выполненных в остальное время интервала, длительность которых превысила определенное количество времени (значение по горизонтальной оси).
-
User
При выборе типа графика User используйте переключатель Queries/Load на панели справа, чтобы построить график User queries или User load соответственно.
User queries
С помощью графика User queries можно увидеть количество запросов, направленных в кластер каждым пользователем, и оценить это количество относительно числа запросов от других пользователей и общего числа всех запросов. График строится по данным о запросах от пользователей, имена которых перечислены в фильтре столбца User. Указать имена пользователей можно также в поле справа от графика (список выбранных пользователей автоматически синхронизируется с фильтром в столбце User).
User load
График User load позволяет сравнивать среднюю нагрузку на кластер, создаваемую запросами от разных пользователей на определенном временном интервале. С помощью этих данных можно выявить пользователей, чьи запросы наиболее сильно влияют на выполнение других запросов, заставляя их ждать в очереди. Чтобы выбрать пользователей для визуализации данных на графике, используйте фильтр столбца User или поле справа от графика (списки выбранных в этих фильтрах пользователей автоматически синхронизируются).
Метрика load, по которой строится график — это безразмерная величина (может быть больше 1), обозначающая сколько запросов ждут своей очереди на выполнение из-за того, что в это время выполняются запросы от данного пользователя. Например, в легенде на приведенном ниже графике видно, что в среднем в кластере в выбранном интервале времени 0.83 запроса ждали в очереди на выполнение из-за нагрузки, которую создавали запросы от пользователя dist_user; 0.39 запроса в очереди — из-за запросов от пользователя default; и 0.18 запроса — из-за совокупной нагрузки, создаваемой запросами от всех других пользователей. При этом пользователь dist_user направил в кластер существенно меньше запросов (30.76k), чем пользователь default (2.72m) и чем все другие пользователи суммарно (2.22m). На основании этих показателей можно сделать вывод, что запросы от пользователя dist_user возможно не оптимизированы или ресурсозатратны, что оказывает влияние на другие запросы.
Kind
На графике Kind можно посмотреть соотношение количества выполненных запросов различных типов — выберите нужные типы запросов в выпадающем списке справа от графика.
График строится по данным с учетом фильтров, установленных в таблице запросов. Например, на графике выше показано количество запросов, выполненных пользователем user_29 за выбранный период времени.
Host
С помощью графика Host можно оценить загруженность хостов кластера ADQM и найти потенциальные аномалии в их работе по выполнению запросов к базам данных. В данном контексте аномалия — это отклонение значения какой-либо метрики в определенный момент времени по сравнению с ее значениями в рамках работы хоста в течение выбранного временного периода или относительно значений этой метрики в тот же момент времени на других хостах. Значения анализируемой метрики на графике обозначаются шириной линии. Аномалии подсвечиваются красным цветом (если в настройках графика включена соответствующая опция — см. описание настроек ниже). Цветовой градиент линии графика от зеленого к желтому обозначает "степень уверенности" в наличии аномалии.
График строится для хостов, выбранных в фильтре столбца Host. Списком выбранных хостов также можно управлять на панели справа от графика. Одновременно можно добавить на график до 8 хостов. Если в кластере больше 8 хостов и они не отфильтрованы, график будет построен для первых 8 хостов в алфавитном порядке. Если на графике необходимо показать другие хосты, удалите некоторые хосты из списка выбранных, чтобы добавить вместо них нужные.
В меню Settings справа от графика (кликните, чтобы развернуть) расположены настройки:
-
Metric — метрика, на основе которой строится график. Можно выбрать одну из метрик:
-
QPS (queries per second) — количество запросов, выполняемых в секунду;
-
RPS (rows per second) — количество строк данных, обрабатываемых в секунду (при выполнении операций чтения и записи);
-
Avg Duration (average duration) — среднее время выполнения запроса;
-
Throughput — объем данных, обрабатываемых в секунду (при выполнении операций чтения и записи);
-
P95 Duration — 95-й процентиль длительности выполнения запроса.
-
-
Sensitivity — уровень чувствительности к отклонениям значений метрики при определении аномалий (например, Aggressive — аномалией считается даже незначительное отклонение значения метрики; Low — только большое отклонение значения метрики считается аномалией). Для каждого уровня чувствительности оценка значений метрики и выявление аномалий выполняется отдельно (независимо от расчетов, сделанных для ранее выбранного уровня чувствительности).
-
Mode — режим оценки значений метрики. Доступные опции:
-
Per host — сравниваются значения метрики хоста на выбранном временном интервале (значение метрики считается нормальным, если оно находится в "обычном" для хоста диапазоне в рамках выбранного интервала времени);
-
Cluster — значения метрики хоста сравниваются со значениями той же метрики остальных хостов;
-
Auto — оценивается совокупность значений всех метрик.
-
-
Anomalies — переключатель Show включает/отключает подсвечивание аномалий красным цветом на графике.
-
Display — метрики, которые будут отображаться во всплывающей подсказке, появляющейся при наведении курсора мыши на график. Метрика, по которой строится график, в любом случае отображается во всплывающей подсказке — ее видимостью нельзя управлять через Display. В режиме Auto в подсказке показываются все метрики.