背景
生产环境调试使用。对问题进行高效排查。
目录
一、watch
- idea安装arthas插件
- idea插件下载代理配置
- A. 选择Http Proxy Settings, 打开配置页面
- B. 选择 Auto-detect proxy setting
- C. 上图中选择Ok即可, plugin 列表 刷新得到插件内容
- 启动arthas客户端
- watch监听
- 通过arthas提示进入进程监听环境
- 执行命令, 等待拦截
- 接口调用测试
- 查看arthas监听结果
- 手动生成异常并调用和捕获
- 参数 x 的解释
- 静态方法使用 watch
- arthas正确退出方式
二、JPS 反编译查看源码
- sc命令查看class类路径
- jps + grep 命令查看源码中指定的关键字
三、trace 跟踪查看方法调用时间及耗时占比
- 测量方法调用的耗费时间
- 使用arthas测试结果
总结
watch com.home.api.Controller getStudies '{params,returnObj,throwExp}' -n 5 -x 3
注:上述参数 -x 可比喻是望远镜的放大倍数
>> 解释
一. 使用watch方法查看
注:在idea平台中,对arthas进行安装,重启idea
注:若打开plugin后marketplace中无法看到插件列表内容,可通过如下步骤进行配置
引用内容链接 >> |
A. 选择Http Proxy Settings, 打开配置页面
B. 选择 Auto-detect proxy setting
注:配置url
https://plugins.jetbrains.com
C. 上图中选择Ok即可, plugin 列表 刷新得到插件内容
注:鼠标右键点击需要监听的方法生成 watch 命令
- 启动arthas客户端
注:arthus 客户端下载目录
https://arthas.gitee.io/doc/download.html
注:java命令启动 arthas 客户端
java -jar ./arthas-bin/arthas-boot.jar
注:找到列表中对应的进程,找到对应的序号,这里是序号 [8], 输入8进入
注:通过arthas提示进入进程监听环境
注:红框标注的为进程 pid 号码
注:将idea中获取的watch命令复制到命令号后回车执行
注:接口调用测试。输入请求命令,访问成功
注:查看arthas监听结果
注:手动生成异常并调用和捕获
注:修改程序添加异常
注:被捕获
注:x 设置数值的是被监视方法的调用深度。
注:可以解释为放大倍数。及0,1,2,3倍,数字越大放大的倍数越大,看到的监测内容越清楚
注:同上也是相同的步骤
注:退出arthas需要使用stop退出,避免下次进入端口号冲突
二、JPS 反编译查看源码
注:sc 命令根据关键字查找类的路径,并提供给 jps 命令查看源码使用
‘
注:可使用模糊查询(使用*进行模糊)和精确查询
jad --source-only com.home.api.Controller | grep Controller
三、trace 跟踪查看方法调用时间及耗时占比
注:添加Thread.sleep(2000) 睡眠2s中进行测试
注:同理使用生成watch命令的方式得到 trace命令
跳转看watch 命令如何生成 >>|