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相關的命令。

查看原文 >>
相關文章