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, usenow()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())