1. 程式人生 > >【開發工具】Arthas使用筆記:1、下載安裝

【開發工具】Arthas使用筆記:1、下載安裝

本文參考官方文件:https://alibaba.github.io/arthas/install-detail.html

如有問題可加入上述文件中的官方QQ/釘釘群

一、安裝(windows)

1、開發命令框,切換到準備安裝的目錄,D:/cloudcore/open_tools/arthas

2、複製下面命令,完成一鍵安裝,並且在該目錄下會生成一個as.sh檔案

curl -L https://alibaba.github.io/arthas/install.sh | sh

3、執行as.sh,./as.sh,Found existing java process, please choose one and hit RETURN.這裡選擇Java程序,輸入2,回車,執行後出現下面的錯誤

[email protected] MINGW64 /d/cloudcore/open_tools/arthas
$ ./as.sh
Arthas script version: 3.0.5.2
[INFO] JAVA_HOME: /c/Java/jdk1.8.0_161
Found existing java process, please choose one and hit RETURN.
* [1]: 21924 org.apache.zookeeper.server.quorum.QuorumPeerMain
  [2]: 25752
[2]
./as.sh: line 626: [2]-1: syntax error: operand expected (error token is "[2]-1")
2
updating version 3.0.5 ...
Download arthas from: https://repo1.maven.org/maven2/com/taobao/arthas/arthas-packaging/3.0.5/arthas-packaging-3.0.5-bin.zip
######################################################################## 100.0%
Archive:  /tmp/temp_3.0.5_22664/arthas-3.0.5-bin.zip
  inflating: /tmp/temp_3.0.5_22664/arthas-spy.jar
  inflating: /tmp/temp_3.0.5_22664/arthas-boot.jar
  inflating: /tmp/temp_3.0.5_22664/arthas-core.jar
  inflating: /tmp/temp_3.0.5_22664/arthas-agent.jar
  inflating: /tmp/temp_3.0.5_22664/arthas-demo.jar
  inflating: /tmp/temp_3.0.5_22664/install-local.sh
  inflating: /tmp/temp_3.0.5_22664/as.sh
  inflating: /tmp/temp_3.0.5_22664/as.bat
  inflating: /tmp/temp_3.0.5_22664/arthas-client.jar
update completed.
Arthas home: /c/Users/liuguangyu/.arthas/lib/3.0.5/arthas
Calculating attach execution time...
Attaching to  using version /c/Users/liuguangyu/.arthas/lib/3.0.5/arthas...
[ERROR] Start arthas failed, exception stack trace:
com.taobao.middleware.cli.InvalidValueException: The value '-target-ip' is not accepted by 'pid'
        at com.taobao.middleware.cli.impl.DefaultCommandLine.create(DefaultCommandLine.java:342)
        at com.taobao.middleware.cli.impl.DefaultCommandLine.getValue(DefaultCommandLine.java:267)
        at com.taobao.middleware.cli.impl.DefaultCommandLine.getOptionValue(DefaultCommandLine.java:91)
        at com.taobao.arthas.core.Arthas.parse(Arthas.java:44)
        at com.taobao.arthas.core.Arthas.<init>(Arthas.java:25)
        at com.taobao.arthas.core.Arthas.main(Arthas.java:99)
Caused by: java.lang.IllegalArgumentException: java.lang.NumberFormatException: For input string: "-target-ip"
        at com.taobao.middleware.cli.converters.ConstructorBasedConverter.fromString(ConstructorBasedConverter.java:70)
        at com.taobao.middleware.cli.converters.Converters.create(Converters.java:52)
        at com.taobao.middleware.cli.impl.DefaultCommandLine.create(DefaultCommandLine.java:339)
        ... 5 more
Caused by: java.lang.NumberFormatException: For input string: "-target-ip"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:580)
        at java.lang.Integer.<init>(Integer.java:867)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.taobao.middleware.cli.converters.ConstructorBasedConverter.fromString(ConstructorBasedConverter.java:67)
        ... 7 more

real    0m1.425s
user    0m0.015s
sys     0m0.015s
attach to target jvm () failed, check /c/Users/liuguangyu/logs/arthas/arthas.log or stderr of target jvm for any exceptions.

然後我把我開的zookeeper程序給關了,再次執行./as.sh,執行成功。

[email protected] MINGW64 /d/cloudcore/open_tools/arthas
$ ./as.sh
Arthas script version: 3.0.5.2
[INFO] JAVA_HOME: /c/Java/jdk1.8.0_161
Found existing java process, please choose one and hit RETURN.
* [1]: 25752

Arthas home: /c/Users/liuguangyu/.arthas/lib/3.0.5/arthas
Calculating attach execution time...
Attaching to 25752 using version /c/Users/liuguangyu/.arthas/lib/3.0.5/arthas...
1
real    0m13.995s
user    0m0.000s
sys     0m0.061s
Attach success.
It seems that current bash is under Windows. /c/WINDOWS/system32/telnet can not run under bash.
Please start cmd.exe from Windows start menu, and then run telnet 127.0.0.1 3658 to connect to target process.
Or visit http://127.0.0.1:8563 to connect to target process.

4、在瀏覽器中輸入http://localhost:8563/  測試一下

點選Connect,出現一下頁面

或者使用命令列進入:win+R—>cmd—>telnet 127.0.0.1 3658,同樣可以出現上面的arthas語境

5、在本機上準備一個測試類,隨便找了一個,並執行

public class TestArthas {
	public static void main(String[] args) throws Exception {
            int i = 0;
            while(true) {
		i += 1;
		System.err.println(i);
		Thread.sleep(2000);
	    }		
	}
}

二、命令列表

Arthas的基礎命令:

  • help——檢視命令幫助資訊
  • cls——清空當前螢幕區域
  • session——檢視當前會話的資訊
  • reset——重置增強類,將被 Arthas 增強過的類全部還原,Arthas 服務端關閉時會重置所有增強過的類
  • version——輸出當前目標 Java 程序所載入的 Arthas 版本號
  • history——列印命令歷史
  • quit——退出當前 Arthas 客戶端,其他 Arthas 客戶端不受影響
  • shutdown——關閉 Arthas 服務端,所有 Arthas 客戶端全部退出
  • keymap——Arthas快捷鍵列表及自定義快捷鍵

再次貼出官方文件:https://alibaba.github.io/arthas/install-detail.html