timeSeriesLimitKMasks
Introduzido em: v26.8.0 Seleciona até k séries temporais em cada passo de uma grade temporal, de forma pseudoaleatória e determinística. Cada linha de entrada corresponde a uma série temporal:key identifica a série, sampling_key é um hash por série usado como
ordem de seleção e values contém os valores da série alinhados a uma grade temporal comum (portanto, os arrays values
de todas as linhas devem ter o mesmo tamanho). Em cada passo de tempo, são selecionadas as séries com as k menores chaves de amostragem dentre aquelas
com valores não NULL naquele passo. Empates entre chaves de amostragem são resolvidos dando preferência à série com o menor key.
Esta função implementa o operador de agregação limitk() do PromQL e mantém apenas um heap limitado de tamanho k por
passo de tempo, 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.UInt64sampling_key— Um hash por série que define a ordem de seleção, por exemplo,timeSeriesGroupToSamplingKey(key).UInt64values— Valores da série temporal alinhados à grade temporal, 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
Seleção de 2 séries por passo de tempo com base nas menores chaves de amostragem
Query
Response