先附上官方文件
在生產上只能重新發版再去尋找日誌了
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...