Syntaxe
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, avec une précision à la milliseconde ou plus fine. Pour évaluer une requête à l’instant présent, utiliseznow()commeevaluation_time.
Valeur renvoyée
La fonction renvoie des colonnes différentes selon le type de résultat de la requête passée au paramètrepromql_query :
Les valeurs sont toujours de type
Float64, quel que soit leur type dans la table TimeSeries. La précision S des timestamps est celle
des timestamps de la table, avec un minimum de 3 (millisecondes). Le fuseau horaire TZ est celui de evaluation_time si ce paramètre
est de type DateTime ou DateTime64 avec un fuseau horaire ; sinon, c’est celui des timestamps de la table.
La colonne samples est nommée time_series si la table TimeSeries est en version 2 ou antérieure.
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
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.
Remarque : min_of(a, b) et max_of(a, b) renvoient respectivement la plus petite et la plus grande de deux valeurs scalaires. Les deux arguments doivent être des scalaires.
Remarque : min_of, max_of, ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, first_over_time, ts_of_first_over_time et mad_over_time sont des fonctions expérimentales dans Prometheus (où elles s’activent avec --enable-feature=promql-experimental-functions) ; ClickHouse les évalue sans exiger ce flag.
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, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — avec les modificateurs facultatifs by() ou without().