arthas的查詢watch方法

2021-10-10 10:49:23 字數 1500 閱讀 8868

先附上官方文件

在生產上只能重新發版再去尋找日誌了

target

呼叫方法的物件例項

params

方法引數

returnobj

返回值,如果有的話

returnexp

異常,如果有的話

watch 包名.類名 方法名·········

watch com.***.workbench.controller.freeprocessinstancecontroller querylist "" (觀察某個方法的入參和呼叫方法的物件例項以及出參)

但是這樣的日誌會滾動的很快沒有辦法精確定位到是哪個訂單號/哪個id導致出現的問題

watch com.***.workbench.controller.freeprocessinstancecontroller querylist "" "params[0].name == '155'" -x 2  (觀察某方法並且引數是物件的情況name的值=155時才觀察,觀察深度2)

watch com.lmis.controller.allocaterulecontroller checkrulegroup "" "params[1] == 173"  -e -x 2   (觀察某方法並且引數2的值=173時&&丟擲異常時才觀察,觀察深度2)

watch com.lmis.controller.allocaterulecontroller checkrulegroup ""  '#cost<200' "params[1] == 173"  -e -x 2  (觀察某方法並且引數2的值=173時&&丟擲異常&&執行時間小於200ms時才觀察,觀察深度2)

watch com.lmis.controller.allocaterulecontroller checkrulegroup 'target' 

trace:(方法執行鏈路時間觀察)

trace com.***.controller.***controller.querylist & (後台非同步記錄跟蹤方法執行鏈時間)

trace -e com.***.workbench.controller.freeprocessinstancecontroller querylist|processinstancedetail '#cost>1000'  (跟蹤觀察多個方法執行時間&&只觀察執行時間大於1000ms的)

monitor -c 5 com.***.controller.freeprocessinstancecontroller querylist(每個5秒彙總觀察某個方法)

thread -n 3   (觀察執行排程最頻繁的前3個執行緒)

thread id   (觀察id執行緒)

thread -b   (觀察是否有被其他執行緒阻塞無法繼續執行的執行緒)

Arthas 使用 watch命令 線上診斷

如果debug線上環境但是又沒有加日誌,怎麼辦?可以使用arthas的watch命令來診斷。測試程式 hello world private void run catch interruptedexception e public static void main string args throw...

arthas的安裝和使用

1 介紹 接觸arthas,是源於被安利,可用於問題定位,學習一下。官網文件寫得很好,但如果要真正比較好地用起來,是需要真實案例不斷去嘗試學習,其他看官網 2 為什麼要用arthas 官網描述 可以類似於解決以下的一些問題,就是出現問題了,快速定位!當你遇到以下類似問題而束手無策時,arthas可以...

vue的watch的用法

在vue中,使用watch來響應資料的變化。watch的用法大致有三種。下面 是watch的一種簡單的用法 new vue watch 直接寫乙個監聽處理函式,當每次監聽到 cityname 值發生改變時,執行函式。也可以在所監聽的資料後面直接加字串形式的方法名 watch immediate和ha...