Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQuery

Évalue une requête Prometheus à partir des données d’une table TimeSeries.

Syntaxe

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)

Arguments

  • db_name - Le nom de la base de données dans laquelle se trouve une table TimeSeries.
  • time_series_table - Le nom d’une table TimeSeries.
  • promql_query - Une requête écrite en syntaxe PromQL.
  • evaluation_time - L’horodatage d’évaluation. Pour évaluer une requête à l’instant présent, utilisez now()commeevaluation_time`.

Valeur renvoyée

La fonction peut renvoyer des colonnes différentes selon le type de résultat de la requête passée au paramètre promql_query :

Type de résultat Colonnes renvoyées Exemple
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"')

Fonctionnalités PromQL prises en charge

Sélecteurs

Sélecteurs instantanés, sélecteurs d’intervalle, correspondances de labels (=, !=, =~, !~), modificateurs de décalage, modificateurs d’horodatage @ et sous-requêtes.

Fonctions

Catégorie Fonctions
Plage rate, irate, delta, idelta, increase, last_over_time, deriv, changes, resets
Maths abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg, round, clamp, clamp_min, clamp_max
Trigonométrie 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
Histogramme histogram_quantile
Autre time, pi

Remarque : histogram_quantile utilise une interpolation linéaire sur les classes des histogrammes classiques (repérées par le label le). Les histogrammes natifs ne sont pas pris en charge. L’argument phi (niveau de quantile) doit être une constante scalaire. Les expressions qui varient d’un pas à l’autre, telles que histogram_quantile(time() / 1000, ...), sont rejetées avec une exception NOT_IMPLEMENTED.

Opérateurs

Opérateurs binaires arithmétiques (+, -, *, /, %, ^, atan2) et de comparaison (==, !=, <, >, <=, >= avec bool facultatif), avec les modificateurs on()/ignoring() et group_left()/group_right().

Opérateurs d’ensemble logiques and, or et unless, avec les modificateurs on()/ignoring().

Opérateurs unaires + et -.

Opérateurs d’agrégation

sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — avec les modificateurs facultatifs by() ou without().

Pas encore pris en charge

  • Opérateur d’agrégation count_values
  • Fonctions de plage 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
  • Fonction absent

Exemple

SELECT * FROM prometheusQuery(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now())
Navigation