timeSeriesQuantileToGrid
Добавлена в: v26.9.0 Агрегатная функция, которая принимает данные временных рядов в виде пар временных меток и значений и вычисляет функцию PromQLquantile_over_time на регулярной временной сетке, заданной начальной временной меткой, конечной временной меткой и шагом. Для каждой точки сетки квантиль вычисляется по образцам, попадающим в заданное временное окно. Квантиль вычисляется методом R-7 (inclusive), как в quantileExactInclusive. Однако, в отличие от quantileExactInclusive, образцы NaN не пропускаются: как и в Prometheus, они сохраняются и при сортировке располагаются перед всеми действительными значениями. Поэтому для окна [1, NaN, 2] медиана равна 1, а если все образцы в окне равны NaN, результатом будет NaN.
Уровень квантиля передаётся последним аргументом после образцов: либо как одно число, используемое для всех точек сетки, либо как массив, содержащий по одному числу для каждой точки сетки. Он должен быть одинаковым во всех строках. Как и в Prometheus, уровень меньше 0 даёт -Inf, уровень больше 1 — +Inf, а уровень NaN даёт NaN для каждой точки сетки, в окне которой есть образцы.
Эта функция находится в стадии закрытой предварительной версии. Чтобы включить её, установите настройку
enable_time_series_aggregate_functions=true.start_timestamp— Задаёт начало сетки. Также может быть дробным числом или строкой, содержащей число либо дату и время в текстовом виде.UInt32илиDateTimeилиDateTime64илиFloat*илиDecimal*илиStringend_timestamp— Задаёт конец сетки. Также может быть дробным числом или строкой, содержащей число либо дату и время в текстовом виде.UInt32илиDateTimeилиDateTime64илиFloat*илиDecimal*илиStringgrid_step— Задаёт шаг сетки в секундах. Также может быть дробным числом или строкой, содержащей число либо длительность, например ’15s’ или ‘1m’.UInt32илиFloat*илиDecimal*илиStringstaleness— Задаёт максимальную «давность» (staleness) учитываемых образцов в секундах. Окно давности представляет собой интервал, открытый слева и закрытый справа. Также может быть дробным числом или строкой, содержащей число либо длительность, например ’15s’ или ‘1m’.UInt32илиFloat*илиDecimal*илиString
timestamp— временная метка образца. Может быть отдельным значением или массивом.UInt32илиDateTimeилиDateTime64илиArray(UInt32)илиArray(DateTime)илиArray(DateTime64)value— значение временного ряда, соответствующее временной метке. Может быть отдельным значением или массивом.Float*илиArray(Float*)samples— образцы временного ряда, передаваемые в виде массива Tuple(timestamp, value), элементы которых имеют указанные выше типы временной метки и значения. Альтернатива передаче временных меток и значений в виде двух отдельных аргументов.Array(Tuple(T1, T2))phi— уровень квантиля, обычно в диапазоне [0, 1]: либо одно число для всей сетки, либо массив, содержащий по одному числу для каждой точки сетки. Должен быть одинаковым во всех строках.Float*илиUInt8/16/32/64илиInt8/16/32/64илиArray(Float*)илиArray(UInt8/16/32/64)илиArray(Int8/16/32/64)
Array(Nullable(Float64))
Примеры