Sintaxe
Argumentos
db_name- O nome do banco de dados em que uma tabela TimeSeries está localizada.time_series_table- O nome de uma tabela TimeSeries.promql_query- Uma consulta escrita em sintaxe PromQL.evaluation_time- O timestamp de avaliação, com precisão de milissegundos ou superior. Para avaliar uma consulta no momento atual, usenow()comoevaluation_time.
Valor retornado
A função retorna colunas diferentes, dependendo do tipo de resultado da consulta fornecida no parâmetropromql_query:
Os valores são sempre do tipo
Float64, independentemente do tipo dos valores na tabela TimeSeries. A escala S dos timestamps é a escala
dos timestamps na tabela, mas nunca inferior a 3 (milissegundos). O fuso horário TZ é o fuso horário de evaluation_time se ele for
do tipo DateTime ou DateTime64 com um fuso horário; caso contrário, é o fuso horário dos timestamps na tabela.
A coluna samples recebe o nome time_series se a tabela TimeSeries tiver version 2 ou anterior.
Funcionalidades do PromQL compatíveis
Seletores
Seletores instantâneos, seletores de intervalo, operadores de correspondência de rótulos (=, !=, =~, !~), modificadores offset, modificadores de timestamp com @ e subconsultas.
Funções
Nota:
histogram_quantile usa interpolação linear em buckets clássicos de histograma (identificados pelo rótulo le). Histogramas nativos não têm suporte. O argumento phi (nível de quantile) deve ser um escalar constante. Expressões que variam a cada passo, como histogram_quantile(time() / 1000, ...), são rejeitadas com uma exceção NOT_IMPLEMENTED.
Nota: min_of(a, b) e max_of(a, b) retornam, respectivamente, o menor ou o maior de dois valores escalares. Ambos os argumentos devem 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 e mad_over_time são funções experimentais no Prometheus (habilitadas lá com --enable-feature=promql-experimental-functions); o ClickHouse as avalia sem exigir essa flag.
Operadores
Operadores binários aritméticos (+, -, *, /, %, ^, atan2) e de comparação (==, !=, <, >, <=, >= com bool opcional), com os modificadores on()/ignoring() e group_left()/group_right().
Operadores lógicos de conjuntos and, or e unless, com os modificadores on()/ignoring().
Operadores unários + e -.
Operadores de agregação
sum, avg, min, max, count, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — com os modificadores opcionais by() ou without().