Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQuery

Avalia uma consulta do Prometheus usando dados de uma tabela TimeSeries.

Sintaxe

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 - 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. Para avaliar uma consulta no momento atual, use now()comoevaluation_time`.

Valor retornado

A função pode retornar colunas diferentes, dependendo do tipo de resultado da consulta fornecida 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, operadores de correspondência de rótulos (=, !=, =~, !~), modificadores offset, modificadores de timestamp com @ 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
Rótulo label_replace, label_join
Tipo scalar, vector
Histograma histogram_quantile
Outros time, pi

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.

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