目录
1 arthas idea(IDEA Arthas插件)
2 trace
3 watch
4 jad
注:
1 arthas idea(IDEA Arthas插件)
基于IntelliJ IDEA开发的Alibaba Arthas 命令生成插件,支持Alibaba Arthas 官方常用的命令。
官方的命令太复杂,此插件为了简化使用者的难度,提供了一些常用命令的支持。
该插件支持Alibaba Arthas 常用命令,比如 watch、trace、ognl static、ognl bean method、field、monitor、stack 、tt等命令。
支持设置static field、static final。
watch:能方便的观察到指定方法的调用情况,返回值、抛出异常、入参(特殊值、异常没有捕获排查)。
trace:方法内部调用路径,并输出方法路径上的每个节点上耗时(性能问题,调用链问题)。
ognl:执行表达式(方便获取静态变量,方法,获取spring context 为所欲为)。
monitor:方法执行监控(性能问题排查,一段时间内的性能指标)。
stack:获取方法从哪里执行的调用栈(用途:源码学习调用堆栈,了解调用流程)。
tt:方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测(可以重新触发,周期触发,唯一缺点对于ThreadLocal 信息丢失[隐含参数]、引用对象数据变更无效)。
支持获取选择中的spring 环境变量的值获取,获取spring 上下文所有的环境变量按照优先级打印出来,方便排查环境问题。
logger:动态更新日志等级。
Async Profiler. https://github.com/jvm-profiling-tools/async-profiler 火焰图命令支持。
2 trace
方法内部调用路径,并输出方法路径上的每个节点上耗时(性能问题,调用链问题)。
第一步,选择要监控的方法,右击选择Arthas Command->Trace。
@GetMapping("/test")
public Result test() {
int i = 1 / 0;
return Result.success("操作成功");
}
第二步,在cmd命令行,右击出现arthas trace命令,回车。
第三步,使用postman调用当前接口,cmd命令行会输出trace信息。
3 watch
能方便的观察到指定方法的调用情况,返回值、抛出异常、入参(特殊值、异常没有捕获排查)。
第一步,选择要监控的方法,右击Arthas Command->Watch。
@GetMapping("/test")
public Result test() {
create("xudongmaster");
int i = 1 / 0;
return Result.success("操作成功");
}
private Map<String, Integer> create(String str) {
Map<String, Integer> map = new HashMap<>();
map.put(str, 1);
return map;
}
第二步,在cmd命令行,右击出现arthas trace命令,回车。
第三步,使用postman调用当前接口,cmd命令行会输出watch信息。
4 jad
获取反编译代码。
第一步,选择要查看的方法,右击Arthas Command->Decompile Class Jad。
第二步,在cmd命令行,右击出现arthas jad命令,回车。
注:
Arthas的安装、启动、监控Java程序操作步骤请参考以下博客