页面上发现几个模块展示比较缓慢,白了大约 5s 之后展示兜底,显然,是接口请求超时了,打开控制台一看,果然,接口挂了。看了下相关页面,因为大量用到这个接口,模块也都加载超时了。换一台电脑看了下,存在一样的问题,确认是接口挂了。

10 min 左右后接口却又恢复正常。于是出现下面系列流程:

  • 联系相应的同学,最后找到能排查问题的人。
  • 查看监控平台,发现确实没有数据过来。
  • 查看服务器日志,发现确实没有日志进来,确认监控数据未出错。
  • 结论是平台无错误。

继续溯源,

  • 平台上一层是统一接入,查看 lvs,发现没有流量进来
  • 查看机器系统日志,lvs 有人在调试

当然,问题在这里已经找到了。如果这一步还没有找到,就需要继续溯源,看看域名解析是否有问题,DNS 解析是否有问题了。

自动化的检测

当用户发现网页模块超时加载后,

  • 前端系统警报
  • 触发对应接口的链路查询
  • 检查 DNS 解析是否正常
  • 检查证书是否过期,是否正确部署
  • 检查统一接入层是否有流量异常
  • 检查平台监控数据是否异常
  • 检查服务器日志是否异常
  • 检查程序是否报错

而这条链路也可以在平时正向冒烟测试,定期检查是否存在问题,提早发现问题,这样才能发挥监控的价值。