Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQuery

Evalúa una consulta de Prometheus con datos de una tabla TimeSeries.

Sintaxis

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)

Argumentos

  • db_name - El nombre de la base de datos donde se encuentra una tabla TimeSeries.
  • time_series_table - El nombre de una tabla TimeSeries.
  • promql_query - Una consulta escrita en sintaxis PromQL.
  • evaluation_time - La marca temporal de evaluación. Para evaluar una consulta en el momento actual, use now()comoevaluation_time`.

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 del 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"')

Funciones de PromQL compatibles

Selectores

Selectores instantáneos, selectores de rango, comparadores de etiquetas (=, !=, =~, !~), modificadores offset, modificadores de @ timestamp 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
Otras 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 quantile) 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 el modificador opcional bool), con los modificadores on()/ignoring() y group_left()/group_right().

Operadores lógicos de conjuntos and, or y unless, con los 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 compatible

  • 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 prometheusQuery(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now())
Navigation