Синтаксис
Аргументы
db_name- Имя базы данных, в которой находится таблица TimeSeries.time_series_table- Имя таблицы TimeSeries.promql_query- Запрос, записанный в синтаксисе PromQL.start_time- Время начала интервала вычисления с точностью не ниже миллисекунды.end_time- Время окончания интервала вычисления с точностью не ниже миллисекунды.step- Шаг, с которым перебирается время вычисления отstart_timeдоend_time(включительно).
Возвращаемое значение
Функция возвращает разные столбцы в зависимости от типа результата запроса, переданного в параметреpromql_query:
Значения всегда имеют тип
Float64 независимо от типа значений в таблице TimeSeries. Масштаб S временных меток совпадает с масштабом
временных меток в таблице, но не меньше 3 (миллисекунды). Часовой пояс TZ совпадает с часовым поясом start_time и end_time,
если они имеют тип DateTime или DateTime64 с одним и тем же часовым поясом; в противном случае используется часовой пояс временных меток в таблице.
Столбец samples называется time_series, если таблица TimeSeries имеет версию 2 или ниже.
Поддерживаемые возможности PromQL
Селекторы
Мгновенные селекторы, селекторы диапазона, сопоставители меток (=, !=, =~, !~), модификаторы offset, модификаторы временной метки @ и подзапросы.
Функции
Note:
histogram_quantile использует линейную интерполяцию для классических бакетов гистограммы (определяемых по метке le). Нативные гистограммы не поддерживаются. Аргумент phi (уровень квантиля) должен быть константным скаляром. Выражения, меняющиеся от шага к шагу, такие как histogram_quantile(time() / 1000, ...), отклоняются с исключением NOT_IMPLEMENTED.
Note: min_of(a, b) и max_of(a, b) возвращают меньшее и большее из двух скалярных значений соответственно. Оба аргумента должны быть скалярами.
Note: min_of, max_of, ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, first_over_time, ts_of_first_over_time и mad_over_time — экспериментальные функции в Prometheus (там они включаются с помощью --enable-feature=promql-experimental-functions); ClickHouse вычисляет их без этого флага.
Операторы
Бинарные арифметические (+, -, *, /, %, ^, atan2) и сравнительные (==, !=, <, >, <=, >= с необязательным bool) операторы с модификаторами on()/ignoring() и group_left()/group_right().
Логические операторы множеств and, or и unless с модификаторами on()/ignoring().
Унарные операторы + и -.
Операторы агрегации
sum, avg, min, max, count, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — с необязательными модификаторами by() и without().