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