Java診斷工具Arthas
1. Arthas簡介
Arthas是阿里開源的一個線上java診斷工具,發現阿里還是挺喜歡開源一些技術的,造福人類。昨天試用了一下,發現真是強大,解決了我工作兩年的很多困擾,有點相見恨晚的感覺。
根據官網的說明,它能解決下面的問題:
當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:
這個類從哪個 jar 包加載的?爲什麼會報各種類相關的 Exception?
我改的代碼爲什麼沒有執行到?難道是我沒 commit?分支搞錯了?
遇到問題無法在線上 debug,難道只能通過加日誌再重新發布嗎?
線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
是否有一個全局視角來查看系統的運行狀況?
有什麼辦法可以監控到JVM的實時運行狀態?
Arthas採用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。
2. Arthas安裝
在Linux下直接執行curl -L https://alibaba.github.io/arthas/install.sh | sh,然後執行./as.sh就可以進入到Arthas的命令行界面。
3. Arthas試用
安裝完後試用了它的監控相關的功能,以後調試就不那麼麻煩了。
3.1 monitor命令
monitor可以對某個類的某個方法進行週期性監控,來輸出方法的平均響應時間,成功失敗次數,調用次數等。具體使用請見:https://alibaba.github.io/arthas/monitor.html。
3.2 watch命令
watch可以監控某個方法的出入參,異常信息等,具體使用請見:https://alibaba.github.io/arthas/watch.html。
3.3 trace命令
trace可以輸出方法內部調用關係,並打印方法內部每個調用的耗時,具體使用請見:https://alibaba.github.io/arthas/trace.html。
3.4 stack命令
stack可以輸出方法的整個調用路徑,具體使用請見:https://alibaba.github.io/arthas/stack.html。
3.5 tt命令
記錄方法每次的調用出入參和異常信息,並且完整保留調用現場,可以再次模擬調用。具體使用請見:https://alibaba.github.io/arthas/tt.html。
當然除此之外還有很豐富的其他功能,比如JVM,ClassLoader相關的命令。
查看原文 >>