模板参数填写说明
更新时间:2023-10-09
模板参数除了可以填入固定值,您也可以按照go template格式从消息体中提取字段:
针对指标报警触发的报警事件运维,不同类型云产品消息体示例如下:
// 云服务器BCC、裸金属BBC
{
"metric": {
"shortInstanceId": "i-fYuDvBsy", // 实例ID
"resourceType": "Instance", // 实例类型
"os": "linux", // 虚机系统类型
"name": "CPUUsagePercent", // 监控项名称
"value": 80.355, // 监控项值
"tagKey": "tagValue" // 绑定标签
}
}
// 弹性公网IP
{
"metric": {
"resourceId": "ip-486c6c40", // 实例ID
"resourceType": "Instance", // 实例类型
"EipValue": "180.76.149.149", // EIP地址
"name": "InPacketLossPercent", // 监控项名称
"value": 53.846, // 监控项值
"tagKey": "tagValue" // 绑定标签
}
}
// NAT网关
{
"metric": {
"resourceId": "nat-fjtdv32tpttk", // 实例ID
"resourceType": "Instance", // 实例类型
"name": "InBandwith", // 监控项名称
"value": 21011, // 监控项值
"tagKey": "tagValue" // 绑定标签
}
}
// 弹性网卡ENI
{
"metric": {
"resourceId": "eni-stb22yf41gu4", // 实例ID
"resourceType": "Instance", // 实例类型
"name": "VNicInBPS", // 监控项名称
"value": 12342, // 监控项值
"tagKey": "tagValue" // 绑定标签
}
}
// 云磁盘CDS
{
"metric": {
"resourceId": "v-YQBOMbD1", // 实例ID
"resourceType": "Instance", // 实例类型
"name": "ReadBytes", // 监控项名称
"value": 34532, // 监控项值
"tagKey": "tagValue" // 绑定标签
}
}
以从消息体(metric)中提取BCC实例id为例,参数值应该使用表达式 {{ .metric.shortInstanceId }},针对且规则的报警策略,消息体中可能包含多份监控数据信息,以云服务器BCC为例,消息体格式如下:
{
"metrics": [
{
"shortInstanceId": "i-fYuDvBsy", // 实例ID
"resourceType": "Instance", // 实例类型
"os": "linux", // 虚机系统类型
"name": "CPUUsagePercent", // 监控项名称
"value": 80.355, // 监控项值
"tagKey": "tagValue" // 虚机绑定标签
},
{
"shortInstanceId": "i-fYuDvBsy", // 实例ID
"resourceType": "Instance", // 实例类型
"os": "linux", // 虚机系统类型
"name": "CpuSystemPercent", // 监控项名称
"value": 80.355, // 监控项值
"tagKey": "tagValue" // 虚机绑定标签
}
]
}
此时如果从消息体中提取第一份监控数据中的BCC实例id,应该使用表达式 {{ (index .metrics 0).shortInstanceId }},如果从消息体中提取第二份监控数据中的监控项名称,应该使用表达式 {{ (index .metrics 1).name }}