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 - 以秒为单位的预测时间范围(例如
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(/host/key,(sec|#num)<:time shift>,threshold,<fit>)
触发器 监控项 达到指定阈值所需的时间(以秒为单位)。 支持的值类型:float、integer。
参数:
- 参见 常见参数;
- 阈值 - 要达到的值(可以使用 unit suffixes);
- fit(可选;必须用双引号括起)- 参见 forecast()。
评论:
- 如果要返回的值大于 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之前的剩余时间