Создание визуализации на основе SQL
- Выберите подключение к ClickHouse, для которого будет выполняться запрос.
- При необходимости выберите Source — это позволит применять к вашей визуализации фильтры уровня панели мониторинга через макрос
$__filters. - Напишите SQL-запрос в редакторе, используя параметры запроса и макросы для интеграции с временным диапазоном и фильтрами панели мониторинга.
- Нажмите кнопку play, чтобы просмотреть результат, затем нажмите Save.
Параметры запроса
{paramName:Type}.
Доступные параметры
| Параметр | Тип | Описание |
|---|---|---|
{startDateMilliseconds:Int64} | Int64 | Начало диапазона дат панели мониторинга (миллисекунды с начала эпохи Unix) |
{endDateMilliseconds:Int64} | Int64 | Конец диапазона дат панели мониторинга (миллисекунды с начала эпохи Unix) |
{intervalSeconds:Int64} | Int64 | Размер временного интервала в секундах (в зависимости от гранулярности) |
{intervalMilliseconds:Int64} | Int64 | Размер временного интервала в миллисекундах (в зависимости от гранулярности) |
| Параметр | Тип | Описание |
|---|---|---|
{startDateMilliseconds:Int64} | Int64 | Начало диапазона дат панели мониторинга (миллисекунды с начала эпохи Unix) |
{endDateMilliseconds:Int64} | Int64 | Конец диапазона дат панели мониторинга (миллисекунды с начала эпохи Unix) |
Макросы
$__ и заменяются до отправки запроса в ClickHouse.
Макросы временных границ
| Макрос | Раскрывается в | Тип столбца |
|---|---|---|
$__fromTime | toDateTime(fromUnixTimestamp64Milli({startDateMilliseconds:Int64})) | DateTime |
$__toTime | toDateTime(fromUnixTimestamp64Milli({endDateMilliseconds:Int64})) | DateTime |
$__fromTime_ms | fromUnixTimestamp64Milli({startDateMilliseconds:Int64}) | DateTime64 |
$__toTime_ms | fromUnixTimestamp64Milli({endDateMilliseconds:Int64}) | DateTime64 |
$__interval_s | {intervalSeconds:Int64} | Int64 |
Макросы фильтрации по времени
WHERE, который фильтрует столбец по временному диапазону панели мониторинга.
| Макрос | Описание |
|---|---|
$__timeFilter(column) | Фильтрует столбец DateTime по временному диапазону панели мониторинга |
$__timeFilter_ms(column) | Фильтрует столбец DateTime64 (миллисекунды) по временному диапазону панели мониторинга |
$__dateFilter(column) | Фильтрует столбец Date по временному диапазону панели мониторинга |
$__dateTimeFilter(dateCol, timeCol) | Фильтрует с использованием отдельных столбцов Date и DateTime |
$__dt(dateCol, timeCol) | Псевдоним для $__dateTimeFilter |
$__timeFilter(TimestampTime):
Макросы временных интервалов
SELECT и GROUP BY для графиков временных рядов. Они доступны только для визуализаций Line и столбчатых диаграмм с накоплением.
| Macro | Description |
|---|---|
$__timeInterval(column) | Группирует столбец DateTime по интервалам intervalSeconds |
$__timeInterval_ms(column) | Группирует столбец DateTime64 по интервалам intervalMilliseconds |
$__timeInterval(TimestampTime):
Макрос фильтра панели мониторинга
| Macro | Описание |
|---|---|
$__filters | Подставляет условия фильтрации на уровне панели мониторинга (требуется выбрать Source) |
$__filters разворачивается в соответствующие условия SQL WHERE. Если источник не выбран или фильтры не заданы, он разворачивается в (1=1), поэтому его всегда можно безопасно включать в условие WHERE.
Как результаты запроса отображаются на диаграмме
Линейные диаграммы и столбчатые диаграммы с накоплением
| Роль | Тип столбца | Описание |
|---|---|---|
| Временная метка | Первый столбец Date или DateTime | Используется как ось X. |
| Значение серии | Все числовые столбцы | Каждый числовой столбец отображается как отдельная серия. Обычно это агрегированные значения. |
| Названия групп | Столбцы String, Map или Array | Необязательно. Строки с разными значениями групп отображаются как отдельные серии. |
Круговая диаграмма
| Роль | Тип столбца | Описание |
|---|---|---|
| Значение сектора | Первый числовой столбец | Определяет размер каждого сектора. |
| Метка сектора | Столбцы типа String, Map или Array | Необязательно. Каждое уникальное значение становится меткой сектора. |
Числовая диаграмма
| Роль | Тип столбца | Описание |
|---|---|---|
| Число | Первый числовой столбец | Отображается значение из первой строки первого числового столбца. |
Табличная диаграмма
Примеры
Требуется доступ к системной таблицеЕсли вы запускаете следующие примеры на play-clickstack.clickhouse.com, необходимо указать
otel_v2.otel_logs или otel_v2.otel_traces.Линейная диаграмма — количество логов по сервисам во времени
ts(DateTime) используется как временная метка на оси X.count(числовое значение) отображается как значение серии.ServiceName(строка) создает отдельную линию для каждого сервиса.
Линейная диаграмма — с использованием макросов
Столбчатая диаграмма с накоплением — количество ошибок по уровням серьёзности
Табличная диаграмма — 10 конечных точек с наибольшей задержкой
Круговая диаграмма — распределение запросов по сервисам
request_count(числовое значение) определяет размер каждого сегмента.ServiceName(строка) задает метку каждого сегмента.
Числовая диаграмма — общее число ошибок
total_errors из первой строки.
Примечания
- Визуализации на основе SQL выполняются во включенном режиме
readonly— разрешены только запросыSELECT. - Визуализации на основе SQL должны содержать ровно один SQL-запрос — несколько запросов не поддерживаются.
- Редактор SQL предлагает автодополнение как для параметров запроса, так и для макросов.
- Чтобы фильтры панели мониторинга применялись к визуализациям на основе SQL, необходимо выбрать Source. Для корректной фильтрации Source должен соответствовать таблице, к которой обращается запрос.