共计 1426 个字符,预计需要花费 4 分钟才能阅读完成。
咱们日常工作中尽管会遇到很多 BUG,咱们也熟练掌握应用搜索引擎解决开发中的问题。
然而当遇到线上 BUG 应该如何排查呢?
我将我过往遇到的一些异样整顿了进去,并将我遇到的烦扰项以及问题点都做了具体记录。
心愿对你有所帮忙
排查门路
确定是否变更导致?
- 如果是变更导致须要及时回滚止损。
- 非变更导致能够排查一下异样版本,依据当前情况灵便判断是否复原成某一个版本。
确定复现门路 。
- 这能够看用户是否有反馈?
- 是否有日志。fundebug、sentry、埋点等等
- 是否有特色之类的?比如说机型、ip 地区、服务主机等等
剖析问题归属
- 先自查代码是否解决异样。比如说逻辑谬误、兼容性谬误
- 而后排查是否数据异样。能够通过 charles 伪造数据,也能够通过 chrome 断点控制台批改。
测试环境验证问题
- 将上述的问题在测试环境复现进去。证实的确是因为这里有问题后就能够着手修复了。
修复 | 移交
- 本人的问题本人修。兼容性 babel、babel-polyfill 之类的。逻辑谬误改逻辑。
- 合作方的问题,就反馈移交。
测试环境验收
- 修完之后记得先验证一下,别因为焦急修 bug 又呈现新的 bug。
预发 & 上线
- 分级公布
- 做好线上回归
实战案例
【公司 2】FMP 异样
放大工夫节点
- 3 天前开始劣化
上线单历史排查
- 近期存在屡次变更,但无显著关联,所以没有进行回滚。
日志查问、特色收集
- 外部有一个自建的前端日志平台,收集了所有日志,前端按需查找剖析
通过(页面、FMP5s+)查问日志,人眼找特色。(这里应该有主动啊喂)
- 工夫为非工作工夫(有可能是服务不稳固,网络稳定)
- 页面生存工夫长(有可能是后盾,或者上班锁屏等状况)
- 分割特色用户,获取一手反馈(用户没吐槽没印象)
- 页面资源加载不稳固(网络或后盾 +1)
- 【真问题】UA 为 挪动端 ios(mac 和 ios 这个要害特色其实被我疏忽了。因为咱们是内网我的项目,所以我第一波没有留神到这个特色。老板们用 mac 和 ios 有问题吗?没问题啊)
- 网速不佳、网络不稳固(可不,用手机那网络能稳固到哪里)
门路确认,尝试复现
- 用下面找到的特色,我都尝试了没有复现。
扩充搜寻范畴
- 分割了 UA 对应的客户端负责人,明确反馈因为客户端内存透露,导致 webview 重启。(这不应该有通报吗,而且不应该只有咱们在排查 FMP 异样的问题吧。)
- 移交、期待修复、总结汇报。
- 【公司 1】上传失败
- 【公司 3】用户拜访慢
【公司 2】用户拜访超长白屏
- 针对用户查问拜访日志(用户名、工夫)
特色收集
- 资源加载异样(三方资源)
尝试复现
- network block 资源。(非强关联资源,加载不到不会白屏)
- charles 阻塞资源。(白屏)
剖析问题制订修复计划
- 资源体积不大,然而耗时长,切不稳固。问题责任方在 cdn,偶现资源异样问题,屡教不改。
- 非强依赖资源没有 async defer,导致页面白屏,影响用户体验。
- 综合思考,defer 一下。
- 修复 & 测试环境验证(同复现步骤)
- 上线
日志平台 & 监控平台 性能点
日志查问
反对多条件
- 用户
- 页面
- traceid(page、SPA、ajax)具体的命名规定能够自定义。
- 上报的信息,比如说 FMP、erorr、埋点、ajax、操作、还是自定义打点等等
- 其余通用信息,比如说 ip、地区、ua
主动剖析 & 告警告诉
- 1 分钟 10 次 500 触发告警
- 1 分钟 3 次
erorr data in not defined
触发告警
大盘、报表
- xxx 接口 fmp90 5s,pv 1w+
实质上来讲监控平台就是把罕用的日志剖析替你整合了。
本文参加了 SegmentFault 思否面试闯关挑战赛,欢送正在浏览的你也退出。
正文完