创建触发器(trigger)
- “监控项”仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,“触发器”正是用于为监控项所收集的数据定义阀值
- 每一个触发器仅能关联至一个监控项,但可以为一个监控项同时使用多个触发器
(事实上,为一个监控项定义多个具有不同阀值的触发器,可以实现不同级别的报警功能)
- 一个触发器由一个表达式构成,它定义了监控项所采取的数据的一个阀值
- 一旦某次采集的数据超出了此触发器定义的阀值,触发器状态会转换为”problem”;而当采集的数据再次回归至合理范围内时,其状态将重新返回到”OK”
Recovery
触发器表达式
- 触发器表达式高度灵活,可以以之创建出非常复杂的测试条件
- 基本的触发器表达式格式如下所示
{<server>:<key>.<function>(<parameter>)}<operator><constant>
server:主机名
key:主机上关系的相应监控项的key
function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采取的数据,当前时间及其它因素进行:
目前,触发器所支持的函数有avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等
parameter:函数参数:大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用”#”作为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;
此外,avg、count、last、min和max还支持使用第二个参数,用于完成时间限定:例如,max(1h,7d) 一周之前的1个小时之内的最大值;