Watch
Watch:觀察指定路徑方法的調用情況
作用:
方法執行數據監測,讓你能方便的觀察到指定的方法的掉用情況
能觀察到的范圍:返回值、拋出異常、入參、通過編寫OGNL表達式進行對應變量的查看
Watch xxx.xxx.xxx.controller.StartAppImg xx (方法名)
命令:watch com.xxx.xxx.controller.Test list
查看list方法的調用詳細情況
Watch 路徑.類名 方法名
觀察 指定路徑xxx.方法 (ognl表達式)“{參數,返回值}”-x 2 屬性遍歷深度
watch com.xxx.xxx.controller test “{params,returnObj}” -x 2
通過 target 獲取所有2級屬性
watch com.xxx.xxx.xxx.controller.test list "target" -x 2 -b
通過target獲取指定屬性值
獲取方法前后的返回值
trace
作用:
Trace 命令能主動搜索class-pattern/method-pattern 對應的方法調用路徑,渲染和統計整個調用鏈路上的所有性能開銷和追蹤鏈路
觀察表達式的構成主要由OGNL表達式組成,所以你可以這樣寫{params,returnObj},只要是一個和法的OGNL表達式,就都能被正常支持
很多時候我們只想看到某個方法的rt大於某個時間之后的trace結果,現在arthas可以按照方法執行的耗時進行過濾,例如 trace “StringUtils isBlank ‘#cost>100’”,表示當執行時間超過100ms時候才會輸出trace的結果
trace com.xxx.xxx.xx.controller.StartAppImgController list
查看指定路徑方法節點的耗時時間
trace com.xxx.xxx.xxx.controller.StartAppImgController list -n 3
查看指定路徑方法節點的耗時時間 並設置命令執行次數
trace com.xxx.xxx.xxx.controller.StartAppImgController list "#cost > .5"
查看指定路徑方法節點的耗時時間 過濾大於0.5秒的
Stack
獲取方法的調用路徑
Stack com.xxx.xxx.xxx.controller.StartAppImgController list
方法參數小於0時追蹤方法路徑 執行2次
Stack com.xxx.xxx.xxx.controller.StartAppImgController list ‘params[0]<0’ -n 2
追蹤大於執行時間0.5 的方法
Stack com.xxx.xxx.xxx.controller.StartAppImgController list ‘#cost>0.5’