swagger服务监控与告警系统及方法技术方案

技术编号:25041227 阅读:23 留言:0更新日期:2020-07-29 05:32
本发明专利技术公开了一种swagger服务监控与告警系统及方法。swagger服务监控与告警系统,包括前端模块、后端模块、定时任务和数据库;前端模块提供配置swagger监控信息、配置告警通知人信息、配置定时任务规则、配置服务重启次数、关闭监控功能;后端模块自动解析swagger地址、并将处理后的前端用户录入的信息传输至数据库保存;数据库用于存储信息;定时任务以最少的网络流量实时监控大批量服务、服务挂掉时能自动重启、触发钉钉告警通知。本发明专利技术能够实现以最少的网络流量实时监控大批量服务,并且服务挂掉时能自动重启并钉钉通知到具体某人,可大大节省研发人员定位问题的时间,降低人力成本,提高效率。

【技术实现步骤摘要】
swagger服务监控与告警系统及方法
本专利技术属于计算机软件
,涉及swagger服务监控与告警系统及方法。
技术介绍
应用系统中后端部署的服务众多(达到300个),当一个服务挂掉时,研发人员不能及时的知道服务状态。当被测系统出现不能正确访问时,研发人员需要花不少时间进行前端抓包,再从后端查看日志文件去定位问题,当问题定位出是因为服务挂掉(出现异常)时,再去手工重启服务。由于后端服务部署完成后,会生成一个进程,现有技术中监控服务,都是通过监控进程是否存在来判断服务是否正常运行或已经出现异常。但这样做有不少缺陷:首先,无法实时的知道后端服务的状态,其次当服务挂掉时,需要手工重启服务。此外,即使进程存在,往往也并不能说明服务就是可用的。在实际运行中我们发现,进程存在,但服务已经不可访问的场景普遍存在。
技术实现思路
为解决上述问题,本专利技术公开了一种swagger服务监控与告警系统及其实现方法。为了达到上述目的,本专利技术提供如下技术方案:swagger服务监控与告警系统,包括前端模块、后端模块、定时任务和数据库;所述前端模块提供用户界面,基于用户界面获取swagger地址、用户通知号码、对应的业务线名称、wiki地址,并传输至后端模块;所述后端模块用于读取前端传来的参数并进行处理;将前端模块获取的用户输入的swagger地址标记为主动监控;自动解析wiki地址对应的地址库中的swagger信息,过滤掉其中已配置为主动监控的部分,将还未配置的追加到监控列表里面,并标记这些swagger地址是被动监控;将获取到的所有swagger地址、对应的业务线名称、主动被动监控标记、用户通知号码存储入数据库;所述定时任务用于周期性定时启动监控,启动时连接数据库获取所有swagger地址信息,先对swagger地址进行解析处理,判断是否是本系统的swagger地址,无效地址触发告警,有效地址则采用HEAD请求方式,获得swagger地址对应swagger服务的概要信息,根据概要信息分析判断该swagger是否异常,如果异常则自动重启,并触发通知;如果swagger服务是正常的,则跳过继续监控下一个swagger服务。进一步的,前端模块还能够获取自动重启服务次数和监控规则,定时任务根据监控规则启动swagger服务监控。进一步的,后端模块在对前端传来的参数进行处理后还判断swagger地址前是否有非监控标识,当有非监控标识时跳过该swagger地址。进一步的,后端模块处理过程包括:去掉参数前后空格和前后换行符,再用换行符进行切割,切割后对每行的字符串去空格后再放入新的数组,最后把数组转成字符串。进一步的,被标记为被动监控的swagger地址不区分对应的业务线。进一步的,定时任务触发的通知中包括出现异常的swagger地址、swagger的主动被动监控方式、重启的服务名称、重启次数、人工需要介入时的跳转链接。swagger服务监控与告警方法,包括:步骤1,获取用户输入的各个业务线的swagger地址、用户通知号码、wiki地址;步骤2,对步骤1获取的信息进行处理;步骤3,判断地址的首个字符是否包含预先设置的非监控标识,当有非监控标识时跳过该swagger地址;判断用户输入非swagger地址时,根据用户通知号码提醒用户swagger地址填写错误;不符合上述判断的用户输入的swagger地址被标记为主动监控;获取wiki地址链接的地址库中的swagger地址,过滤掉其中主动监控的swagger地址,其余的swagger地址标记为被动监控;所有获取到的swagger地址、对应的业务线名称、主动被动监控标记、用户通知号码存存储入数据库中;步骤4,定时连接数据库获取到所有swagger地址信息,获取地址后,先对swagger地址进行解析处理,判断是否是本系统的swagger地址,无效地址触发告警,有效地址则采用HEAD请求方式,获得swagger地址对应swagger服务的概要信息,根据概要信息分析判断该swagger是否异常,如果异常,则自动重启若干次,并触发通知对应的工程师;如果swagger服务是正常的,则跳过继续执行下一个swagger服务。作为改进,步骤1中还获取自动重启服务次数和监控规则。作为改进,步骤4触发通知中包括出现异常的swagger地址、swagger的主动被动监控方式、重启的服务名称、重启次数、人工需要介入时的跳转链接。进一步的,所述步骤4中,用户输入非swagger地址时,根据用户界面上录入的用户通知号码提醒用户swagger地址填写错误。与现有技术相比,本专利技术具有如下优点和有益效果:本专利技术为每个服务注入一个swagger配置,然后通过监控swagger的方式,来判断服务是否可用,这样的监控方式更加准确和有效。本专利技术方案能实现以最少的网络流量实时监控大批量服务,并且服务挂掉时能自动重启并钉钉通知到具体某人,可大大节省研发人员定位问题的时间,降低人力成本,提高效率。附图说明图1为本专利技术提供的swagger服务监控与告警系统架构图。图2为前端模块提供的用户界面示意图。具体实施方式以下将结合具体实施例对本专利技术提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本专利技术而不用于限制本专利技术的范围。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本专利技术提供的swagger服务监控与告警系统,包括前端模块、后端模块、定时任务和数据库。其中前端模块基于VUE框架搭建,提供配置swagger监控信息、配置告警通知人信息、配置定时任务规则、配置服务重启次数、关闭监控功能,将前端获取的信息传输至后端模块;后端模块基于Django框架搭建,自动解析swagger地址、并将处理后的前端用户录入的信息传输至数据库保存;数据库采用mysql实现,用于存储信息;定时任务以最少的网络流量实时监控大批量服务、服务挂掉时能自动重启、触发钉钉告警通知。具体的说,前端模块提供如图2所示的用户界面,界面上提供各个业务线的swagger配置页面,各业务线工程师再手动去配置需要监控的swagger地址并标记是主动监控。具体的,页面中设置有若干可供用户输入和修改的文本框,用户可输入和修改需要监控的swagger地址、钉钉手机号码,还可以配置自动重启服务次数和监控规则(如监控时间段,图2中该时间段有默认值)。swagger不监控时,在输入的swagger地址前面加“#”号(可替换为其他非监控标识)注释掉。前端模块从用户界面上获取需要监控的swagger地址、对应的业务线名称、钉钉手机号码、监控时间段、wiki地址这些参数后将其传输至后端模块。本系统还提供记录swagger地址的wiki地址库,点击用户界面上的wiki地址后可以链接到地址库本文档来自技高网...

【技术保护点】
1.swagger服务监控与告警系统,其特征在于:包括前端模块、后端模块、定时任务和数据库;所述前端模块提供用户界面,基于用户界面获取swagger地址、用户通知号码、对应的业务线名称、wiki地址,并传输至后端模块;所述后端模块用于读取前端传来的参数并进行处理;将前端模块获取的用户输入的swagger地址标记为主动监控;自动解析wiki地址对应的地址库中的swagger信息,过滤掉其中已配置为主动监控的部分,将还未配置的追加到监控列表里面,并标记这些swagger地址是被动监控;将获取到的所有swagger地址、对应的业务线名称、主动被动监控标记、用户通知号码存储入数据库;所述定时任务用于周期性定时启动监控,启动时连接数据库获取所有swagger地址信息,先对swagger地址进行解析处理,判断是否是本系统的swagger地址,无效地址触发告警,有效地址则采用HEAD请求方式,获得swagger地址对应swagger服务的概要信息,根据概要信息分析判断该swagger是否异常,如果异常则自动重启,并触发通知;如果swagger服务是正常的,则跳过继续监控下一个swagger服务。/n

【技术特征摘要】
1.swagger服务监控与告警系统,其特征在于:包括前端模块、后端模块、定时任务和数据库;所述前端模块提供用户界面,基于用户界面获取swagger地址、用户通知号码、对应的业务线名称、wiki地址,并传输至后端模块;所述后端模块用于读取前端传来的参数并进行处理;将前端模块获取的用户输入的swagger地址标记为主动监控;自动解析wiki地址对应的地址库中的swagger信息,过滤掉其中已配置为主动监控的部分,将还未配置的追加到监控列表里面,并标记这些swagger地址是被动监控;将获取到的所有swagger地址、对应的业务线名称、主动被动监控标记、用户通知号码存储入数据库;所述定时任务用于周期性定时启动监控,启动时连接数据库获取所有swagger地址信息,先对swagger地址进行解析处理,判断是否是本系统的swagger地址,无效地址触发告警,有效地址则采用HEAD请求方式,获得swagger地址对应swagger服务的概要信息,根据概要信息分析判断该swagger是否异常,如果异常则自动重启,并触发通知;如果swagger服务是正常的,则跳过继续监控下一个swagger服务。


2.根据权利要求1所述的swagger服务监控与告警系统,其特征在于:前端模块还能够获取自动重启服务次数和监控规则,定时任务根据监控规则启动swagger服务监控。


3.根据权利要求1所述的swagger服务监控与告警系统,其特征在于:后端模块在对前端传来的参数进行处理后还判断swagger地址前是否有非监控标识,当有非监控标识时跳过该swagger地址。


4.根据权利要求1所述的swagger服务监控与告警系统,其特征在于:后端模块处理过程包括:去掉参数前后空格和前后换行符,再用换行符进行切割,切割后对每行的字符串去空格后再放入新的数组,最后把数组转成字符串。


5.根据权利要求1所述的swagger服务监控与告警系统,其特征在于:被标记为被动监控的swagger地址不区分对应的业务线。


6.根据权利要求1所述的swagger服务监控与告警...

【专利技术属性】
技术研发人员:方鑫
申请(专利权)人:众能联合数字技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1