Évalue une requête Prometheus à l’aide des données d’une table TimeSeries sur une plage d’instants d’évaluation.
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)
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).
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 instantanés, sélecteurs de plage, correspondances de labels (=, !=, =~, !~), modificateurs offset, modificateurs d’horodatage @ et sous-requêtes.
| Catégorie | Fonctions |
|---|
| Intervalle | rate, irate, delta, idelta, last_over_time |
| Mathématiques | abs, sgn, floor, ceil, sqrt, exp, ln, log2, log10, rad, deg |
| 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 |
| 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 encore pris en charge, et l’argument phi (niveau de quantile) doit actuellement être un scalaire constant — les expressions qui varient à chaque pas, comme histogram_quantile(time() / 1000, ...), sont rejetées avec une erreur NOT_IMPLEMENTED.
Tous les opérateurs binaires arithmétiques (+, -, *, /, %, ^), de comparaison (==, !=, <, >, <=, >= avec bool en option) et logiques (and, or, unless), avec les modificateurs on()/ignoring() et group_left()/group_right().
Les opérateurs unaires + et -.
sum, avg, min, max, count, stddev, stdvar, group, quantile, topk, bottomk, limitk — avec les modificateurs facultatifs by() ou without().
Pas encore pris en charge : count_values.
SELECT * FROM prometheusQueryRange(mytable, 'rate(http_requests{job="prometheus"}[10m])[1h:10m]', now() - INTERVAL 10 MINUTES, now(), INTERVAL 1 MINUTE)
Dernière modification le 29 juin 2026