不停機不更新代碼線上調(diào)試BUG的工具

\color{red}{歡迎關(guān)注我的微信公眾號:進階者euj}
如果你有以下痛點,請你查看本文章:
1姥宝、我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit恐疲?分支搞錯了腊满?
2、遇到問題無法在線上 debug培己,難道只能通過加日志再重新發(fā)布嗎碳蛋?
3、線上遇到某個用戶的數(shù)據(jù)處理有問題省咨,但線上同樣無法 debug肃弟,線下無法重現(xiàn)!
4零蓉、是否有一個全局視角來查看系統(tǒng)的運行狀況笤受?
5、有什么辦法可以監(jiān)控到JVM的實時運行狀態(tài)敌蜂?
6箩兽、怎么快速定位應(yīng)用的熱點,生成火焰圖章喉?

Arthas-解決以上所有問題

一汗贫、快速啟動身坐,(我的第一給demo)
1、下載git代碼落包,本地啟動app應(yīng)用
演示的源碼

package com.eujian.arthaslearn.controller;

import com.fasterxml.jackson.databind.node.ObjectNode;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping
@RestController
public class ArthasController {


    @GetMapping("/arthasGet")
    public String arthasGet(String a,String b){
        System.out.println("arthasGet");
        System.out.println(String.format("a=%s,b=%s",a,b));
        return a;
    }

    @GetMapping("/arthasTrace")
    public String arthasTrace() throws InterruptedException {
        Thread.sleep(100);
        new MyService().send();
        return "arthasTrace";
    }

    @PostMapping("/arthasInvote")
    public ObjectNode arthasInvote(@RequestBody ObjectNode objectNode){
        System.out.println("arthasInvote");
        System.out.println(String.format("objectNode=%s",objectNode));
        return objectNode;
    }
}

package com.eujian.arthaslearn.controller;

public class MyService {

    public String send(){
        System.out.println("send被調(diào)用了");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "send";
    }

}

github地址:https://github.com/hd-eujian/arthas-learn.git
gitlab地址:https://gitee.com/guoeryyj/arthas-learn.git
啟動應(yīng)用
java -jar ./target/arthas-learn-1.0.0.jar

2部蛇、下載arthas的jar包(linux命令)

curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
運行arthas結(jié)果

選擇1然后回車

3、 查看dashboard
輸入dashboard咐蝇,按回車/enter涯鲁,會展示當前進程的信息,按ctrl+c可以中斷執(zhí)行嘹害。

dashboard

4撮竿、通過thread命令來獲取到app線程
通過thread 2獲取線程id為2的線程

thread命令

5、通過jad來反編譯Main Class
jad com.eujian.arthaslearn.controller.ArthasController

jad結(jié)果

6笔呀、watch某個函數(shù)的入?yún)⒑统鰠?br> 輸入命令watch com.eujian.arthaslearn.controller.ArthasController arthasGet '{params[0],params[1],returnObj}'
用來監(jiān)聽ArthasController這個類的arthasGet方法

訪問接口 curl localhost:8085/arthasGet?a=heetget\&b=saas
監(jiān)聽結(jié)果

watch命令

7幢踏、trace命令 輸出方法路徑上的每個節(jié)點上耗時
輸入 trace com.eujian.arthaslearn.controller.ArthasController arthasTrace
另外另個終端輸入curl localhost:8085/arthasTrace

trace命令

\color{red}{歡迎關(guān)注我的微信公眾號:進階者euj}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市许师,隨后出現(xiàn)的幾起案子房蝉,更是在濱河造成了極大的恐慌,老刑警劉巖微渠,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搭幻,死亡現(xiàn)場離奇詭異调卑,居然都是意外死亡祟滴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門灿里,熙熙樓的掌柜王于貴愁眉苦臉地迎上來云芦,“玉大人俯逾,你說我怎么就攤上這事【艘荩” “怎么了桌肴?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長琉历。 經(jīng)常有香客問我坠七,道長,這世上最難降的妖魔是什么旗笔? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任彪置,我火速辦了婚禮,結(jié)果婚禮上换团,老公的妹妹穿的比我還像新娘悉稠。我一直安慰自己,他們只是感情好艘包,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布的猛。 她就那樣靜靜地躺著耀盗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卦尊。 梳的紋絲不亂的頭發(fā)上叛拷,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音岂却,去河邊找鬼忿薇。 笑死,一個胖子當著我的面吹牛躏哩,可吹牛的內(nèi)容都是我干的署浩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼扫尺,長吁一口氣:“原來是場噩夢啊……” “哼筋栋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起正驻,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤弊攘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后姑曙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體襟交,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年伤靠,在試婚紗的時候發(fā)現(xiàn)自己被綠了捣域。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡宴合,死狀恐怖竟宋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情形纺,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布徒欣,位于F島的核電站逐样,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏打肝。R本人自食惡果不足惜脂新,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粗梭。 院中可真熱鬧争便,春花似錦、人聲如沸断医。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至斩启,卻和暖如春序调,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兔簇。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工发绢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垄琐。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓边酒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親狸窘。 傳聞我的和親對象是個殘疾皇子墩朦,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345