Appearance
概述
运维预警中心主要是针对业务系统中定时执行的任务(如:数据同步等)、服务等进行监控,确保定时任务是否正常执行,服务是否运行正常,当触发预警条件时,运维预警中心会根据配置预警的对象进行预警。
背景
业务系统本身有比较多的定时任务来执行处理业务,再加上目前采用的微服务架构使系统要运行的服务增多,另外与第三方系统交互非常频繁,在如此多非人机交互的场景下,靠运维人员每天人工监控是否正常的话,工作难道、工作量都非常大,很难保证及时发现异常情况,为了保证业务系统稳健运行,提升客户的良好体验,因此研发运维预警中心,当触发设定好的预警条件时,及时通过消息中心平台向运维人员进行预警,及时进行人工干预,做到在客户发现问题前先发现问题,先处理好问题。
功能
运维预警中心可以对接各个业务系统,支持扫描业务系统数据库表、调用业务系统预警API等方式来发现异常情况,同时在消息中心的配合下,实现运维预警。
系统架构图
- 新建运维预警,需要配置业务系统的API或DB地址作为数据源。
- 配置好数据源之后,点击
获取测试数据
按钮,获取测试数据。
根据测试数据配置预警数据计算公式。PS:健康检测模式下无需配置 - 根据测试数据同时还要去消息中心配置对应模板。配置好模板之后,拿到模板ID,写入运维预警中。PS:消息中心模板配置参考,消息中心的文档。
- 配置Cron表达式,具体编写可使用 使用第三方网站生成。
业务流程图
创建预警模板类型
创建预警模板
业务实现逻辑
- 通过
主定时任务(Schedule)
,该任务的触发器(Trigger)
为系统配置Cron表达式定时扫预警模板表。[PS:目前系统配置的Cron为每分钟10分钟执行一次。]- 获取可用模板信息,创建
子定时任务(Schedule)
,子任务的触发器(Trigger)
执行时间,则为预警模板中的配置Cron表达式。子定时任务(Schedule)
通过预警模板表信息,判断数据源类型。根据不同的数据源类型,调用不同的方法获得的Json数据。- 获取失败,则会判断是否健康检测,为
是
时。则会推送预警消息,根据预警模板中指定的消息中心模板推送到消息中心。 推送数据格式如下:
Json
{
"templateName": "成都合生汇API",//预警模板名称
"errorMsg": "Not Found"//错误信息
}
- 获得Json数据成功后,将存入预警数据表。通过
视图引擎
,对预警模板中计算公式,与Json数据进行计算获取布尔值。- 结果为true时为触发预警,更新预警数据表中的是否预警状态为已经预警。并会推送预警消息,根据预警模板中指定的消息中心模板推送到消息中心。 推送数据则为数据源中获取的Json数据。
- 结果为false时不触发预警,更新预警数据表中的是否预警状态为不预警,流程结束。
- 推送预警消息成功之后,更新预警数据表中的是否已推送为已推送。
功能列表
用户端 | 菜单名称 | 功能 |
---|---|---|
PC端 | 预警模板列表 | 查询、重置 |
PC端 | 预警模板列表 | 创建预警模板 |
PC端 | 预警模板列表 | 发布/停用、编辑、删除、预览 |
设计文档
原型设计
蓝湖地址(有原型和UI):暂无
数据库设计
开发库:OpsWarning
测试库:OpsWarning_Test
代码地址
后端API接口(Services-DevopsServer)