在字节内部是如何 Debug 线上问题的?

在日常工作中我们经常会遇到一些线上异常的情况由于环境和数据不一样在本地和测试环境根本没办法复现,而且线上也没有输出日志,如果遇到这种情况我们往往要怎么去解决呢?

常规做法

如果实在遇到上面的情况,在本地和测试都无法复现,那最常规的做法就是拉个线上分支的版本,增加一些调试日志,然后再重新发布版本进行调试。运气好加一次日志就可以找到问题,运气不好的话可能还要发布好几次才能定位到问题。

高级做法

下载安装 arthas

Arthas 是阿里开源的一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

上面的 Arthas 这款工具的官方介绍,从中我们可以看到这个工具可以查看方法的出入参,异常以及监测方法的耗时,我们排查问题的时候最重要的就是想知道一些方法的入参和返回,有了入参和返回的数据我们就可以模拟出具体的场景从而解决线上的问题。

注意这里说的方法不单单是外层的接口方法,任何 Service 层或者 RPC 层的方法都是可以的。之所以提出这一点是因为很多时候线上的接口都会有请求和结果的日志记录,但是并没有内部某个具体方法的入参和返回,而通过 Arthas 我们可以监控任何方法的入参和返回值。

我们可以在 https://github.com/alibaba/arthas/releases 这个地址上下载具体的版本,下载下来就可以用,没什么难度。接下来阿粉通过一个案例来带大家使用一

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值