BTrace
BTrace可用于动态跟踪正在运行的Java程序。BTrace官网:https://github.com/btraceio/btrace
安装
1 | #下载安装包 |
编写BTrace脚本
BTrace脚本是纯java代码,主要使用BTrace提供的工具btrace.BTraceUtils和注解btrace.annotations来实现对监控对象的实时打印统计。
1 | import com.sun.btrace.annotations.*; |
运行btrace
btrace运行命令如下所示:
btrace -cp /root/btrace/build -p 16111 4634 ./V2RTrace.java
-cp 指定classpath包含btrace的jar包路径
-p 指定btrace运行的端口
4634 被监控的Java进程号
V2RTrace.java btrace监控脚本java代码文件
监控效果如图所示:
Arthas
Arthas 可以说是BTrace的进阶版,提供了操作更方便的命令行界面,不需要再编写脚本,通过Arthas提供的命令即可实现在线debug。使用方式详见官网:https://github.com/alibaba/arthas
实践中远程debug搞了好久,以免踩坑记录一下。
一键脚本安装arthas
1 | curl -L https://alibaba.github.io/arthas/install.sh | sh |
修改as.sh脚本,让执行as.sh脚本时,只attach,不进入交互debug界面
1 | # target process id to attach |
启动arthas server,attach要debug 的java进程
as.sh PID
1 | [root@qiaojian ~]# as.sh 32431 |
远程telnet连接
远程http连接