如何在线上快速定位bug(干货)

想必有许多人都想我刚进公司一样不会快速定位线上bug吧,不会快速定位bug会大大降低我们的开发效率,随之而来的就是工作质量下降、业绩下滑。

我总结了一些我常用的线上定位技巧,希望能帮助到大家!

我这里以使用阿里云日志分析作为例子

对于不同的业务场景,肯定有着不同的定位关键词,但是跟踪号是通用的,无论你的公司是做什么业务的,对于每个请求一定会有一个唯一跟踪号

我们可以去抓取请求的跟踪号:

但是光凭跟踪号是无法做到精准定位的!通过跟踪号来查看日志,一个跟踪号就能查到两百多条,你可能觉得还好,一条一条日志翻能看完,但是这是涉及到的上下游业务链不多,有些一个跟踪号可以查到1千多条日志记录,你也一条一条看嘛,很显然这不现实,所以我需要通过一些技巧来快速定位bug的位置!!!

1. 跟踪号 + 日志级别

一般来说出现bug,选着error即可,我们看这里这个请求没有bug,所以我选着了warn的日志级别,可以看到日志板块瞬间干爽了。从原来的2百多条直接干到了1条

2. 系统错误码定位

这种方式可以不用加跟踪号,因为它这里的请求码是系统给出的报错,可以理解为就是从日志里把报错的状态码展示出来了。这种情况下直接搜索它即可

3. 跟踪号 + 微服务模块

这种方式的粒度比较大,一般适用于你很清楚它是那个环节出错了的时候选用。

还是以刚刚那个请求跟踪号为例,我任意选着一个微服务后,可以看到日志条数直将为了3条,也就是说在这个业务模块产生了3条日志记录,在去查找这个业务模块的错误就比较简单了。

4. 跟踪号 + 请求日志/响应日志

这种情况比较适用于你清楚是那个业务环节出错了的情况,比如说我在些代码的时候就对于某个字段没有做空指针处理,当测试没有传入那肯定就报错了呀。这种也是比较细的粒度,一般来说只会有一到两条日志。  可以看到定位直接精准

这里就是我比较常用的日志定位技巧,这些技巧对于公司日志量庞大的也使用,其实上线的bug大多源自你对业务流程已经一些业务名词没有搞清楚而造成的,空指针也是最常见的问题,希望大家看完这里能对大家有一些启发帮助。

  • 37
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值