timeSeriesTopKMasks
Introduzido em: v26.8.0 Seleciona as séries temporais com os k maiores valores em cada passo de uma grade temporal. Cada linha de entrada é uma série temporal:key identifica a série e values contém seus valores alinhados a uma
grade temporal comum, portanto os arrays values de todas as linhas devem ter o mesmo tamanho. Em cada passo, são selecionadas as séries com os k maiores
valores não NULL naquele passo (NaN é considerado menor que qualquer outro valor). Empates de valor são resolvidos
dando preferência à série com o menor valor de key.
Esta função implementa o operador de agregação topk() do PromQL e mantém apenas um heap limitado de tamanho k por
passo, de modo que o tamanho do seu estado não depende do número de séries agregadas.
Esta função está em prévia privada; para habilitá-la, defina
enable_time_series_aggregate_functions = 1.k— Quantas séries selecionar em cada passo de tempo: um único valor para todos os passos de tempo ou um array com um valor por passo de tempo. Deve ser o mesmo para todas as linhas.UInt*ouArray(UInt*)key— Identificador da série temporal.UInt64values— Valores da série temporal alinhados à grade temporal, com um elemento por passo de tempo.Array(Nullable(Float32))ouArray(Nullable(Float64))ouArray(Float32)ouArray(Float64)
key, cada uma acompanhada de sua máscara por passo: steps_mask[t] = 1 se a série for selecionada no passo de tempo t. Séries que não forem selecionadas em nenhum passo de tempo não são retornadas. Array(Tuple(key UInt64, steps_mask Array(UInt8)))
Exemplos
Selecionando as 2 maiores séries por passo de tempo
Query
Response