8 预测函数
此处列出的所有函数均支持用于:
以下仅列出函数,不包含附加信息。单击函数可查看完整详细信息。
通用参数
/host/key是引用主机监控项历史记录的函数中常见的必填第一个参数(sec|#num)<:time shift>是引用主机监控项历史记录的函数中常见的第二个参数,其中:
函数详情
有关函数参数的一些一般说明:
- 函数参数以逗号分隔
- 可选函数参数(或参数部分)以
<>表示 - 每个函数都会说明其特定参数
/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 - 最小值
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;
- 另请参见predictive trigger functions中的附加信息。
示例:
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") #根据最近一小时的数据和三次(3 阶)多项式预测监控项在接下来两小时内可达到的最大值
forecast(/host/key,#2,-20m) #根据最近两个值估算 20 分钟前的监控项值(这可能比使用 last() 更精确,尤其是在监控项更新频率较低时,例如每小时一次)
timeleft(/host/key,(sec|#num)<:time shift>,threshold,<fit>)
监控项达到指定阈值所需的时间(以秒为单位)。
支持的值类型:Float、Integer。
参数:
- 参见通用参数;
- threshold - 要达到的值(可使用单位后缀);
- fit(可选;必须用双引号括起来) - 参见 forecast()。
说明:
- 如果返回值大于 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") #基于最近一小时的数据,并假设监控项表现为二次(2 阶)多项式,直到监控项值达到 200 所需的时间
请参阅所有支持的函数。