Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQuery

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

Синтаксис

prometheusQuery('db_name', 'time_series_table', 'promql_query', evaluation_time)
prometheusQuery(db_name.time_series_table, 'promql_query', evaluation_time)
prometheusQuery('time_series_table', 'promql_query', evaluation_time)

Аргументы

  • db_name - Имя базы данных, в которой находится таблица TimeSeries.
  • time_series_table - Имя таблицы TimeSeries.
  • promql_query - Запрос, написанный в синтаксисе PromQL.
  • evaluation_time - Временная метка вычисления. Чтобы вычислить запрос на текущий момент, используйте now()в качествеevaluation_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 prometheusQuery(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now())
Navigation