8 个预测函数

此处列出的所有函数均支持以下场景:

关于函数参数的通用说明:

  • 函数参数通过逗号分隔
  • 可选函数参数(或参数部分)通过< >标识
  • 函数特定参数将在各函数中单独说明
  • /host/key(sec|#num)<:time shift>参数禁止使用引号包裹
通用参数
  • /host/key 是引用主机监控项历史数据的函数中常见的必需第一个参数
  • (sec|#num)<:time shift> 是引用主机监控项历史数据的函数中常见的第二个参数,其中:
    • - 最大评估周期(以秒为单位,可使用suffixes时间单位),或
    • #数量 - 最新采集值中的最大评估周期(如果前面带有井号标记)
    • 时间偏移(可选)允许将评估点回溯到过去时间。有关指定时间偏移的详细信息,请参阅时间偏移

预测函数

函数
Description 函数特定参数 说明
forecast (/host/key,(sec\ #num)<:时间偏移>,时间,<拟合方式>,<模式>)
Future value, max, min, delta or avg of the item. 参见通用参数

时间 - 预测时间范围(单位:秒,可使用时间后缀);支持负值

拟合方式(可选;必须使用双引号) - 用于拟合历史数据的函数

支持的fits
linear - 线性函数
polynomialN - N次多项式(1 ≤ N ≤ 6)
exponential - 指数函数
logarithmic - 对数函数
power - 幂函数

注意:
linear为默认值,polynomial1等同于linear

模式(可选;必须使用双引号) - 输出要求

支持的modes
value - 数值(默认)
max - 最大值
min - 最小值
delta - 极差(max-min
avg - 平均值

注意:
value估算now + time时刻的监控项值
maxmindeltaavg分析nownow + time区间内的监控项估算值
支持值类型:float、整型

若返回值大于1.7976931348623157E+308或小于-1.7976931348623157E+308,将分别截断为1.7976931348623157E+308或-1.7976931348623157E+308

仅在表达式误用(错误的监控项类型、无效参数)时变为不支持状态,否则出错时返回-1

示例:
=> forecast(/主机/key,#10,1h) → 基于最近10个值预测1小时后的监控项值
=> forecast(/主机/key,1h,30m) → 基于最近1小时数据预测30分钟后的监控项值
=> forecast(/主机/key,1h:now-1d,12h) → 基于1天前的1小时数据预测12小时后的监控项值
=> forecast(/主机/key,1h,10m,"exponential") → 基于最近1小时数据和指数函数预测10分钟后的监控项值
=> forecast(/主机/key,1h,2h,"polynomial3","max") → 基于最近1小时数据和三次多项式预测未来2小时内监控项可能达到的最大值
=> forecast(/主机/key,#2,-20m) → 基于最近两个值估算20分钟前的监控项值(相比last()函数更精确,尤其当监控项更新频率较低时,例如每小时一次)

另见predictive trigger functions的附加信息
timeleft (/host/key,(sec\ #num)<:时间偏移>,阈值,<拟合方式>)
Time in seconds needed for an item to reach a specified threshold. 参见通用参数

阈值 - 要达到的值(可使用unit suffixes

拟合方式(可选) - 参见forecast()函数
支持值类型:float、整型

若返回值大于1.7976931348623157E+308,将截断为1.7976931348623157E+308

当阈值无法达到时返回1.7976931348623157E+308

仅在表达式误用(错误的监控项类型、无效参数)时变为不支持状态,否则出错时返回-1

示例:
=> timeleft(/主机/key,#10,0) → 基于最近10个值预测监控项达到零值所需时间
=> timeleft(/主机/key,1h,100) → 基于最近1小时数据预测监控项达到100所需时间
=> timeleft(/主机/key,1h:now-1d,100) → 基于1天前的1小时数据预测监控项达到100所需时间
=> timeleft(/主机/key,1h,200,"polynomial2") → 基于最近1小时数据和二次多项式假设,预测监控项达到200所需时间
另见predictive trigger functions的附加信息