greys在線問題診斷

目標羣體

  • 有時候忽然一個問題反饋上來,須要入參才能完成定位,但偏偏沒有任何日誌。回去加上從新部署,一杯咖啡時間過去了,是否是很崩潰?git

  • 當你通過反覆這樣幾回折騰以後變得聰明瞭,在本身的代碼的全部入參和出參地方都加上debug日誌,但此次問題彷佛暴露在別人的代碼中了...是否是很無奈?github

  • 忽然遇到線上一個性能問題沒法肯定究竟是哪一個環節的耗時,只能反覆抓jstack猜,還有沒有辦法能夠好好的過日子啦?api

遇到以上問題時,你就是咱們這類工具的目標客戶,此類工具能利用Java6的Instrumentation特性,動態加強你所指定的類,獲取你想要到的信息session

內置主要功能

  • 查看已被JVM所加載的類、方法信息curl

  • 方法執行監控jvm

調用量,成功失敗率,響應時間工具

  • 方法執行數據操做性能

入參、返回值、異常信息記錄與查看;支持動做回放ui

  • 性能開銷渲染!atom

跟蹤指定路徑中的方法調用軌跡、耗時

  • 查看方法調用堆棧

軟件安裝

  • 在線安裝(推薦)

curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|sh

解壓zip文件後,執行如下命令

cd greys
sh ./install-local.sh

啓動Greys

目標機器啓動

./ga.sh <PID>
./greys.sh <PID>[@IP:PORT]

若是不指定IP和PORT,默認是127.0.0.1和3658

命令清單

命令 說明
help 查看命令的幫助文檔,每一個命令和參數都有很詳細的說明
sc 查看JVM已加載的類信息
sm 查看已加載的方法信息
monitor 方法執行監控
trace 渲染方法內部調用路徑,並輸出方法路徑上的每一個節點上耗時
ptrace 強化版的trace命令。經過指定渲染路徑,並可記錄下路徑中全部方法的入參、返值;與tt命令聯動。
watch 方法執行數據觀測
tt 方法執行數據的時空隧道,記錄下指定方法每次調用的入參和返回信息,並能對這些不一樣的時間下調用進行觀測
stack 輸出當前方法被調用的調用路徑
version 輸出當前目標Java進程所加載的Greys版本號
quit 退出greys客戶端
shutdown 關閉greys服務端
reset 重置加強類,將被greys加強過的類所有還原
session 查看當前會話
jvm 查看當前JVM的信息
  • sc命令

sc -df *.impl.ApplyImpl
查看PreLoanImpl類信息

  • sm命令

sm -d .impl.ApplyImpl
查看ApplyImpl全部方法信息

  • monitor命令

monitor -c 20 *impl.PostLoanImpl monitorAdd
統計週期爲20s,統計PostLoanImpl類的monitorAdd方法狀況

  • trace命令

trace cn.fraudmetrix.creditcloud.api.impl.PostLoanImpl monitorAdd
跟蹤PostLoanImpl的monitorAdd方法調用stack並統計調用時間開銷

  • ptrace命令

ptrace -t cn.fraudmetrix.creditcloud.api.impl.PostLoanImpl monitorAdd
跟蹤PostLoanImpl的monitorAdd方法調用stack中含路徑名爲fraudmetrix並統計調用時間開銷

  • watch命令

watch -bs *.impl.PostLoanImpl monitorAdd 'params[0] + "\t" + params[1]+ "\t" + returnObj'
查看PostLoanImpl的monitorAdd方法的入參、返回值信息

watch -b *.impl.PostLoanImpl monitorAdd 'params[0]' -x 1
查看PostLoanImpl的monitorAdd方法的第一個入參信息,並展開一層顯示

  • tt命令

tt -t -n 3 *PostLoanImpl monitorAdd
記錄3次PostLoanImpl類的monitorAdd方法的執行狀況。

Greys使用和介紹具體查看:

https://github.com/oldmanpush...

相關文章
相關標籤/搜索