Arthas 入门到实战(四)arthas idea plugin集成插件

16 篇文章 1 订阅

前言:

Arthas 官方的工具还不够足够的简单,需要记住一些命令,但是我们需要的是一个能够简单处理字符串信息的插件即可使用。当在处理线上问题的时候需要最快速、最便捷的命令,因此插件还是有存在的意义和价值的。

一、idea插件安装

1. idea中安装 arthas idea 插件

2. idae安装RestfulTool插件

3. 下载测试项目与arthas包并启动。

测试项目下载地址:GitHub - WangJi92/arthas-plugin-demo: Arthas idea plugin 体验demo,可以直接体验一下 一些高级的功能 ,调用spring static context 方法、获取 spring 环境变量优先级信息等等

本地下载 arthas包并启动。

二、使用arthas插件操作命令

1. 使用 Watch 查看方法返回值

在idea方法中右击,选择 Arthas Command ---> Watch ,点击后,自动复制

在 cmd中粘贴

[arthas@7720]$ watch com.wangji92.arthas.plugin.demo.controller.CommonController userOgnlX '{params,returnObj,throwExp}'  -n 5  -x 3
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 124 ms, listenerId: 1

在idea中利用 Restfull Toot 插件请求该方法:

查看

[arthas@7720]$ watch com.wangji92.arthas.plugin.demo.controller.CommonController userOgnlX '{params,returnObj,throwExp}'  -n 5  -x 3
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 124 ms, listenerId: 1
method=com.wangji92.arthas.plugin.demo.controller.CommonController.userOgnlX location=AtExit
ts=2023-01-22 21:10:15; [cost=0.3504ms] result=@ArrayList[
    @Object[][isEmpty=true;size=0],
    @ArrayList[
        @ArrayList[
            @User[User{name='fan-Copy', age=28}],
            @User[User{name='null', age=null}],
        ],
    ],
    null,
]

 2. 使用 trace 查看调用链路信息

[arthas@7720]$ trace com.wangji92.arthas.plugin.demo.controller.CommonController traceE  -n 5 --skipJDKMethod false
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 30 ms, listenerId: 2
`---ts=2023-01-22 21:14:46;thread_name=http-nio-8080-exec-6;id=30;is_daemon=true;priority=5;TCCL=org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader@64c74c4a
    `---[1008.7126ms] com.wangji92.arthas.plugin.demo.controller.CommonController:traceE()
        +---[0.01% 0.0619ms ] org.springframework.util.StringUtils:isEmpty() #104
        +---[0.00% 0.0055ms ] java.lang.StringBuilder:<init>() #107
        +---[0.00% min=0.0024ms,max=0.0063ms,total=0.0087ms,count=2] java.lang.StringBuilder:append() #107
        +---[0.00% 0.0038ms ] java.lang.StringBuilder:toString() #107
        `---[99.98% 1008.5265ms ] com.wangji92.arthas.plugin.demo.service.ArthasTestService:doTraceE() #109

 如果想要其子级也显示,可以设置:

 

 

trace -E com.wangji92.arthas.plugin.demo.controller.CommonController|com.wangji92.arthas.plugin.demo.service.ArthasTestService traceE|doTraceE -n 5  --skipJDKMethod false '1==1'
Press Q or Ctrl+C to abort.
Affect(class count: 3 , method count: 2) cost in 83 ms, listenerId: 5
`---ts=2023-01-22 21:22:19;thread_name=http-nio-8080-exec-2;id=2c;is_daemon=true;priority=5;TCCL=org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader@64c74c4a
    `---[1009.1685ms] com.wangji92.arthas.plugin.demo.controller.CommonController:traceE()
        +---[0.00% 0.0147ms ] org.springframework.util.StringUtils:isEmpty() #104
        +---[0.00% 0.0074ms ] java.lang.StringBuilder:<init>() #107
        +---[0.00% min=0.004ms,max=0.0093ms,total=0.0133ms,count=2] java.lang.StringBuilder:append() #107
        +---[0.00% 0.007ms ] java.lang.StringBuilder:toString() #107
        `---[99.98% 1009.0153ms ] com.wangji92.arthas.plugin.demo.service.ArthasTestService:doTraceE() #109
            `---[99.99% 1008.9555ms ] com.wangji92.arthas.plugin.demo.service.impl.ArthasTestServiceImpl:doTraceE()
                +---[99.91% 1008.0273ms ] java.lang.Thread:sleep() #19
                +---[0.01% 0.0575ms ] org.springframework.util.StringUtils:isEmpty() #21
                +---[0.00% 0.0171ms ] java.lang.StringBuilder:<init>() #25
                +---[0.00% 0.0166ms ] java.lang.Thread:currentThread() #25
                +---[0.00% 0.0159ms ] java.lang.Thread:getName() #25
                +---[0.00% min=0.0041ms,max=0.0153ms,total=0.0194ms,count=2] java.lang.StringBuilder:append() #25
                `---[0.01% 0.0883ms ] java.lang.StringBuilder:toString() #25

其他命令使用请看官方文档:arthas idea plugin 使用文档 (yuque.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值