Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

prometheusQueryRange

Évalue une requête Prometheus à l’aide des données d’une table TimeSeries sur une plage d’instants d’évaluation.

Syntaxe

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)

Arguments

  • db_name - Le nom de la base de données où se trouve une table TimeSeries.
  • time_series_table - Le nom d'une table TimeSeries.
  • promql_query - Une requête écrite en syntaxe PromQL.
  • start_time - L'heure de début de la plage d'évaluation.
  • end_time - L'heure de fin de la plage d'évaluation.
  • step - Le pas utilisé pour faire progresser le temps d'évaluation de start_time à end_time (bornes incluses).

Valeur renvoyée

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

Type de résultat Colonnes du résultat 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 de plage, correspondances de labels (=, !=, =~, !~), modificateurs offset, modificateurs d’horodatage @ et sous-requêtes.

Fonctions

Catégorie Fonctions
Plage rate, irate, delta, idelta, increase, last_over_time, deriv, changes, resets
Mathématiques 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 buckets d’histogrammes classiques (identifiés par le label le). Les histogrammes natifs ne sont pas pris en charge. L’argument phi (niveau de quantile) doit être un scalaire constant. Les expressions qui varient à chaque pas, comme 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 en option), avec les modificateurs on()/ignoring() et group_left()/group_right().

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

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