在 APIkit 中也有 API 异常监控功能,针对异常可以发送告警。
本文将分两部分介绍告警设置:全局告警设置以及项目告警设置
若需要对所有监控项目设置全局的告警通知,可以在API监控的项目列表页面,选择 异常告警页面 :
在这里设置的告警信息,对所有项目有效。
在告警邮箱内设置相应人员的邮箱:
注意事项:
发送告警邮件需要消耗告警资源包。API告警、API恢复正常,均会产生告警邮件。
告警邮件以项目为单位,同一时刻内,监控到异常的API和场景,会发送一封邮件。
API和场景的新建、修改、开启监控操作会立即发送监控,结果异常会产生首次告警:
(1)监控频率<五分钟的,邮件间隔时间五分钟一次;
(2)监控频率≥五分钟的,按照监控频率发送;
场景和API首次告警后,后续的所有告警会累计到5分钟再整合发送一封邮件。
告警邮件示例:
在告警回调 API 内填入相应的 Webhook 地址:
注意事项:
回调 API 最多支持设置三个,API 推送消息次数每日无上限。
回调API能够自定义接收的告警信息的数据类型,类型包括:JSON、Query参数、FormData、XML。
API和场景的新建、修改、开启监控操作会立即发送监控,结果异常会产生首次告警:
(1)监控频率<五分钟的,邮件间隔时间五分钟一次;
(2)监控频率≥五分钟的,按照监控频率发送。
Webhook 的 JSON 返回示例:
(1)API 监控
{
"space_id": 708, //工作空间ID
"space_name": "新版本测试", //工作空间名称
"hook_request_time": "2020-09-22 14:47:35", //请求时间:Y-m-d H:i:s
"hook_request_timestamp": 1600757255, //请求时间戳
"hook_product": "api_monitor", //产品,API网络监控
"hook_event": "alert", //操作,值可能性有:alert、recover;其中 alert:告警信息;recover:恢复正常信息
"hook_operation": "api_alert", //事件,值可能性有:api_alert、api_recover;其中 api_alert:告警事件;api_recovet:恢复正常事件
"content": {
"project_id": 1399, //出现告警的项目ID
"project_name": "监控测试", //出现告警的项目名称
"apis": [ //告警的API列表
{
"api_id": 23308, //异常APIID
"api_name": "百度", //异常API名称
"api_url": "http://www.baidu.com/", //异常API地址
"exception_count": 1, //异常次数
"node_name": "上海", //出现异常的地区
"report_desc": "请求超时", //异常原因
"status_code": 0, //http状态码
"response_time": "74ms", //响应时间
"time": "2020-09-22 14:47:01" //异常时间
}
],
"other_msg": [
"Eolinker" //微信UserId
]
}
}
(2)流程监控
{
"space_id": 708, //工作空间ID
"space_name": "新版本测试", //工作空间名称
"hook_request_time": "2020-09-23 16:54:55", //请求时间:Y-m-d H:i:s
"hook_request_timestamp": 1600851295, //请求时间戳
"hook_product": "api_monitor", //产品,API网络监控
"hook_event": "alert", //操作,值可能性有:alert、recover;其中 alert:告警信息;recover:恢复正常信息
"hook_operation": "scene_alert", //事件,值可能性有:scene_alert、scene_recover;其中 scene_alert:告警事件;scene_recovet:恢复正常事件
"content": {
"project_id": 1399, //出现告警的项目ID
"project_name": "监控测试", //出现告警的项目名称
"scenes": [
{
"scene_id": 347, //异常流程ID
"scene_name": "测试流程", //异常流程名称
"exception_count": 11, //异常次数
"node_name": "中国-广东省-广州市", //节点名称
"time": "2020-09-23 16:44:52" //异常时间
}
],
"other_msg": [
"Eolinker" //微信UserId
]
}
}
可以设置是否跟随请求的重定向(HTTP 状态码为301、302)
可以设置是否校验SSL证书
可以设置是否发送Eolinker Token头部,Eolinker Token用于标识请求发送自Eolinker平台
可以设置是否发送no-cache头部,用于更新缓存数据
当 API 持续异常时,可以设置 API 的告警频率,比如当设置告警频率为5分钟时,会在 API 出现告警时的第0分钟(立刻)、 第5分钟、 第10分钟…等时间点发送告警 信息,直到 API 状态恢复正常。
为避免网络抖动的影响,您可以设置当同一个 API 连续超时多次时才产生一次告警,减少误报。
当 API 产生告警时,可以直接通知到具体的项目人员,点击 添加通知人员 :
选择相应的人员账号,即可通知该成员:
注意:成员需要先在个人设置处设置好邮箱账号
若成员没有在个人帐号内设置邮箱,或需要通知到项目外的人员时,可以直接在 额外告警邮箱 处设置告警邮箱:
系统会将异常API通过邮件的方式通知到相应的运维人员。
告警邮件示例:
在告警回调 API 内填入相应的 Webhook 地址:
注意事项:
回调 API 最多支持设置三个,API 推送消息次数每日无上限。
回调API能够自定义接收的告警信息的数据类型,类型包括:JSON、Query参数、FormData、XML。
API和场景的新建、修改、开启监控操作会立即发送监控,结果异常会产生首次告警:
(1)监控频率<五分钟的,邮件间隔时间五分钟一次;
(2)监控频率≥五分钟的,按照监控频率发送。
Webhook 的 JSON 返回示例:
(1)API 监控
{
"space_id": 708, //工作空间ID
"space_name": "新版本测试", //工作空间名称
"hook_request_time": "2020-09-22 14:47:35", //请求时间:Y-m-d H:i:s
"hook_request_timestamp": 1600757255, //请求时间戳
"hook_product": "api_monitor", //产品,API网络监控
"hook_event": "alert", //操作,值可能性有:alert、recover;其中 alert:告警信息;recover:恢复正常信息
"hook_operation": "api_alert", //事件,值可能性有:api_alert、api_recover;其中 api_alert:告警事件;api_recovet:恢复正常事件
"content": {
"project_id": 1399, //出现告警的项目ID
"project_name": "监控测试", //出现告警的项目名称
"apis": [ //告警的API列表
{
"api_id": 23308, //异常APIID
"api_name": "百度", //异常API名称
"api_url": "http://www.baidu.com/", //异常API地址
"exception_count": 1, //异常次数
"node_name": "上海", //出现异常的地区
"report_desc": "请求超时", //异常原因
"status_code": 0, //http状态码
"response_time": "74ms", //响应时间
"time": "2020-09-22 14:47:01" //异常时间
}
],
"other_msg": [
"Eolinker" //微信UserId
]
}
}
(2)流程监控
{
"space_id": 708, //工作空间ID
"space_name": "新版本测试", //工作空间名称
"hook_request_time": "2020-09-23 16:54:55", //请求时间:Y-m-d H:i:s
"hook_request_timestamp": 1600851295, //请求时间戳
"hook_product": "api_monitor", //产品,API网络监控
"hook_event": "alert", //操作,值可能性有:alert、recover;其中 alert:告警信息;recover:恢复正常信息
"hook_operation": "scene_alert", //事件,值可能性有:scene_alert、scene_recover;其中 scene_alert:告警事件;scene_recovet:恢复正常事件
"content": {
"project_id": 1399, //出现告警的项目ID
"project_name": "监控测试", //出现告警的项目名称
"scenes": [
{
"scene_id": 347, //异常流程ID
"scene_name": "测试流程", //异常流程名称
"exception_count": 11, //异常次数
"node_name": "中国-广东省-广州市", //节点名称
"time": "2020-09-23 16:44:52" //异常时间
}
],
"other_msg": [
"Eolinker" //微信UserId
]
}
}