Avalia uma consulta do Prometheus usando dados de uma tabela TimeSeries em um intervalo de momentos de avaliação.
Sintaxe
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- 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.start_time- O horário de início do intervalo de avaliação.end_time- O horário de término do intervalo de avaliação.step- O passo usado para percorrer o tempo de avaliação destart_timeatéend_time(inclusive).
Valor retornado
A função pode retornar colunas diferentes, dependendo do tipo de resultado da consulta passada no parâmetro promql_query:
| Tipo de resultado | Colunas retornadas | Exemplo |
|---|---|---|
| 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"') |
Funcionalidades do PromQL compatíveis
Seletores
Seletores instantâneos, seletores de intervalo, correspondências de labels (=, !=, =~, !~), modificadores de offset, modificadores @ de timestamp e subconsultas.
Funções
| Categoria | Funções |
|---|---|
| Intervalo | rate, irate, delta, idelta, increase, last_over_time, deriv, changes, resets |
| Matemática | abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg, round, clamp, clamp_min, clamp_max |
| Trigonometria | 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 |
| Label | label_replace, label_join |
| Type | scalar, vector |
| Histograma | histogram_quantile |
| Outros | time, pi |
Nota: histogram_quantile usa interpolação linear em buckets de histogramas clássicos (identificados pelo label le). Histogramas nativos não têm suporte. O argumento phi (nível do quantil) precisa 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.
Operadores
Operadores binários aritméticos (+, -, *, /, %, ^, atan2) e de comparação (==, !=, <, >, <=, >= com o modificador opcional bool), com os modificadores on()/ignoring() e group_left()/group_right().
Operadores de conjunto lógicos and, or e unless, com os modificadores on()/ignoring().
Operadores unários + e -.
Operadores de agregação
sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — com os modificadores opcionais by() ou without().
Ainda não compatível
- Operador de agregação
count_values - Funções de intervalo
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 - Função
absent
Exemplo
SELECT * FROM prometheusQueryRange(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now() - INTERVAL 10 MINUTES, now(), INTERVAL 1 MINUTE)