Cubic 是一個對應用透明,無侵入性的java應用診斷工具,用於提升開發人員的診斷效率和能力。
Cubic 的目標是一站式java應用診斷解決方案,讓開發人員無需登入機器或修改系統,就可以從日誌、記憶體、執行緒、類資訊、調試、機器和系統屬性等各個方面對應用進行診斷,提升開發人員診斷問題的效率和能力。
Cubic 可呼叫內部自訂指令和動態載入arthas使用arthas 指令集。
因為很多公司使用監控需要進行客製化開發,Cubic 可作為一種技術參考,希望帶給大家些許啟發。
技術系統:Spring Boot、Vue、Netty、Websocket、xterm等。
目錄結構
agent-dist 存放打包的agent.jar(打包後出現)
agent-proxy-dist 存放打包的proxy.jar(打包後出現)
arthas-dist 用於支援arthas命令集
config agent設定檔
cubic-agent agent start
cubic-core agent核心
cubic-proxy 代理應用,目前整合了簡單的頁面
cubic-ui UI,持續開發中,歡迎大神來修bug,打包完將dist目錄資料拷貝到cubic-proxy resources/static下
docs 文件
scripts 包含打包腳本、啟動腳本(用於測試)
使用說明
1、agent 加載如下,將agent-dist整體拷貝到一個目錄進行加載,裡面的結構請不要進行變動,不要單獨拷貝一個jar java -jar -javaagent:/xxx/agent-dist/cubic-agent.jar yyy .jar
2、啟動代理服務,用於連接agent 和web java -jar cubic-proxy.jar
3.訪問web ui localhost:6080
正常啟動後會有資料回報到服務端,可在首頁查看,點選唯一標識跳到指令模式--點選connect 進入可重新連線。
4.指令分為兩部分,輸入1 基礎指令, 3位arthas 指令,輸入1 然後輸入help 可查看幫助。
5.也可以直接進入指令模式,使用search 指令來查詢我們專案設定的agent, 例如在agent config 我們設定了參數agent.service_name = cubic,則進行查詢並取得到應用程式的agentId(如果使用quick_start啟動的,因為增加了-Dcubic.agent.service_name=cubic-proxy ,所以我們可以使用cubic-proxy查詢ID )。
6.然後將agentId 填入上面的輸入框點擊connect 按鈕重新加載,則進入目前應用的命令模式,輸入3,切換到arthas 命令,就可以使用了。
Cubic java應用診斷工具更新日誌
v1.4.2
1.修復Arthas 的一些小bug
2、完善序列化協定的處理方式