Sintaxis
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, con una precisión de milisegundos o mayor.end_time- La hora de finalización del intervalo de evaluación, con una precisión de milisegundos o mayor.step- El paso utilizado para iterar el tiempo de evaluación desdestart_timehastaend_time(ambos inclusive).
Valor devuelto
La función devuelve distintas columnas según el tipo de resultado de la consulta que se pasa en el parámetropromql_query:
Los valores son siempre de tipo
Float64, independientemente del tipo de los valores de la tabla TimeSeries. La escala S de las marcas de tiempo coincide con la escala
de las marcas de tiempo de la tabla, pero es como mínimo 3 (milisegundos). La zona horaria TZ es la de start_time y end_time
si ambos son de tipo DateTime o DateTime64 y tienen la misma zona horaria; de lo contrario, es la zona horaria de las marcas de tiempo de la tabla.
La columna samples se denomina time_series si la tabla TimeSeries tiene la versión 2 o una anterior.
Características de PromQL compatibles
Selectores
Selectores instantáneos, selectores de rango, comparadores de etiquetas (=, !=, =~, !~), modificadores offset, modificadores de marca temporal @ y subconsultas.
Funciones
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.
Nota: min_of(a, b) y max_of(a, b) devuelven, respectivamente, el menor o el mayor de dos valores escalares. Ambos argumentos deben ser escalares.
Nota: min_of, max_of, ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, first_over_time, ts_of_first_over_time y mad_over_time son funciones experimentales en Prometheus (habilitadas allí con --enable-feature=promql-experimental-functions); ClickHouse las evalúa sin requerir ese indicador.
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, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — con los modificadores opcionales by() o without().