Syntaxe
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, avec une précision à la milliseconde ou supérieure.end_time- L’heure de fin de la plage d’évaluation, avec une précision à la milliseconde ou supérieure.step- Le pas utilisé pour faire progresser l’instant d’évaluation destart_timeàend_time(bornes incluses).
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 le type des valeurs dans la table TimeSeries. La scale S des timestamps correspond à celle
des timestamps de la table, avec un minimum de 3 (millisecondes). Le fuseau horaire TZ est celui de start_time et end_time
s’ils sont de type DateTime ou DateTime64 avec le même fuseau horaire ; sinon, il s’agit du fuseau horaire des timestamps de la table.
La colonne samples s’appelle 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 de plage, correspondances de labels (=, !=, =~, !~), modificateurs offset, modificateurs d’horodatage @ et sous-requêtes.
Fonctions
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.
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 (activées 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 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, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — avec les modificateurs facultatifs by() ou without().