Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQueryRange

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

Синтаксис

prometheusQueryRange('db_name', 'time_series_table', 'promql_query', start_time, end_time, step)
prometheusQueryRange(db_name.time_series_table, 'promql_query', start_time, end_time, step)
prometheusQueryRange('time_series_table', 'promql_query', start_time, end_time, step)

Аргументы

  • db_name - Имя базы данных, в которой находится таблица TimeSeries.
  • time_series_table - Имя таблицы TimeSeries.
  • promql_query - Запрос, записанный в синтаксисе PromQL.
  • start_time - Время начала интервала вычисления.
  • end_time - Время окончания интервала вычисления.
  • step - Шаг, с которым перебирается время вычисления от start_time до end_time (включительно).

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

Функция может возвращать разные столбцы в зависимости от типа результата запроса, переданного в параметр promql_query:

Тип результата Возвращаемые столбцы Пример
vector tags Array(Tuple(String, String)), timestamp TimestampType, value ValueType prometheusQuery(mytable, 'up')
matrix tags Array(Tuple(String, String)), time_series Array(Tuple(TimestampType, ValueType)) prometheusQuery(mytable, 'up[1m]')
scalar scalar ValueType prometheusQuery(mytable, '1h30m')
string string String prometheusQuery(mytable, '"abc"')

Поддерживаемые возможности PromQL

Селекторы

Мгновенные селекторы, селекторы диапазона, сопоставители меток (=, !=, =~, !~), модификаторы offset, модификаторы временной метки @ и подзапросы.

Функции

Категория Функции
Диапазон rate, irate, delta, idelta, increase, last_over_time, deriv, changes, resets
Математические abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg, round, clamp, clamp_min, clamp_max
Тригонометрические sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh
Дата и время day_of_week, day_of_month, days_in_month, day_of_year, minute, hour, month, year
Метка label_replace, label_join
Тип scalar, vector
Гистограмма histogram_quantile
Другое time, pi

Note: histogram_quantile использует линейную интерполяцию для классических бакетов гистограммы (определяемых по метке le). Нативные гистограммы не поддерживаются. Аргумент phi (уровень квантиля) должен быть константным скаляром. Выражения, меняющиеся от шага к шагу, такие как histogram_quantile(time() / 1000, ...), отклоняются с исключением NOT_IMPLEMENTED.

Операторы

Бинарные арифметические (+, -, *, /, %, ^, atan2) и сравнительные (==, !=, <, >, <=, >= с необязательным bool) операторы с модификаторами on()/ignoring() и group_left()/group_right().

Логические операторы множеств and, or и unless с модификаторами on()/ignoring().

Унарные операторы + и -.

Операторы агрегации

sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — с необязательными модификаторами by() и without().

Пока не поддерживается

  • Оператор агрегации count_values
  • Функции диапазона predict_linear, avg_over_time, min_over_time, max_over_time, sum_over_time, count_over_time, quantile_over_time, stddev_over_time, stdvar_over_time, present_over_time, absent_over_time, mad_over_time, first_over_time, ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, ts_of_first_over_time
  • Функция absent

Пример

SELECT * FROM prometheusQueryRange(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now() - INTERVAL 10 MINUTES, now(), INTERVAL 1 MINUTE)
Navigation