Перейти к основному содержимому
Перейти к основному содержимому

prometheusQuery Табличная Функция

Оценивает запрос 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:

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

Пример

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