Bistoury
是去哪裡網開源的一個對應用透明,無侵入的java應用診斷工具,用於提升開發人員的診斷效率和能力。
Bistoury
的目標是一站式java應用診斷解決方案,讓開發人員無需登入機器或修改系統,就可以從日誌、記憶體、執行緒、類別資訊、調試、機器和系統屬性等各個方面對應用進行診斷,提升開發人員診斷問題的效率和能力。
Bistoury
在公司內部原有agent的基礎上整合Alibaba開源的arthas和唯品會開源的vjtools,提供了更豐富的功能,感謝他們所做的優秀工作。
Arthas和vjtools已經是很優秀的工具,為什麼我們還要開發Bistoury?
Arthas和vjtools透過命令列或類似的方式使用,不可否認命令列在很多時候具有比較高的效率;但圖形化介面也有其自身的優點,特別是在參數複雜時使用起來更加簡單,效率更高。 Bistoury在保留命令列介面的基礎上,也對許多指令提供了圖形化介面,面向使用者使用。
Arthas和vjtools針對單一機器,從機器的維度對系統進行診斷,沒有提供全局的視角;而線上應用往往部署在多台機器,Bistoury可以和使用方應用中心整合,從應用的維度對系統進行診斷,提供了更多的可能。
Arthas和vjtools在使用上,要么登入機器,要么需要用戶提供相應的ip和連接埠;Bistoury去掉各種設置,提供統一的web入口,從頁面上選擇應用程式和機器即可使用。
除了這些針對性優化,Bistoury在保留arthas和vjtools的所有功能之外,還提供了更豐富的功能。
Bistoury的線上debug功能去除了各種複雜參數,模擬ide調試體驗,透過web介面提供斷點偵錯的功能,可以在不阻塞應用的情況下捕捉斷點處的資訊(包括本地變數、成員變數、靜態變數和方法呼叫堆疊)。
Bistoury提供了線程級cpu使用率監控,可以監控系統每個線程的分鐘級cpu使用率,並提供最近幾天的歷史資料查詢。
Bistoury可以動態對方法增加監控,監控方法的呼叫次數、異常次數和執行時間,同時也保留最近幾天的監控資料。
Bistoury提供了日誌檢視功能,可以使用tail、grep等指令對單一或同時對多台機器的日誌進行查看。
Bistoury提供可視化頁面即時查看機器和應用的各種信息,包括主機內存和磁碟使用、cpu使用率和load、系統配置文件、jar包信息,jvm信息、內存使用和gc等等。
也許你正面對一個難以捉摸的線上問題束手無策,不妨來試試Bistoury的快捷部署腳本,在一分鐘內啟動Bistoury然後插入斷點開始調試吧!
ui、proxy使用Java1.8+,agent使用java1.7+,由於agent會attach到應用程式中,所以應用程式也需要使用Java1.7+,最好保持應用程式和agent的版本一致。點這裡使用Java11運行bistoury
目前只支援linux系統(支援mac os)
歡迎大家各種star,fork,提issue,pull request,感覺還可以就點個star吧!
前端有的地方似乎有點不那麼好看,實現的似乎也不太棒
所有的前端代碼都是後端同學兼職完成,歡迎各位前端大牛貢獻相關代碼。
使用Bistoury出現各種問題請先點這裡
qq群:717242486
透過命令列介面查看日誌,使用arthas和vjtools的各項功能
線上debug,線上應用調試神器
執行緒級cpu監控,幫助你掌握執行緒級cpu使用率
在web界面查看JVM運行信息,以及各種其它信息
動態給予方法新增監控
線程dump
文件下載
火焰圖
java熱點方法