Skip to main content
Вычисляет запрос Prometheus, используя данные из таблицы TimeSeries в заданном диапазоне моментов вычисления.

Синтаксис

Аргументы

  • 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().

Пример