Skip to main content
Évalue une requête Prometheus à partir des données d’une table TimeSeries.

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, utilisez now() comme evaluation_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ètre promql_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().

Exemple