服务巡检
1. 背景
项目经过层层测试,最终上线了,此时我们很多时候需要保证线上是 OK 的。如果线上哪个服务出了问题,带来的后果是可想而知的。那么做线上巡检就成了我们很多测试,或者运维考虑的了,我们巡检不是为了去发现 bug,更多的时候是保证服务是 OK 的,是可以访问的,比如我们 Tomcat 下的一个站点,很少有首页挂了,其他页面是 OK 的情况,因此我们巡检的目的是验证服务是否 OK,有时也关注下响应时间。在讯飞开放平台上有很多第三方的 webapi 服务提供给用户使用,服务的可用性、授权和计量的准确性等都需要得到很好的保障,服务不可用,用户会第一时间反馈,但授权和计量出错,很难被及时发现,所以定时服务巡检就很有必要。接下来我们就以具体的实例来讲解下服务巡检的流程。
2. 设计思路
2.1 流程图
2.2 主要模块介绍
2.2.1 startUp.py
程序的入口,代码如下:
程序入口,主要的调用链路是:
use_service()和 get_result()两个方法,也在这个.py 文件中实现
2.2.2 get_count.py
主要是用来获取数据,代码如下:
获取 get_count()方法中,使用到的获取数据的接口,需要通过 cookie 才能获取当前用户的服务量使用情况,因此,需要先通过 get_cookie(),拿到登录接口返回值的 cookie,作为获取数据接口的请求头参数(代码中去除了一些私密的数据)。
2.2.3 send_mail.py
对数据进行处理,处理完成后发送邮件,代码如下:
该.py 文件中有两个方法 mail_html()和 send_mail(),mail_html()方法是为了对结果数据进行格式处理,send_mail()方法是把处理后的内容,通过邮件发送给项目组相关人员,具体实现,见上方代码。
3. 结果展示
巡检结果正常时:
巡检结果异常时:
实际日常巡检的结果:
版权声明: 本文为 InfoQ 作者【向阳逐梦】的原创文章。
原文链接:【http://xie.infoq.cn/article/7de43d112bd05f60e8e63df43】。文章转载请联系作者。
评论