Skip to main content

timeSeriesTopKMasks

Introduit dans : v26.8.0 Sélectionne les séries temporelles ayant les k plus grandes valeurs à chaque pas de temps d’une grille temporelle. Chaque ligne d’entrée correspond à une série temporelle : key identifie la série et values contient ses valeurs alignées sur une grille temporelle commune ; les tableaux values de toutes les lignes doivent donc être de même taille. À chaque pas de temps, ce sont les séries ayant les k plus grandes valeurs non NULL à ce pas qui sont sélectionnées (NaN est considéré comme inférieur à toute autre valeur). En cas d’égalité, la série dont la key est la plus petite l’emporte. Cette fonction implémente l’opérateur d’agrégation topk() de PromQL et ne conserve qu’un seul tas borné de taille k par pas de temps ; la taille de son état est donc indépendante du nombre de séries agrégées.
Cette fonction est en aperçu privé. Pour l’activer, définissez le paramètre enable_time_series_aggregate_functions = 1.
Syntaxe
Arguments
  • k — Nombre de séries à sélectionner à chaque pas de temps : soit une valeur unique pour tous les pas de temps, soit un tableau contenant une valeur par pas de temps. Doit être identique pour toutes les lignes. UInt* ou Array(UInt*)
  • key — Identifiant de la série temporelle. UInt64
  • values — Valeurs de la série temporelle alignées sur la grille temporelle, à raison d’un élément par pas de temps. Array(Nullable(Float32)) ou Array(Nullable(Float64)) ou Array(Float32) ou Array(Float64)
Valeur renvoyée Renvoie les séries sélectionnées triées par ordre croissant de key, chacune accompagnée de son masque par pas de temps : steps_mask[t] = 1 si la série est sélectionnée au pas de temps t. Les séries qui ne sont sélectionnées à aucun pas de temps ne sont pas renvoyées. Array(Tuple(key UInt64, steps_mask Array(UInt8))) Exemples Sélection des 2 plus grandes séries à chaque pas de temps
Query
Response
Dernière modification le 14 octobre 2026