É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, utiliseznow()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())