报警文本模板(Text Template)
在报警器触发或订阅事件发生时,用户指定的SNS主题会收到相应的报警信息或事件信息,用户可以自定义报警文本模板对信息进行格式化。
默认的邮件报警文本模板如下:
报警器 ${ALARM_NAME} 状态改变成 ${ALARM_CURRENT_STATUS}
报警器详情:
UUID: ${ALARM_UUID}
资源名字空间: ${ALARM_NAMESPACE}
触发条件: ${ALARM_METRIC} ${ALARM_COMPARISON_OPERATOR} ${ALARM_THRESHOLD}
触发条件持续时间: ${ALARM_DURATION} seconds
先前状态: ${ALARM_PREVIOUS_STATUS}
当前值: ${ALARM_CURRENT_VALUE}
标签: ${ALARM_LABELS.join(",")}
如果用户没有设置报警文本模板,收到的报警邮件内容跟上面类似。文本中对应的变量会被替换成相应的报警器内容,如${ALARM_NAME}可能会变成Web服务器CPU。用户可以使用这些变量自定义自己的报警文本模板。
目前邮件和钉钉都可以自定义报警模板,HTTP使用JSON格式不能自定义。HTTP报警文本实例如下:
{
"ALARM_UUID": "27f8791237ed45b4815be744a2b2fd8a",
"ALARM_NAMESPACE": "ZStack/VM",
"ALARM_LABELS": ["VMUuidEqual26643ce4b5604b128e3f7bb3d61ef779"],
"ALARM_PREVIOUS_STATUS": "InsufficientData",
"ALARM_THRESHOLD": 10.0,
"ALARM_METRIC": "CPUUsedUtilization",
"ALARM_DURATION": 1,
"ALARM_CURRENT_VALUE": 101.0,
"ALARM_COMPARISON_OPERATOR": "GreaterThan",
"ALARM_CURRENT_STATUS": "Alarm",
"ALARM_NAME": "alarm"
}
模板变量
ZWatch对于报警器和事件订阅了一组模板变量供报警模板引用,在生成报警文本时,ZWatch使用报警器或事件相应的值替换这些变量。报警文本模板使用的语法基于Groovy GString
Template。大多数用户只需要使用${}
这种最基本的方式引用变量值即可。
报警器和事件订阅支持不同的变量:
- 报警器变量
- ALARM_NAME:报警器名称
- ALARM_UUID:报警器UUID
- ALARMCOMPARISONOPERATOR: 报警器操作符
- ALARM_METRIC:报警器metric名称
- ALARM_NAMESPACE:报警器namespace名称
- ALARM_THRESHOLD:报警器阈值
- ALARMLABELS:报警器标签数组,用户可以使用*${ALARMLABELS.join(",")}*将标签组成一个以逗号分隔的字符串
- ALARM_DURATION:metric值超过阈值持续时间
- ALARMPREVIOUSSTATUS:报警器触发前的报警状态
- ALARMCURRENTSTATUS: 报警器当前状态
- ALARMCURRENTVALUE:报警器触发时的metric值
- 订阅事件变量
- EVENT_NAMESPACE:事件namespace名称
- EVENT_NAME:事件名称
- EVENTLABELS:事件标签数组,用户可以使用*${EVENTLABELS.join(",")}*将标签组成一个以逗号分隔的字符串
- EVENTEMERGENCYLEVEL:事件紧急程度
- EVENTRESOURCEID:发生事件的资源ID
- EVENTRESOURCENAME:发生事件的资源的名称
- EVENT_ERROR:如果事件跟一个错误相关,例如引发物理机失联事件的错误(如网络错误),该字段包含错误的字符串表述。如果没有错误,该字段为“”空字符串
- EVENT_TIME:事件发生的时间,字符串
- PARAMEVENTSUBSCRIPTION_UUID:订阅事件的UUID