8 个预测函数

所有列出的功能均支持在以下版本中:

此处列出的功能没有附加信息。点击功能以查看详细内容。

功能 描述
forecast 监控项的未来值、最大值、最小值、差值或平均值。
timeleft 监控项达到指定阈值所需的时间(以秒为单位)。
通用参数
  • /host/key 是引用 主机 监控项 历史记录的函数的常见必选第一个参数
  • (sec|#num)<:time shift> 是引用 主机 监控项 历史记录的函数的常见第二个参数,其中:
    • sec - 最大 评估周期 秒数 (可以使用时间 suffixes), 或
    • #num - 最近收集值的最大 评估周期 数量(如果前面带有井号)
    • 时间偏移(可选)允许将评估点向历史时间移动。请参阅 时间偏移 了解如何指定时间偏移。

函数详情

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

  • 函数参数之间用逗号分隔
  • 可选的函数参数(或参数部分)通过 < > 表示
  • 特定函数的参数会在每个函数中分别描述
  • /host/key(sec|#num)<:time shift> 参数永远不要用引号括起
forecast(/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>)

未来值、最大值、最小值、差值或平均值的监控项。
支持的值类型:floatinteger

参数:

  • 参见通用参数
  • time - 预测时间范围,单位为秒(可以使用时间后缀);支持负值;
  • fit(可选;必须用双引号括起)- 用于拟合历史数据的函数。支持的拟合方式:
    linear - 线性函数(默认)
    polynomialN - N次多项式(1 <= N <= 6)
    exponential - 指数函数
    logarithmic - 对数函数
    power - 幂函数
    注意:polynomial1 等同于 linear
  • mode(可选;必须用双引号括起)- 所需的输出模式。支持的模式:
    value - 值(默认)
    max - 最大值
    min - 最小值
    delta - max - min
    avg - 平均值
    注意:value 估计的是 now + time 时刻的监控项值;maxmindeltaavg 则研究 nownow + time 区间内的监控项值估计。

注释:

  • 如果返回值大于 1.7976931348623158E+308 或小于 -1.7976931348623158E+308,则返回值将被截断为 1.7976931348623158E+308 或 -1.7976931348623158E+308;
  • 仅在表达式中误用时(错误的监控项类型、无效参数)变为不支持,否则在出错时返回 -1;
  • 另请参阅有关predictive trigger functions的附加信息。

示例:

forecast(/主机/key,#10,1h) #基于最后10个值,预测一小时后的监控项值
       forecast(/主机/key,1h,30m) #基于最近一小时的数据,预测30分钟后监控项的值
       forecast(/主机/key,1h:now-1d,12h) #基于一天前的一小时数据,预测12小时后的监控项值
       forecast(/主机/key,1h,10m,"exponential") #基于最近一小时的数据和指数函数,预测10分钟后监控项的值
       forecast(/主机/key,1h,2h,"polynomial3","max") #基于最近一小时的数据和三次(三次多项式),预测未来两小时内监控项可能达到的最大值
       forecast(/主机/key,#2,-20m) #基于最近两个值,估计20分钟前的监控项值(这可能比使用last()更精确,特别是当监控项更新频率较低时,例如每小时一次)
timeleft(/host/key,(sec|#num)<:time shift>,threshold,<fit>)

触发器 监控项 达到指定阈值所需的时间(以秒为单位)。 支持的值类型:floatinteger

参数:

评论:

  • 如果要返回的值大于 1.7976931348623158E+308,则返回值会被截断为 1.7976931348623158E+308;
  • 如果无法达到阈值,则返回 1.7976931348623158E+308;
  • 仅在表达式中被错误使用时(错误的 监控项 类型,无效参数)才会变为不支持;否则在发生错误时返回 -1;
  • 参见有关 predictive trigger functions 的附加信息。

示例:

timeleft(/主机/key,#10,0) #基于最后的 10 值,监控项 值到达零的时间
       timeleft(/主机/key,1h,100) #基于最近一小时的数据,监控项值达到100所需的剩余时间
       timeleft(/主机/key,1h:now-1d,100) #基于一天前一小时,监控项值达到100之前的剩余时间
       timeleft(/主机/key,1h,200,"polynomial2") #基于最近一小时的数据并假设监控项的行为类似于二次(二阶)多项式,监控项值达到200之前的剩余时间

请参见 all supported functions