此处列出的所有函数均支持以下场景:
关于函数参数的通用说明:
<
>
标识/host/key
和(sec|#num)<:time shift>
参数禁止使用引号包裹/host/key
是引用主机监控项历史数据的函数中常见的必需第一个参数(sec|#num)<:time shift>
是引用主机监控项历史数据的函数中常见的第二个参数,其中:
函数 | ||
---|---|---|
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 时刻的监控项值max、min、delta和avg分析 now 到now + 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的附加信息 |