Создание визуализации на основе SQL
- Выберите подключение к ClickHouse, для которого будет выполняться запрос.
- При необходимости выберите Source — это позволит применять к вашей визуализации фильтры уровня панели мониторинга через макрос
$__filters. - Напишите SQL-запрос в редакторе, используя параметры запроса и макросы для интеграции с временным диапазоном, фильтрами и переменными панели мониторинга.
- Нажмите кнопку play, чтобы просмотреть результат, затем нажмите Save.
Параметры запроса
{paramName:Type}.
Доступные параметры
Диаграммы Table, Pie и Number:
Макросы
$__ и заменяются до отправки запроса в ClickHouse.
Макросы временных границ
Макросы фильтрации по времени
WHERE, который фильтрует столбец по временному диапазону панели мониторинга.
Пример развёртывания
$__timeFilter(TimestampTime):
Макросы временных интервалов
SELECT и GROUP BY для графиков временных рядов. Они доступны только для визуализаций Line и столбчатых диаграмм с накоплением.
Пример развёртывания
$__timeInterval(TimestampTime):
Макрос фильтра панели мониторинга
Когда на графике выбран Source и включены фильтры панели мониторинга,
$__filters разворачивается в соответствующие условия SQL WHERE. Если источник не выбран или фильтры не заданы, он разворачивается в (1=1), поэтому его всегда можно безопасно включать в условие WHERE.
$__filters применяет только фильтры с включенным параметром Broadcast filter condition. Фильтры, представленные как переменные, указываются явно, как описано ниже.
Макросы переменных панели мониторинга
Значения переменной также можно подставлять напрямую как
$name или ${name}, указав необязательный формат: ${name:sqlstring} (по умолчанию), ${name:csv} или ${name:regex}. В формате по умолчанию прямая ссылка до выбора значения отображается как NULL, поэтому везде, где ожидается предикат, используйте указанные выше макросы.
Как результаты запроса отображаются на диаграмме
Линейные диаграммы и столбчатые диаграммы с накоплением
Круговая диаграмма
Числовая диаграмма
Табличная диаграмма
Примеры
Требуется доступ к системной таблицеЕсли вы запускаете следующие примеры на play-clickstack.clickhouse.com, необходимо указать
otel_v2.otel_logs или otel_v2.otel_traces.Линейная диаграмма — количество логов по сервисам во времени
ts(DateTime) используется как временная метка на оси X.count(числовое значение) отображается как значение серии.ServiceName(строка) создает отдельную линию для каждого сервиса.
Линейная диаграмма — с использованием макросов
Линейный график — использование переменных панели мониторинга
service, связанной с ServiceName, и переменной severity, связанной с SeverityText, этот запрос ограничивает диаграмму текущим выбранным сервисом и исключает выбранные уровни серьёзности. Если для переменной не выбрано значение, оба макроса разворачиваются в 1=1, поэтому до выбора значения пользователем диаграмма отображается без фильтрации.
Столбчатая диаграмма с накоплением — количество ошибок по уровням серьёзности
Табличная диаграмма — 10 конечных точек с наибольшей задержкой
Круговая диаграмма — распределение запросов по сервисам
request_count(числовое значение) определяет размер каждого сегмента.ServiceName(строка) задает метку каждого сегмента.
Числовая диаграмма — общее число ошибок
total_errors из первой строки.
Примечания
- Визуализации на основе SQL выполняются во включенном режиме
readonly— разрешены только запросыSELECT. - Визуализации на основе SQL должны содержать ровно один SQL-запрос — несколько запросов не поддерживаются.
- Редактор SQL предлагает автодополнение как для параметров запроса, так и для макросов.
- Чтобы фильтры панели мониторинга применялись к визуализациям на основе SQL, необходимо выбрать Source. Для корректной фильтрации Source должен соответствовать таблице, к которой обращается запрос.
- Для переменных панели мониторинга Source не требуется — значения берутся из выпадающих списков фильтров панели мониторинга, а не из собственного Source блока.
- Оповещения для SQL-блока, ссылающегося на переменную панели мониторинга, вычисляются для каждой переменной в пустом состоянии, а не со значениями, выбранными на панели мониторинга.