Arthas是阿里開源的一個java程式監控診斷工具。https://arthas.gitee.io/index.html
可以幫助我們監控程式執行中一些資訊。
Arthas的使用我們可以直接使用jar包和我們的的程式一併執行,它會attach我們自己的程式程式,如果是springboot專案也可以在專案中引入依賴使用。
一.直接使用jar包
1.https://arthas.aliyun.com/arthas-boot.jar 下載Arthas jar包
2.啟動我們自己的程式 jps檢視檢視到PID是7616
3.直接啟動下載好的arthas jar包: java -jar arthas-boot.jar 它也會列出來所有的java程式的pid
4.輸入想要attach 的程式id前面的序號 就可以成功進入arthas的控制檯了,就可以對我們程式進行診斷和
5.詳細的一些使用指令可以檢視官方文件https://arthas.gitee.io/quick-start.html https://arthas.gitee.io/advanced-use.html
比如我們可以使用jad指令來反編譯,看看我們執行的程式碼是否是正確版本的程式碼:jad 類的全路徑名
還可以使用watch指令進行方法執行資料的觀測:watch 全路徑類名 方法名 觀察表示式 -x 3
觀察表示式匹配ognl表示式,觀察的維度也比較多,主要體現在引數 advice
的資料結構上。Advice(https://arthas.gitee.io/advice-class.html)
引數最主要是封裝了通知節點的所有資訊
比如:watch com.nijunyang.arthas.controller.Controller test "{params,returnObj}" -x 3
檢視test方法的入參和出參,-x表示的是遍歷結果深度預設1,只會列印物件的堆地址,看不到具體的屬性值
我們請求這個介面的地址,檢視一下arthas監控到的結果資訊。
2會列印結果的屬性值的資訊
3會輸出入參屬性值和結果屬性值
還可以使用jvm指令檢視jvm的資訊等
二.springboot中使用
在springboot中使用需要通過web console來進行互動使用。arthas tunnel server 連線遠端 arthas,這裡使用tunnel server直接使用arthas原始碼中的工程啟動的,arthas原始碼:https://gitee.com/arthas/arthas.git
1.下載原始碼啟動tunnel-server工程
tunnel-server預設埠是8080,可以自己去配置埠,啟動之後訪問8080埠就可以看到web console了
2.springboot工程加入依賴,新增配置
<dependency> <groupId>com.taobao.arthas</groupId> <artifactId>arthas-spring-boot-starter</artifactId> <version>3.4.8</version> </dependency>
arthas:
agent-id: hsehdfsfghhwertyfad
tunnel-server: ws://127.0.0.1:7777/ws
3.使用web console連線使用
連線的port和agentId和工程中配置的一致即可:
4.一樣使用arthas的指令即可進行監控檢視了
具體的一些指令的使用查閱官方文件即可:https://arthas.gitee.io/index.html