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

Синтаксис

Аргументы

  • db_name - Имя базы данных, в которой находится таблица TimeSeries.
  • time_series_table - Имя таблицы TimeSeries.
  • promql_query - Запрос, написанный в синтаксисе PromQL.
  • evaluation_time - Временная метка вычисления с точностью до миллисекунды или выше. Чтобы вычислить запрос на текущий момент, используйте now() в качестве evaluation_time.

Возвращаемое значение

Функция возвращает разные столбцы в зависимости от типа результата запроса, переданного через параметр promql_query: Значения всегда имеют тип Float64 независимо от типа значений в таблице TimeSeries. Масштаб S временных меток совпадает с масштабом временных меток в таблице, но не может быть меньше 3 (точность до миллисекунд). Если evaluation_time имеет тип DateTime или DateTime64 с часовым поясом, используется его часовой пояс TZ; в противном случае — часовой пояс временных меток в таблице. Столбец samples называется time_series, если таблица TimeSeries имеет version 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().

Пример