美文网首页
Java诊断工具-Arthas

Java诊断工具-Arthas

作者: zi萱 | 来源:发表于2019-08-16 10:06 被阅读0次

    今天给大家介绍一款阿里开源的Java在线问题诊断工具-Arthas。

    补充一些QA在功能测试中可能遇到的问题,这些问题用Arthas可以解决:
    1.排查问题,让RD疯狂加日志
    2.苦苦寻找数据流转方向,焦头烂额
    3.RD要查bug,一遍遍的要我复现

    一、安装

    安装有许多方式,直接用命令行搞定。

    curl -L https://alibaba.github.io/arthas/install.sh | sh
    

    二、启动

    ./as.sh
    
    选择要监控的进程,出现如下字样说明启动成功 image.png

    三、使用方式

    让我们输入help,看看发现了什么
    
    提供了许多命令给我们使用 image.png
    help <command>
    
    让我们随意找一个命令,看看是如何使用他的,还有例子哦 image.png

    四、小试牛刀

    我目前最常用的功能是用它来排查问题,可以监控某个类的返回值、入参、异常信息等等。

    可以使用watch或者tt来做,我更常使用tt。

    比如我们现在要查看某个类的某个方法的返回值,直接输入命令即可。 image.png 而tt呢,他是一个录制回放工具,回放的内容更加丰富。
    //第一步,执行tt -t 查找到Object
     
    ga?>tt -t <类名> 方法名
    Press Ctrl+D to abort.
    Affect(class-cnt:1 , method-cnt:1) cost in 250 ms. 《如果此处class-cnt或者methd-cnt为0的话,就是没有找到相应的类或者方法,说明输入有误》
     
    +----------+------------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
    |    INDEX | PROCESS-ID |            TIMESTAMP |   COST(ms) |   IS-RET |   IS-EXP |          OBJECT |                          CLASS |                         METHOD |
    +----------+------------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
    |     1010 |       1010 |  2019-03-14 17:02:53 |         18 |     true |    false |      0x66035d76 |                <class>         | <method>       |
    |          |            |                      |            |          |          |                 |                                |                           mary |
    +----------+------------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
    |     1011 |       1011 |  2019-03-14 17:02:53 |         19 |     true |    false |      0x66035d76 |                <class>         | <method>       |
    |          |            |                      |            |          |          |                 |                                |                           mary |
    +----------+------------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
     
    //第二步,退出当前命令
    ctl + d
     
     
    //第三步,tt -i打印所有信息,包括入参、返回值等
    tt -i 1010 -x 3
    

    五、问题

    遇到的问题不算多啦。

    1. 我们项目使用了第三方提供的thrift接口,有时候要排查是否是第三方接口提供的数据问题。对于所调用的thrift接口,需要在类名后加$Client字符串,才可以获取到这个类哦~
    【maybe对其他rpc接口也是需要加$Client的,不过我没有试验】
    1. 会有自定义对象无法格式化显示的问题,对于复杂对象的解析,使用的是OGNL语言,感兴趣可以学习一下https://github.com/alibaba/arthas/issues/11

    六、官方文档

    https://alibaba.github.io/arthas/install-detail.html

    喜欢我的文章点点关注,加加赞哦~

    相关文章

      网友评论

          本文标题:Java诊断工具-Arthas

          本文链接:https://www.haomeiwen.com/subject/tmdvjctx.html