Arthas 监控服务(直接在服务器运行)
本文档只是入门,API参考:https://arthas.aliyun.com/doc/watch.html
该工具可以做到的:查看进程;在线反编译源码;动态修改日志级别;查看某个方法的输入、输出、异常等信息。更多功能查看官网
启动arthas-boot
下载arthas-boot.jar,再用java -jar命令启动
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
选择需要监听的服务
选择需要诊断的目标进程,再Enter/回车,Attach成功之后,会打印Arthas LOGO。
查看进程
Arthas支持管道,thread | grep ReportThread
查看JVM已加载的类信息
sc -d *Poi
在线反编译源码
jad com.njmind.qc.report.utils.BgPoi
动态修改日志级别
找到logger的类加载器
sc -d org.slf4j.LoggerFactory
修改日志级别
ognl -c 32205606 '@org.slf4j.LoggerFactory@getLogger("com.njmind.qc").setLevel(@ch.qos.logback.classic.Level@DEBUG)'
## 32205606 :类加载器的hash
## com.njmind.qc :需要更改级别的包路径
## @ch.qos.logback.classic.Level@DEBUG :需要修改的级别
官方支持修改类的静态属性,可以针对单个类修改其静态对象
查看某个方法的输入、输出、异常等信息
watch com.njmind.qc.report.utils.BgPoi * {params,returnObj,throwExp}
第一个参数是类名,支持通配
第二个参数是函数名,支持通配
watch java.sql.Statement execute {params} -b -x 2