Создание QL-чарта
Создать QL-чарт можно одним из способов:
Важно
Управление правами для QL-чартов по данным Monitoring и Prometheus выполняется не только на стороне DataLens, но и в самих сервисах Monitoring и Prometheus.
Для просмотра графика в DataLens пользователю необходимы права на чарт и подключение, а также на чтение данных из конкретного Prometheus API или проекта в Monitoring.
Для QL-чартов доступны те же общие настройки и настройки секций, что и для чартов на основе датасета. Для полей чарта доступны только некоторые настройки показателей.
Создание QL-чарта через главную страницу
Важно
Если вы работаете с новой объектной моделью DataLens, включающей воркбуки и коллекции:
- Перейдите на главную страницу
DataLens. На панели слева выберите Коллекции и воркбуки. - Откройте воркбук, в правом верхнем углу нажмите Создать и выберите нужный объект.
Продолжайте инструкцию с шага 3.
-
Перейдите на главную страницу
DataLens. -
На рабочей панели слева выберите
Чарты. -
Нажмите кнопку Cоздать чарт → QL-чарт.
-
В открывшемся окне выберите Тип чарта:
SQLPrometheusMonitoring- Нажмите Выбрать подключение.
- Выберите из списка подключение БД, к которому у вас есть доступ. Убедитесь, что в подключении активирована настройка Уровень доступа SQL-запросов → Разрешить подзапросы в датасетах и запросы из чартов.
- Нажмите Создать.
- На вкладке Запрос укажите запрос, используя SQL-диалект БД, к которой вы обращаетесь.
- В левом нижнем углу нажмите кнопку Запустить.
После выполнения запроса появится визуализация на основе ваших данных.
Пример запроса для БД ClickHouse®
SELECT Category, Month, ROUND(SUM(Sales)) FROM samples.SampleLite WHERE Category in {{category}} -- переменная, используемая в селекторе GROUP BY Category, Month -- группировка по категории и месяцу ORDER BY Category, Month -- сортировка по категории и месяцу
- Нажмите Выбрать подключение.
- Выберите из списка подключение Prometheus, к которому у вас есть доступ.
- Нажмите Создать.
- Нажмите Добавить запрос и укажите запрос на языке Prometheus.
- В левом нижнем углу нажмите кнопку Запустить.
После выполнения запроса появится визуализация на основе ваших данных.
Пример запроса для Prometheus
sum by (name) (rate(container_cpu_user_seconds_total{container_label_org_label_schema_group="monitoring"}[1m]) * 100 / scalar(count(node_cpu_seconds_total{mode="user"})))
QL-чарты по данным Prometheus можно параметризовать так же, как и чарты типа SQL. Также для этого типа чартов предопределены обязательные глобальные параметры, которые создаются автоматически при создании QL-чарта. Вы можете отредактировать значения по умолчанию для этих параметров.
Параметр Тип данных Описание from datetime Нижняя временная граница. to datetime Верхняя временная граница. step number Шаг по временной шкале в секундах. Примечание
На дашборде вы можете использовать один селектор для даты со специальным именем
interval
вместо двух селекторовfrom
иto
.- Нажмите Выбрать подключение.
- Выберите из списка подключение Monitoring, к которому у вас есть доступ.
- Нажмите Создать.
- Нажмите Добавить запрос и укажите запрос на языке Monitoring.
- В левом нижнем углу нажмите кнопку Запустить.
После выполнения запроса появится визуализация на основе ваших данных.
Пример запроса для Monitoring
{project="monitoring", sensor="nodejs.heap_space.size.bytes"}
QL-чарты по данным Monitoring можно параметризовать так же, как и чарты типа SQL. Также для этого типа чартов предопределены обязательные глобальные параметры, которые создаются автоматически при создании QL-чарта. Вы можете отредактировать значения по умолчанию для этих параметров.
Параметр Тип данных Описание from datetime Нижняя временная граница. to datetime Верхняя временная граница. Примечание
На дашборде вы можете использовать один селектор для даты со специальным именем
interval
вместо двух селекторовfrom
иto
.
Создание QL-чарта через подключение
- Перейдите к уже созданному подключению БД.
- Убедитесь, что в подключении активирована настройка Уровень доступа SQL-запросов → Разрешить подзапросы в датасетах и запросы из чартов.
- В правом верхнем углу нажмите Создать QL-чарт.
- На вкладке Запрос укажите запрос, используя SQL-диалект БД, к которой вы обращаетесь.
- В левом нижнем углу нажмите кнопку Запустить.
После выполнения запроса появится визуализация на основе ваших данных.
Добавление параметров селектора
Для QL-чартов в области редактирования чарта на вкладке Параметры можно управлять параметрами селектора, а на вкладке Запрос указывать переменную в самом запросе в формате {{variable}}
.
Чтобы добавить параметр:
-
Перейдите на вкладку Параметры при создании чарта.
-
Нажмите Добавить параметр.
-
Установите тип значения для параметра. Например,
date-interval
. -
Задайте имя параметру. Например,
interval
. -
Установите значения по умолчания. Например,
2017-01-01 — 2019-12-31
.Для параметров типа
date
,datetime
,date-interval
иdatetime-interval
значения можно указать несколькими способами:- Точная дата — чтобы указать точное значение.
- Смещение от текущей даты — чтобы указать относительное значение, которое будет обновляться автоматически.
Для быстрого заполнения значений используйте пресеты.
Чтобы управлять значениями параметра на дашборде, создайте селектор с ручным вводом и в поле Имя поля или параметра укажите имя параметра.
Интервалы
Параметры типа date-interval
и datetime-interval
можно использовать в коде запроса только с постфиксами _from
и _to
. Например, для параметра interval
со значением 2017-01-01 — 2019-12-31
нужно указать:
interval_from
— для получения начала интервала (2017-01-01
);interval_to
— для получения конца интервала (2019-12-31
).
Пример запроса
SELECT toDate(Date) as datedate, count ('Oreder ID')
FROM samples.SampleLite
WHERE {{interval_from}} < datedate AND datedate < {{interval_to}}
GROUP BY datedate
ORDER BY datedate
Подстановка параметра в запрос QL-чарта
Значения для параметра из селектора в QL-чарт приходят в виде:
- единичного значения — если выбран один элемент;
- кортежа (tuple
) — если выбрано несколько элементов.
Если в тексте запроса для подключений ClickHouse® или PostgreSQL перед параметром указан оператор in
, то подставляемое значение всегда преобразовывается в кортеж. Для остальных подключений автоматического преобразования в кортеж не происходит. Запрос с оператором in
отработает корректно, если выбрано одно или несколько значений.
Пример запроса с оператором in
SELECT sum (Sales) as Sales, Category
FROM samples.SampleLite
WHERE Category in {{category}}
GROUP BY Category
ORDER BY Category
Если в тексте запроса перед параметром указан оператор =
, запрос отработает корректно, только если будет выбрано одно значение.
Пример запроса с оператором =
SELECT sum (Sales) as Sales, Category
FROM samples.SampleLite
WHERE Category = {{category}}
GROUP BY Category
ORDER BY Category
Пустой выбор в селекторе и параметры
Если в селекторе не выбрано ни одного значения и для параметра не задано значение по умолчанию, то в запрос передается пустое значение. В чартах на основе датасета в этом случае выбираются все значения, а в генерации запроса фильтр по соответствующему столбцу пропадает.
Чтобы обеспечить аналогичное поведение в QL-чартах, можно использовать в запросе конструкцию вида:
AND
CASE
WHEN LENGTH({{param}}::VARCHAR)=0 THEN TRUE
ELSE column IN {{param}}
END
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc