Arthas - java诊断工具

安装:

wget wget https://alibaba.github.io/arthas/arthas-boot.jar

启动java程序,

java -jar arthas-boot.jar 会检测正在运行的java进程,选择进程进行监控

 

idea中配置Alibaba Cloud Tookit 插件,远程操作服务器Arthas.

需idea 2018.1 版本以上

安装后可以本地远程连接服务器,上传文件或者进入Terminal 操作Arthas.

Arthas - java诊断工具_第1张图片

 

场景:如果生产环境有bug,本地环境无法复现,又没有日志输出,如果临时增加日志重启又会破坏现场,像这种不改变method及Field等逻辑的增加代码,可以利用jdk提供的java.lang.instrument.Instrumentation中的redefineClasses和retransformClasses接口,一个重新定义class,一个修改class,替换已经存在的class文件,于是我们可以跳过java编译器,直接写字节码文件,于是有了可以用来直接编辑字节码的框架,可以注入修改类的方法,动态创造一个新的类,最著名的框架就是ASM,cglib、spring等框架中对于字节码的操作就是建立在ASM上的。Arthas 利用了jdk5引入的Instrument和jdk6引入的Attach API ,实现了java动态追踪。redine 可以动态修改class文件。

 

更多Arthas 使用方法,查询官方文档

https://alibaba.github.io/arthas/index.html

你可能感兴趣的:(java)