Функции для работы с временными рядами
Следующие функции предназначены для использования совместно с агрегатными функциями timeSeries*(), такими как
timeSeriesInstantRateToGrid,
timeSeriesLastToGrid
и другими.
seriesDecomposeSTL
Добавлена в версии: v24.1
Разлагает временной ряд с использованием STL (Seasonal-Trend Decomposition Procedure Based on Loess) на сезонную, трендовую и остаточную составляющие.
Синтаксис
Аргументы
series— массив числовых значенийArray((U)Int8/16/32/64)илиArray(Float*)period— положительное целое числоUInt8/16/32/64
Возвращаемое значение
Возвращает массив из четырёх массивов, где первый массив содержит сезонные компоненты, второй массив — тренд, третий массив — остаточную компоненту, а четвёртый массив — базовую компоненту (seasonal + trend). Array(Array(Float32), Array(Float32), Array(Float32), Array(Float32))
Примеры
Разложение данных временного ряда с помощью STL
seriesOutliersDetectTukey
Введена в версии: v24.2
Обнаруживает выбросы в данных временных рядов с помощью ограждений Тьюки (Tukey Fences).
Синтаксис
Аргументы
series— массив числовых значений.Array((UInt8/16/32/64))илиArray(Float*)min_percentile— необязательный параметр. Минимальный процентиль, используемый для вычисления межквартильного размаха (IQR). Значение должно быть в диапазоне [0.02, 0.98]. Значение по умолчанию — 0.25.Float*max_percentile— необязательный параметр. Максимальный процентиль, используемый для вычисления межквартильного размаха (IQR). Значение должно быть в диапазоне [0.02, 0.98]. Значение по умолчанию — 0.75.Float*K— необязательный параметр. Неотрицательная константа для обнаружения умеренных или более сильных выбросов. Значение по умолчанию — 1.5.Float*
Возвращаемое значение
Возвращает массив той же длины, что и входной массив, где каждое значение представляет собой оценку степени возможной аномалии соответствующего элемента в ряду. Ненулевое значение оценки указывает на возможную аномалию. Array(Float32)
Примеры
Простое обнаружение выбросов
Выявление выбросов с настраиваемыми параметрами
seriesPeriodDetectFFT
Добавлено в: v23.12
Определяет период заданных данных временного ряда с помощью FFT — быстрого преобразования Фурье
Синтаксис
Аргументы
series— массив числовых значений.Array((U)Int8/16/32/64)илиArray(Float*)
Возвращаемое значение
Возвращает вещественное значение, равное периоду данных временного ряда. Возвращает NaN, если количество точек данных меньше четырёх. Float64
Примеры
Определение периода по простому паттерну
Определение периода по сложному шаблону
timeSeriesCopyTag
Добавлено в версии: v26.1
Копирует указанный тег из одной группы тегов (src_group) в другую (dest_group).
Функция заменяет любые предыдущие значения копируемого тега в dest_group.
Если копируемый тег отсутствует в src_group, функция также удалит его из dest_group.
Функция следует логике копирования модификаторов Prometheus
group left/group right.
Синтаксис
Аргументы
dest_group— целевая группа тегов.UInt64src_group— исходная группа тегов.UInt64tag_to_copy— имя тега, который нужно скопировать.String
Возвращаемое значение
Возвращает группу тегов, содержащую теги из dest_group, а также скопированные теги из src_group. UInt64
Примеры
Пример
timeSeriesCopyTags
Введена в: v26.1
Копирует указанные теги из одной группы тегов (src_group) в другую (dest_group).
Функция заменяет все предыдущие значения скопированных тегов в dest_group.
Если некоторые из копируемых тегов отсутствуют в src_group, функция также удалит их из dest_group.
Функция имитирует логику копирования модификаторов Prometheus
group left/group right.
Синтаксис
Аргументы
dest_group— целевая группа тегов.UInt64src_group— исходная группа тегов.UInt64tags_to_copy— имена тегов для копирования.Array(String)
Возвращаемое значение
Возвращает группу тегов, которая содержит теги из dest_group вместе со скопированными тегами из src_group. UInt64
Примеры
Пример
timeSeriesExtractTag
Добавлена в: v26.1
Извлекает значение указанного тега из группы. Возвращает NULL, если тег не найден. См. также функцию timeSeriesGroupToTags().
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение указанного тега. Nullable(String)
Примеры
Пример
timeSeriesFromGrid
Введена в версии: v25.8
Преобразует массив значений [x1, x2, x3, ...] в массив кортежей
[(start_timestamp, x1), (start_timestamp + step, x2), (start_timestamp + 2 * step, x3), ...].
Текущая метка времени увеличивается на step до тех пор, пока не станет больше end_timestamp.
Если количество значений не совпадает с количеством меток времени, функция выбрасывает исключение.
Значения NULL в [x1, x2, x3, ...] пропускаются, но при этом текущая метка времени всё равно увеличивается.
Например, для [value1, NULL, x2] функция возвращает [(start_timestamp, x1), (start_timestamp + 2 * step, x2)].
Синтаксис
Аргументы
start_timestamp— Начало временной сетки.DateTime64илиDateTimeилиUInt32end_timestamp— Конец временной сетки.DateTime64илиDateTimeилиUInt32step— Шаг сетки в секундах,Decimal64илиDecimal32илиUInt32/64values— Массив значенийArray(Float*)илиArray(Nullable(Float*))
Возвращаемое значение
Возвращает значения из исходного массива, объединённые с метками времени на регулярной временной сетке, задаваемой start_timestamp и step. Array(Tuple(DateTime64, Float64))
Примеры
Пример использования
timeSeriesGroupToTags
Добавлена в версии: v26.1
Возвращает имена и значения тегов, связанных с указанной группой. См. также функцию timeSeriesTagsToGroup().
Синтаксис
Псевдонимы: timeSeriesTagsGroupToTags
Аргументы
group— группа тегов типаUInt64
Возвращаемое значение
Возвращает массив пар (tag_name, tag_value).
Возвращаемый массив всегда отсортирован по tag_name и не содержит повторяющихся значений tag_name.
Array(Tuple(String, String))
Примеры
Пример
timeSeriesIdToGroup
Добавлена в версии: v26.1
Возвращает имена и значения тегов, связанных с указанным идентификатором временного ряда. См. также функцию timeSeriesStoreTags().
Синтаксис
Псевдонимы: timeSeriesIdToTagsGroup
Аргументы
id— идентификатор временного ряда.UInt64илиUInt128илиUUIDилиFixedString(16)
Возвращаемое значение
Возвращает группу тегов, связанных с идентификатором временного ряда id. UInt64
Примеры
Пример
timeSeriesIdToTags
Появилась в версии: v25.8
Возвращает теги, связанные с указанным идентификатором временного ряда. См. также функцию timeSeriesStoreTags().
Синтаксис
Аргументы
id— идентификатор временного ряда.UInt64илиUInt128илиUUIDилиFixedString(16)
Возвращаемое значение
Возвращает массив пар (tag_name, tag_value).
Возвращаемый массив всегда отсортирован по tag_name и не содержит повторяющихся значений tag_name.
Array(Tuple(String, String))
Примеры
Пример
timeSeriesJoinTags
Добавлена в: v26.1
Объединяет значения указанных тегов, извлечённых из группы тегов.
Функция вставляет разделитель между объединёнными значениями и возвращает новую группу тегов
с тегом dest_tag, установленным в объединённое значение.
Эта функция воспроизводит логику функции Prometheus
label_join().
Синтаксис
Аргументы
group— группа тегов.UInt64dest_tag— имя тега с объединённым результатом, который будет добавлен вgroup.Stringseparator— разделитель, вставляемый между объединяемыми значениями.Stringsrc_tags— имена исходных тегов со значениями, которые будут объединены.Array(String)
Возвращаемое значение
Возвращает новую группу тегов с тегом dest_tag, установленным в значение объединённого результата. UInt64
Примеры
Пример
timeSeriesRange
Введена в версии: v25.8
Генерирует диапазон меток времени [start_timestamp, start_timestamp + step, start_timestamp + 2 * step, ..., end_timestamp].
Если start_timestamp равен end_timestamp, функция возвращает массив из одного элемента, содержащий [start_timestamp].
Функция timeSeriesRange() аналогична функции range.
Синтаксис
Аргументы
start_timestamp— Начало диапазона.DateTime64илиDateTimeилиUInt32end_timestamp— Конец диапазона.DateTime64илиDateTimeилиUInt32step— Шаг диапазона в секундах.UInt32/64илиDecimal32/64
Возвращаемое значение
Возвращает диапазон меток времени. Array(DateTime64)
Примеры
Пример использования
timeSeriesRemoveAllTagsExcept
Добавлена в версии v26.1
Удаляет все теги, кроме указанных, из группы тегов. См. также функции timeSeriesRemoveTag(), timeSeriesRemoveTags().
Синтаксис
Аргументы
group— группа тегов.UInt64tags_to_keep— имена тегов, которые нужно оставить в группе.Array(String)
Возвращаемое значение
Новая группа тегов, в которой сохранены только указанные теги. UInt64
Примеры
Пример
timeSeriesRemoveTag
Введена в версии v26.1
Удаляет указанный тег из группы тегов. Если в группе нет такого тега, группа возвращается без изменений. См. также функции timeSeriesRemoveTags(), timeSeriesRemoveAllTagsExcept().
Синтаксис
Аргументы
Возвращаемое значение
Новая группа тегов без указанного тега. UInt64
Примеры
Пример
timeSeriesRemoveTags
Впервые появилась в версии v26.1
Удаляет указанные теги из группы тегов. Если некоторых из указанных тегов нет в группе тегов, функция их игнорирует. См. также функции timeSeriesRemoveTag(), timeSeriesRemoveAllTagsExcept().
Синтаксис
Аргументы
group— Группа тегов.UInt64tags_to_remove— Имена тегов, которые нужно удалить из группы.Array(String)
Возвращаемое значение
Новая группа тегов без указанных тегов. UInt64
Примеры
Пример
timeSeriesReplaceTag
Впервые представлено в: v26.1
Сопоставляет регулярное выражение regex со значением тега src_tag.
Если сопоставление успешно, значение тега dest_tag в результирующем наборе будет подстановкой replacement,
вместе с исходными тегами во входных данных.
Эта функция имитирует логику функции prometheus
label_replace().
Синтаксис
Аргументы
group— группа тегов.UInt64dest_tag— имя целевого тега, в который записывается результирующая группа.Stringreplacement— шаблон замены, может содержать 2 или $name для обращения к захватывающим группам в регулярном выражении «regex».Stringsrc_tag— имя тега, значение которого используется для сопоставления с регулярным выражением «regex».Stringregex— регулярное выражение.String
Возвращаемое значение
Новая группа тегов, возможно с добавлением dest_tag. UInt64
Примеры
Пример
timeSeriesStoreTags
Добавлено в версии: v25.8
Сохраняет в контексте запроса соответствие между указанным идентификатором временного ряда и набором тегов. Функции timeSeriesIdToTags() и timeSeriesIdToGroup() могут использоваться для доступа к этому соответствию позже во время выполнения запроса.
Синтаксис
Аргументы
id— Идентификатор временного ряда.UInt64илиUInt128илиUUIDилиFixedString(16)tags_array— Массив пар (tag_name, tag_value).Array(Tuple(String, String))илиNULLseparate_tag_name_i— Имя тега.StringилиFixedStringseparate_tag_value_i— Значение тега.StringилиFixedStringилиNullable(String)
Возвращаемое значение
Возвращает идентификатор временного ряда (т. е. просто первый аргумент).
Примеры
Пример
timeSeriesTagsToGroup
Введена в версии v26.1
Возвращает группу тегов, связанную с указанными тегами. Если одна и та же группа тегов встречается несколько раз при выполнении запроса, функция возвращает одну и ту же группу. Для пустого набора тегов функция всегда возвращает значение 0. См. также функцию timeSeriesGroupToTags().
Синтаксис
Аргументы
tags_array— Массив пар (tag_name, tag_value).Array(Tuple(String, String))илиNULLtag_name_i— Имя тега.StringилиFixedStringtag_value_i— Значение тега.StringилиFixedStringилиNullable(String)
Возвращаемое значение
Возвращает группу тегов, связанную с указанными тегами. UInt64
Примеры
Пример