Alibaba 應用診斷利器 Arthas 3.0.5 版本發布:提升全平臺用戶體驗

2021-01-10 開源中國

Arthas從9月份開源以來,受到廣大Java開發者的支持,Github Star數三個月超過6000,非常感謝用戶支持。同時用戶給Arthas提出了很多建議,其中反映最多的是:

Windows平臺用戶體驗不好

Attach的進程和最終連接的進程不一致

某些環境下沒有安裝Telnet,不能連接到Arthas Server

本地啟動,不需要下載遠程(很多公司安全考慮)

下載速度慢(默認從maven central repository下載)

在Arthas 3.0.5版本裡,我們在用戶體驗方面做了很多改進,下面逐一介紹。

全平臺通用的arthas-boot

arthas-boot是新增加的支持全平臺的啟動器,Windows/Mac/Linux下使用體驗一致。下載後,直接java -jar命令啟動:

wget https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar

arthas-boot的功能比以前的as.sh更強大。

比如下載速度比較慢,可以指定阿里雲的鏡像。

java -jar arthas-boot.jar --repo-mirror aliyun --use-http

比如可以通過session-timeout指定超時時間:

java -jar arthas-boot.jar --session-timeout 3600

更多的功能可以通過java -jar arthas-boot.jar -h查看

arthas-boot在attach成功之後,會啟動一個java telent client去連接Arthas Server,用戶沒有安裝telnet的情況下也可以正常使用。

優先使用當前目錄的Arthas

在新版本裡,默認會從arthas-boot.jar和as.sh所在的目錄下查找arthas home,這樣子用戶全量安裝之後,不需要再從遠程下載Arthas。

Attach之前先檢測埠

在之前的版本裡,用戶困擾最多的是,明明選擇了進程A,但是實際連接到的卻是進程B。

原因是之前attach了進程B,沒有執行shutdown,下次再執行時,還是連接到進程B。

在新版本裡,做了改進:

$ java -jar arthas-boot.jar[INFO] Process 1680 already using port 3658[INFO] Process 1680 already using port 8563* [1]: 1680 Demo  [2]: 35542  [3]: 82334 Demo3[ERROR] Target process 82334 is not the process using port 3658, you will connect to an unexpected process.[ERROR] If you still want to attach target process 82334, Try to set a different telnet port by using --telnet-port argument.[ERROR] Or try to shutdown the process 1680 using the telnet port first.

更好的歷史命令匹配功能改進Web Console的體驗

新增sysenv命令

sysenv命令和sysprop類似,可以列印JVM的環境變量。

新增ognl命令

ognl命令提供了單獨執行ognl腳本的功能。可以很方便調用各種代碼。

比如執行多行表達式,賦值給臨時變量,返回一個List:

$ ognl '#value1=@System@getProperty("java.home"), #value2=@System@getProperty("java.runtime.name"), {#value1, #value2}'@ArrayList[    @String[/opt/java/8.0.181-zulu/jre],    @String[OpenJDK Runtime Environment],]

watch命令列印耗時,更方便定位性能瓶頸

之前watch命令只支持列印入參返回值等,新版本同時列印出調用耗時,可以很方便定位性能瓶頸。

$ watch demo.MathGame primeFactors 'params[0]'Press Ctrl+C to abort.Affect(class-cnt:1 , method-cnt:1) cost in 22 ms.ts=2018-11-29 17:53:54; [cost=0.131383ms] result=@Integer[-387929024]ts=2018-11-29 17:53:55; [cost=0.132368ms] result=@Integer[-1318275764]ts=2018-11-29 17:53:56; [cost=0.496598ms] result=@Integer[76446257]ts=2018-11-29 17:53:57; [cost=4.9617ms] result=@Integer[1853966253]

改進類搜索匹配功能,更好支持lambda和內部類

之前的版本裡,在搜索lambda類時,或者反編繹lambda類有可能會失敗。新版本做了修復。比如

$ jad Test$$Lambda$1/1406718218ClassLoader:+-sun.misc.Launcher$AppClassLoader@5c647e05  +-sun.misc.Launcher$ExtClassLoader@3c1491ceLocation:/tmp/classes/* * Decompiled with CFR 0_132. * * Could not load the following classes: *  Test *  Test$$Lambda$1 */import java.lang.invoke.LambdaForm;import java.util.function.Consumer;final class Test$$Lambda$1implements Consumer {    private Test$$Lambda$1() {    }    @LambdaForm.Hidden    public void accept(Object object) {        Test.lambda$0((Integer)((Integer)object));    }}

更好的tab自動補全

改進了很多命令的tab自動補全功能,有停頓時,可以多按tab嘗試下。

Release Note

詳細的Release Note:https://github.com/alibaba/arthas/releases/tag/arthas-all-3.0.5

相關焦點

  • 6到飛起的阿里Java診斷工具Arthas
    遇到問題無法在線上 debug,難道只能通過加日誌再重新發布嗎?線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!是否有一個全局視角來查看系統的運行狀況?有什麼辦法可以監控到JVM的實時運行狀態?
  • 線上問題排查利器Arthas
    生產無小事,一出問題,輕則影響用戶體驗,造成客訴,重則造成公司資損,後果嚴重。當然,上線前如何充分測試,線上出問題之後如何快速止血這些不在本文介紹範圍之內,本文主要介紹如何快速定位問題。線上問題複雜多樣,CPU飆升、RT突增、內存不足、性能下降等等,如何才能在最短時間內定位到問題呢?下面就來安利這款線上問題定位神器:Arthas。
  • Spring Cloud Alibaba 發布 GA 版本,新增 4 個模塊
    267 天,匯集 26 位 contributor 的努力,覆蓋 Spring Cloud Edgware、Spring Cloud Finchley 和 Spring Cloud Greenwich 3 個版本。
  • 阿里Arthas工具在做Java應用診斷上真牛逼!入門教程趕緊學起來!
    ,身邊也有很多同事在使用,因此決定開一個坑,自己從零學習下這個工具的使用,本系列使用的版本是當前最新版 3.4.5。遇到問題無法在線上 debug,難道只能通過加日誌再重新發布嗎?線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!使用 Arthas 需要 JDK 版本在 1.6 以上。
  • 還在為 Arthas 命令頭疼? 來看看這個插件吧!
    一、背景arthas 對於小哥來說,已經不可分割了,在我的日常開發、線上問題排查中扮演了非常重要的角色。作為小開發的我,日常需要排查線上運營同學提的各種bug、各種線上問題診斷、日常運維、線上問題優化等等一堆的問題。在剛剛來公司前期是比較恐懼運維任務的,代碼不熟悉、各種問題比較多...幾乎崩潰的狀。
  • 如何使用Arthas進行JVM取證
    概述Arthas是阿里開源的一款java診斷的工具,主要基於Instrument進行動態代理,以及JVMTI來與JVM進行通信交互。
  • DOClever 5.0 版本重磅發布,全新的 UI 和用戶體驗
    目前DOClever已經發展到了5.0版本,擁有線上用戶1w+,接口數10w+,每天日活200+,成功為滴滴,同程,58等網際網路公司提供了快速接口服務,已經逐漸成長為一個成熟的接口解決方案,而新版本為了打造更好的用戶體驗,前端已經全部做了重構,我們接下來的發展方向是讓DOClever立志成為一個項目中後階段的掌舵手,從項目的接口,文檔,測試三個方面為開發者們提供更強大,更快捷的服務!
  • CAD輔助軟體最新版本的Creo 5.0已發布
    近日,PTC 公司推出了計算機輔助設計(CAD)軟體的最新版本Creo 5.0。最新版本的Creo 5.0,不僅擁有經改進的更加友好用戶界面,最重要的提出了諸多可提高生產力的新功能,包括:傳統功能效率提升、拓撲結構優化設計、面向3D列印的設計、面向模具高速加工、計算流體力學仿真、增強現實設計評審等六大新功能,讓用戶可以在單一設計環境中完成從概念設計到製造的全過程,帶來了極致的機械設計體驗。
  • 會打分的託福學習APP 智課斬託福2.5版本初體驗
    會打分的託福學習APP 智課斬託福2.5版本初體驗時間:2017-08-04 16:29   來源:中國經濟網   責任編輯:青青 川北在線核心提示:原標題:會打分的託福學習APP智課斬託福2.5版本初體驗 隨著生活節奏的加快,英語學習已經不僅限於書本和課堂上,使用手機APP隨時隨地利用碎片化時間提升英語水平,
  • 開言英語以用戶體驗驅動全新升級,5.0版本有哪些亮點?
    為了讓用戶更好的學習英語,開言英語於4月20推出了5.0版本,升級後的開言英語在UI設計、內容設置、學習體驗定製及用戶成長體系等方面均有了顯著提升,所有用戶可在安卓商城以及蘋果App Store進行下載和使用。升級後的開言英語5.0版本也將自己的王牌教學方法——開言英語教學法進一步提升。
  • 百度發布DuMix AR 3.0 三大創新能力開放賦能開發者
    會上不僅面向全球發布了百度大腦、智能小程序、DuerOS、Apollo 開放平臺等最新進展;作為百度 AI 戰略的重要一環,備受開發者和業界關注的百度 AR,也帶來了全新的 DuMix AR 3.0版本。
  • 奈園全新發布雲教育數據平臺5.0版本
    日前,奈園發布了「雲教育數據平臺」5.0版本,共收錄了全國高校的「奈園·雲教育數據平臺」5.0版本在「重點指標」中收錄了「人才頭銜多級菜單導航帶來更快的數據查詢體驗,多種篩選查詢工具幫助用戶便捷查詢歷年的明細數據。
  • 花生殼5.0版正式發布, 底層採用PHTunnel技術
    6月25日,貝銳科技旗下的內網穿透軟體花生殼在萬眾期待中發布5.0正式版。此次更新,花生殼5.0優化了底層程序、頁面交互,還打造了用戶專屬私有雲應用中心。  1.優化底層程序,提升穩定性  此次花生殼5.0版本底層採用了PHTunnel技術,且後續將開放PHTunnel協議,助力中小企業打造IoT生態,這將對想往IoT方向發展但欠缺相對技術的中小型廠商十分有利。
  • 花生殼5.0版正式發布,底層採用PHTunnel技術
    6月25日,貝銳科技旗下的內網穿透軟體花生殼在萬眾期待中發布5.0正式版。此次更新,花生殼5.0優化了底層程序、頁面交互,還打造了用戶專屬私有雲應用中心。與之前的測試版相比,此次更新的版本下架了測試版本中的虛擬化應用功能。
  • 新裡程碑:Cocos2d-x v3.0 正式版本發布!
    相比於去年9月份的Cocos2d-x v3.0-alpha版,正式版本在渲染器、性能、兼容性、穩定性等方面都得到了質的提升,並新增對WinPhone8的支持。首先,Cocos2d-JS統一了使用JS進行開發的開發體驗,將HTML5引擎與JSB的API高度統一起來,新文件目錄結構使HTML5開發和 JSB開發完全共享遊戲代碼,全平臺部署工具也統一了開發後的發布與測試過程,一次開發全平臺運行在Cocos2d-JS上將成為再自然不過的開發體驗。
  • 分布式資料庫使用 Arthas 熱更新 dble-愛可生
    關於 dble 小版本修改代碼的熱更新,主要調研了兩種工具:arthasjrebel使用 arthas 更新小版本時,需要運維人員直接操作變更的 class 文件並修改,需要一套運維規範。在進行小版本升級時,需要控制 dble 的版本號,因此每次熱更新時需要替換 Versions.class 文件維護 dble 的版本號,經測試,發現 jrebel 對靜態類的支持並不友好,實際測試沒有生效,相比較而言 arthas 則可以生效。因此下面主要對 arthas 在 dble 中的使用進行說明。
  • 搜狐打造「國民新聞平臺」:手搜3.0搶先掘金H5
    1月15日,「手機搜狐網3.0版本發布暨Html5技術研討會」在京舉行,包括HTML5夢工廠創始人、白鷺引擎市場副總裁田愛娜,騰訊QQ瀏覽器助理總經理葉駿、W3C中國區負責人李安琪、CSDN總編輯劉江在內的行業專家,就H5技術未來發展趨勢進行了研討
  • 開言英語5.0版本正式上線,全面升級學習體驗
    4月20日,英語在線教育行業知名品牌開言英語正式發布5.0版本,並在安卓市場與蘋果AppStore全面上線該版本。對於此次升級,開言英語團隊稱其為教學內容及產品功能的又一次全面提升,也是開言英語在英語教育賽道上與自己的又一次賽跑。通過本次升級,開言英語的內容豐富度、學習體驗的個性化及進階化進一步加強。
  • 閉環·開放 東方財富Choice金融終端5.0版本震撼發布
    2017年11月27日,東方財富Choice金融終端正式發布5.0版本,標誌著此前專業投資者需要在多平臺反覆切換才能完成的投資閉環,現在通過Choice
  • 搜狐發布手機搜狐網3.0版本
    人民網 北京1月16日電 (曾亮)1月15日,搜狐公司對外發布了「手機搜狐網3.0版本」,這是一款基於H5 技術深度開發的最新版本,搜狐欲藉此發力移動端的布局。 從頁面上看,目前手機搜狐網採用了行業內首創的「首頁+最終頁」模式,在首頁上,以「板塊閱讀」的方式,強化搜狐編輯部推薦內容,滿足用戶對天下大事的獲知需求。