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 — минимум
    deltamax-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.

Параметры:

Комментарии:

  • Если возвращаемое значение больше 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 на основе данных за последний час и предположения, что элемент данных ведет себя как квадратичный полином (второй степени)

См. все поддерживаемые функции.