Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQueryRange

Evalúa una consulta de Prometheus con datos de una tabla TimeSeries en un intervalo de tiempos de evaluación.

Sintaxis

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)

Argumentos

  • db_name - El nombre de la base de datos donde se encuentra la tabla TimeSeries.
  • time_series_table - El nombre de una tabla TimeSeries.
  • promql_query - Una consulta escrita en sintaxis PromQL.
  • start_time - La hora de inicio del intervalo de evaluación.
  • end_time - La hora de finalización del intervalo de evaluación.
  • step - El paso utilizado para iterar el tiempo de evaluación desde start_time hasta end_time (ambos inclusive).

Valor devuelto

La función puede devolver distintas columnas según el tipo de resultado de la consulta proporcionada en el parámetro promql_query:

Tipo de resultado Columnas de resultado Ejemplo
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"')

Características de PromQL compatibles

Selectores

Selectores instantáneos, selectores de rango, comparadores de etiquetas (=, !=, =~, !~), modificadores offset, modificadores de marca temporal @ y subconsultas.

Funciones

Categoría Funciones
Rango rate, irate, delta, idelta, increase, last_over_time, deriv, changes, resets
Matemáticas abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg, round, clamp, clamp_min, clamp_max
Trigonometría sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh
DateTime day_of_week, day_of_month, days_in_month, day_of_year, minute, hour, month, year
Etiqueta label_replace, label_join
Tipo scalar, vector
Histograma histogram_quantile
Otros time, pi

Nota: histogram_quantile usa interpolación lineal en los buckets de histogramas clásicos (identificados por la etiqueta le). Los histogramas nativos no son compatibles. El argumento phi (nivel de cuantil) debe ser un escalar constante. Las expresiones que varían en cada paso, como histogram_quantile(time() / 1000, ...), se rechazan con una excepción NOT_IMPLEMENTED.

Operadores

Operadores binarios aritméticos (+, -, *, /, %, ^, atan2) y de comparación (==, !=, <, >, <=, >= con bool opcional), junto con los modificadores on()/ignoring() y group_left()/group_right().

Operadores lógicos de conjuntos and, or y unless, con modificadores on()/ignoring().

Operadores unarios + y -.

Operadores de agregación

sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — con los modificadores opcionales by() o without().

Aún no admitido

  • Operador de agregación count_values
  • Funciones de rango 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
  • Función absent

Ejemplo

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