Функции динамики изменений, в отличие от функций истории, используют для вычислений данные динамики изменений.
Динамика изменений сохраняется в виде агрегированных за час значений. Функции динамики изменений используют эти усреднённые за час значения, и, таким образом, полезны для долгосрочного анализа.
Результаты функций динамики изменений кэшируются, поэтому несколько вызовов той же функции с теми же параметрами извлекут информацию из базы данных только однократно. Кэш функций динамики изменений управляется параметром сервера TrendFunctionCacheSize.
Триггеры, которые ссылаются только на функции динамики изменений, пересчитываются один раз за наименьший период времени в выражении. Например, такой триггер:
будет пересчитываться раз в сутки. Если триггер содержит как функции динамики изменений, так и функции истории (либо функции даты и времени и/или nodata()), то он пересчитывается в соответствии с обычными принципами.
Все перечисленные здесь функции поддерживаются в:
Функции перечислены без подробных сведений. Нажмите на функцию, чтобы увидеть полную информацию.
Функция | Описание |
---|---|
baselinedev | Возвращает количество стандартных отклонений (по алгоритму stddevpop, среднеквадратичное отклонение) между последним периодом данных и теми же периодами данных в предыдущие сезоны. |
baselinewma | Вычисляет базовый уровень путем усреднения данных за один и тот же интервал времени в течение нескольких равных периодов времени («сезонов») с использованием алгоритма взвешенного скользящего среднего. |
trendavg | Среднее из значений динамики изменений за определённый период времени. |
trendcount | Количество успешно извлечённых значений истории, используемых для расчёта значений динамики изменений за определённый период времени. |
trendmax | Максимальное значение из динамики изменений за определённый период времени. |
trendmin | Минимальное значение из динамики изменений за определённый период времени. |
trendstl | Возвращает частоту аномалий за период обнаружения — десятичное значение от 0 до 1, которое определяется как ((количество аномальных значений)/(общее количество значений)) . |
trendsum | Сумма значений динамики изменений за определённый период времени. |
/узел_сети/ключ
является общим обязательным первым параметромпериод_времени:сдвиг_времени
является общим вторым параметром, где:
N
— количество единиц времени, единица_времени
— h (час), d (сутки), w (неделя), M (месяц) или y (год).Некоторые общие замечания о параметрах функций:
<
>
/узел_сети/ключ
и период_времени:сдвиг_времени
никогда не должны заключаться в кавычкиВозвращает количество стандартных отклонений (по алгоритму stddevpop, среднеквадратичное отклонение) между последним периодом данных и теми же периодами данных в предыдущие сезоны.
Параметры:
N
— количество единиц времениединица_времени
— h (час), d (сутки), w (неделя), M (месяц) или y (год), должно быть меньше или равно сезонуПримеры:
baselinedev(/узел_сети/ключ,1d:now/d,"M",6) #расчёт количества стандартных отклонений (генеральная совокупность) между предыдущими сутками и теми же сутками в предыдущие 6 месяцев. Если дата в предыдущем месяце не существует, будет использован последний день месяца (31 июля будет проанализировано в сравнении с 31 янавря, 28 февраля, ... , 30 июня)
baselinedev(/узел_сети/ключ,1h:now/h,"d",10) #расчёт количества стандартных отклонений (генеральная совокупность) между предыдущим часом и тем же часом на протяжении декады до вчерашнего дня
Вычисляет базовый уровень путем усреднения данных за один и тот же интервал времени в течение нескольких равных периодов времени («сезонов») с использованием алгоритма взвешенного скользящего среднего.
Параметры:
N
— количество единиц времениединица_времени
— h (час), d (сутки), w (неделя), M (месяц) или y (год), должно быть меньше или равно сезонуПримеры:
baselinewma(/узел_сети/ключ,1h:now/h,"d",3) #расчёт базового уровня за последний полный час в течение 3-дневного периода, который закончился вчера. Если «now» (сейчас) - это 13:30 понедельника, то будут проанализированы данные по часу 12:00-12:59 за пятницу, субботу и воскресенье
baselinewma(/узел_сети/ключ,2h:now/h,"d",3) #расчёт базового уровня на основе последних двух часов в течение 3-дневного периода, который закончился вчера. Если «now» (сейчас) - это 13:30 понедельника, то будут проанализированы данные для интервала 11:00-12:59 за пятницу, субботу и воскресенье
baselinewma(/узел_сети/ключ,1d:now/d,"M",4) #расчёт базового уровня на основе того же числа месяца, что и «вчера», за период 4 месяца, предшествующих предыдущему полному месяцу. Если нужной даты не существует, берётся последний день месяца. Если сегодня 1 сентября, то будут проанализированы данные за 31 июля, 30 июня, 31 мая и 30 апреля
Среднее из значений динамики изменений за определённый период времени.
Параметры:
Примеры:
trendavg(/узел_сети/ключ,1h:now/h) #среднее за предыдущий час (например, 12:00-13:00)
trendavg(/узел_сети/ключ,1h:now/h-1h) #среднее за час два часа назад (11:00-12:00)
trendavg(/узел_сети/ключ,1h:now/h-2h) #среднее за час три часа назад (10:00-11:00)
trendavg(/узел_сети/ключ,1M:now/M-1y) #среднее за предыдущий месяц год назад
Количество успешно извлечённых значений истории, используемых для расчёта значений динамики изменений за определённый период времени.
Параметры:
Примеры:
trendcount(/узел_сети/ключ,1h:now/h) #количество за предыдущий час (например, 12:00-13:00)
trendcount(/узел_сети/ключ,1h:now/h-1h) #количество за час два часа назад (11:00-12:00)
trendcount(/узел_сети/ключ,1h:now/h-2h) #количество за час три часа назад (10:00-11:00)
trendcount(/узел_сети/ключ,1M:now/M-1y) #количество за предыдущий месяц год назад
Максимальное значение из динамики изменений за определённый период времени.
Параметры:
Примеры:
trendmax(/узел_сети/ключ,1h:now/h) #максимум за предыдущий час (например, 12:00-13:00)
trendmax(/узел_сети/ключ,1h:now/h) - trendmin(/узел_сети/ключ,1h:now/h) → расчёт разницы между максимальным и минимальным значениями (дельта тренда) за предыдущий час (12:00-13:00)
trendmax(/узел_сети/ключ,1h:now/h-1h) #максимум за час два часа назад (11:00-12:00)
trendmax(/узел_сети/ключ,1h:now/h-2h) #максимум за час три часа назад (10:00-11:00)
trendmax(/узел_сети/ключ,1M:now/M-1y) #максимум за предыдущий месяц год назад
Минимальное значение из динамики изменений за определённый период времени.
Параметры:
Примеры:
trendmin(/узел_сети/ключ,1h:now/h) #минимум за предыдущий час (например, 12:00-13:00)
trendmax(/узел_сети/ключ,1h:now/h) - trendmin(/узел_сети/ключ,1h:now/h) → расчёт разницы между максимальным и минимальным значениями (дельта тренда) за предыдущий час (12:00-13:00)
trendmin(/узел_сети/ключ,1h:now/h-1h) #минимум за час два часа назад (11:00-12:00)
trendmin(/узел_сети/ключ,1h:now/h-2h) #минимум за час три часа назад (10:00-11:00)
trendmin(/узел_сети/ключ,1M:now/M-1y) #минимум за предыдущий месяц год назад
Возвращает частоту аномалий за период обнаружения — десятичное значение от 0 до 1, которое определяется как ((количество аномальных значений)/(общее количество значений))
.
Параметры:
N
— количество единиц времениединица_времени
— h (час), d (сутки), w (неделя), M (месяц) или y (год).N
— количество единиц времениединица_времени
— h (час), d (сутки), w (неделя).N
— количество единиц времениединица_времени
— h (час), d (сутки), w (неделя)Примеры:
trendstl(/узел_сети/ключ,100h:now/h,10h,2h) #анализировать последние 100 часов данных динамики изменений, найти частоту аномалий за последние 10 часов этого периода, ожидая, что будет периодичность 2 часа, значения компонентов остатка за период оценки рассматриваются как аномалии, если они достигают значения 3 отклонений по алгоритму MAD (среднее абсолютное отклонение) для этого компонента остатков
trendstl(/узел_сети/ключ,100h:now/h-10h,100h,2h,2.1,"mad") #анализировать период 100 часов данных динамики изменений, до момента 10 часов назад, найти частоту аномалий за весь период при ожидании периодичности в 2 часа, значения компонентов остатка за период оценки рассматриваются как аномалии, если они достигают значения 2,1 отклонения по алгоритму MAD для этого компонента остатков
trendstl(/узел_сети/ключ,100d:now/d-1d,10d,1d,4,,10) #анализировать период 100 дней данных динамики изменений до момента сутки назад, найти частоту аномалий за последние 10 дней этого периода, при ожидании, что периодичность составит 1 сутки, значения компонентов остатка за период оценки рассматриваются как аномалии, если они достигают значения 4 отклонений по алгоритму MAD для этого компонента остатков, переопределяя протяжённость окна LOESS по умолчанию для извлечения сезонов «10 * количество записей в периоде оценки + 1» на протяжённость 10 лагов
trendstl(/узел_сети/ключ,1M:now/M-1y,1d,2h,,"stddevsamp") #анализировать предыдущий месяц год назад, найти частоту аномалий за последний день этого периода, при ожидаемой периодичности в 2 часа, значения компонентов остатка за период оценки рассматриваются как аномалии, если они достигают значения 3 отклонений по алгоритму sample standard deviation (среднеквадратическое отклонение по выборке) для этого компонента остатков
Сумма значений динамики изменений за определённый период времени.
Параметры:
Примеры:
trendsum(/узел_сети/ключ,1h:now/h) #сумма за предыдущий час (например, 12:00-13:00)
trendsum(/узел_сети/ключ,1h:now/h-1h) #сумма за час два часа назад (11:00-12:00)
trendsum(/узел_сети/ключ,1h:now/h-2h) #сумма за час три часа назад (10:00-11:00)
trendsum(/узел_сети/ключ,1M:now/M-1y) #сумма за предыдущий месяц год назад