8 Прогнозирующие функции
Все перечисленные здесь функции поддерживаются в:
Функции перечислены без дополнительной информации. Нажмите на функцию, чтобы увидеть полные сведения.
| Функция | Описание |
|---|---|
| forecast | Будущее значение, максимум, минимум, дельта или среднее элемента данных. |
| timeleft | Время в секундах, необходимое элементу данных для достижения указанного порога. |
Общие параметры
/host/key— это общий обязательный первый параметр для функций, ссылающихся на историю элемента данных узла сети(sec|#num)<:time shift>— это общий второй параметр для функций, ссылающихся на историю элемента данных узла сети, где:- sec — максимальный период вычисления в секундах (можно использовать суффиксы времени), или
- #num — максимальный диапазон вычисления в последних собранных значениях (если перед ним стоит знак решётки)
- time shift (необязательно) позволяет сдвинуть точку вычисления назад во времени. Подробнее о задании time shift см. в разделе more details.
Подробности функций
Некоторые общие замечания о параметрах функций:
- Параметры функций разделяются запятой
- Необязательные параметры функций (или части параметров) обозначаются
<> - Специфические для функции параметры описаны для каждой функции
- Параметры
/host/keyи(sec|#num)<:time shift>никогда не должны заключаться в кавычки
forecast(/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>)
Будущее значение, максимум, минимум, дельта или среднее элемента данных.
Поддерживаемые типы значений: Float, Integer.
Параметры:
- См. общие параметры;
- time — горизонт прогнозирования в секундах (можно использовать суффиксы времени); поддерживаются отрицательные значения;
- fit (необязательно; должно быть заключено в двойные кавычки) — функция, используемая для аппроксимации исторических данных. Поддерживаемые функции:
linear — линейная функция (по умолчанию)
polynomialN — полином степени N (1 <= N <= 6)
exponential — экспоненциальная функция
logarithmic — логарифмическая функция
power — степенная функция
Обратите внимание, что polynomial1 эквивалентен linear; - mode (необязательно; должно быть заключено в двойные кавычки) — требуемый результат. Поддерживаемые режимы:
value — значение (по умолчанию)
max — максимум
min — минимум
delta — max-min
avg — среднее
Обратите внимание, что value оценивает значение элемента данных в моментnow+time; max, min, delta и avg оценивают значение элемента данных на интервале междуnowиnow+time.
Комментарии:
- Если возвращаемое значение больше 1.7976931348623158E+308 или меньше -1.7976931348623158E+308, возвращаемое значение обрезается до 1.7976931348623158E+308 или -1.7976931348623158E+308 соответственно;
- Становится неподдерживаемой только при неправильном использовании в выражении (неверный тип элемента данных, недопустимые параметры), в противном случае в случае ошибок возвращает -1;
- См. также дополнительную информацию о предиктивных функциях триггеров.
Примеры:
forecast(/host/key,#10,1h) #прогноз значения элемента данных через один час на основе последних 10 значений
forecast(/host/key,1h,30m) #прогноз значения элемента данных через 30 минут на основе данных за последний час
forecast(/host/key,1h:now-1d,12h) #прогноз значения элемента данных через 12 часов на основе данных за один час сутки назад
forecast(/host/key,1h,10m,"exponential") #прогноз значения элемента данных через 10 минут на основе данных за последний час и экспоненциальной функции
forecast(/host/key,1h,2h,"polynomial3","max") #прогноз максимального значения, которого элемент данных может достичь в следующие два часа, на основе данных за последний час и кубического полинома (третьей степени)
forecast(/host/key,#2,-20m) #оценка значения элемента данных 20 минут назад на основе последних двух значений (это может быть точнее, чем использование last(), особенно если элемент данных обновляется редко, например, раз в час)
timeleft(/host/key,(sec|#num)<:сдвиг времени>,threshold,<fit>)
Время в секундах, необходимое элементу данных для достижения указанного порогового значения.
Поддерживаемые типы значений: Float, Integer.
Параметры:
- См. общие параметры;
- threshold — значение, которое необходимо достичь (можно использовать суффиксы единиц);
- fit (необязательно; должно быть заключено в двойные кавычки) — см. forecast().
Комментарии:
- Если возвращаемое значение больше 1.7976931348623158E+308, оно усекается до 1.7976931348623158E+308;
- Возвращает 1.7976931348623158E+308, если пороговое значение не может быть достигнуто;
- Становится неподдерживаемой только при неправильном использовании в выражении (неверный тип элемента данных, недопустимые параметры), в противном случае при ошибках возвращает -1;
- См. также дополнительную информацию о функциях прогнозирующих триггеров.
Примеры:
timeleft(/host/key,#10,0) #время до достижения значением элемента данных нуля на основе последних 10 значений
timeleft(/host/key,1h,100) #время до достижения значением элемента данных 100 на основе данных за последний час
timeleft(/host/key,1h:now-1d,100) #время до достижения значением элемента данных 100 на основе данных за один час сутки назад
timeleft(/host/key,1h,200,"polynomial2") #время до достижения значением элемента данных 200 на основе данных за последний час и предположения, что элемент данных ведет себя как квадратичный полином (второй степени)