Прогностические функции

Все функции, перечисленные здесь, поддерживаются в:

Функции перечислены без дополнительной информации. Щелкните функцию, чтобы просмотреть полные сведения.

Function Description
forecast Будущее значение, max, min, delta или avg элемента данных.
timeleft Время в секундах, необходимое элементу данных для достижения указанного порога.
Общие параметры
  • /host/key — общий обязательный первый параметр для функций, обращающихся к истории элемента данных узла сети
  • (sec|#num)<:time shift> — общий второй параметр для функций, обращающихся к истории элемента данных узла сети, где:
    • sec — максимальный период оценки в секундах (можно использовать суффиксы времени), или
    • #num — максимальный диапазон оценки по последним собранным значениям (если перед ним указан символ решетки)
    • time shift (необязательно) позволяет сместить точку оценки назад во времени. См. подробности о задании time shift.

Подробности функций

Некоторые общие замечания о параметрах функций:

  • Параметры функций разделяются запятой
  • Необязательные параметры функций (или части параметров) обозначаются < >
  • Параметры, специфичные для функций, описаны с каждой функцией
  • Параметры /host/key и (sec|#num)<:time shift> никогда не должны заключаться в кавычки
forecast(/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>)

Будущее значение, максимальное, минимальное значение, дельта или среднее значение элемента данных.
Поддерживаемые типы значений: Float, Integer.

Параметры:

  • См. общие параметры;
  • time - горизонт прогнозирования в секундах (например, 1, 60) (можно использовать суффиксы времени (например, 30s, 1m)); поддерживаются отрицательные значения;
  • 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(/узел_сети/ключ,(сек|#число)<:сдвиг_времени>,порог,<аппроксимация>)

Время в секундах, которое требуется для достижения элементом данных указанного порогового значения.
Поддерживаемые типы значений: Float, Integer.

Параметры:

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

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

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