页面上发现几个模块展示比较缓慢,白了大约 5s 之后展示兜底,显然,是接口请求超时了,打开控制台一看,果然,接口挂了。看了下相关页面,因为大量用到这个接口,模块也都加载超时了。换一台电脑看了下,存在一样的问题,确认是接口挂了。
10 min 左右后接口却又恢复正常。于是出现下面系列流程:
- 联系相应的同学,最后找到能排查问题的人。
- 查看监控平台,发现确实没有数据过来。
- 查看服务器日志,发现确实没有日志进来,确认监控数据未出错。
- 结论是平台无错误。
继续溯源,
- 平台上一层是统一接入,查看 lvs,发现没有流量进来
- 查看机器系统日志,lvs 有人在调试
当然,问题在这里已经找到了。如果这一步还没有找到,就需要继续溯源,看看域名解析是否有问题,DNS 解析是否有问题了。
自动化的检测
当用户发现网页模块超时加载后,
- 前端系统警报
- 触发对应接口的链路查询
- 检查 DNS 解析是否正常
- 检查证书是否过期,是否正确部署
- 检查统一接入层是否有流量异常
- 检查平台监控数据是否异常
- 检查服务器日志是否异常
- 检查程序是否报错
而这条链路也可以在平时正向冒烟测试,定期检查是否存在问题,提早发现问题,这样才能发挥监控的价值。