Java开源诊断工具 Arthas 发布v3.1.0
Arthas
Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可。此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。
在线教程
在新版本Arthas里,增加了在线教程,用户可以在线运行Demo,一步步学习Arthas的各种用法,推荐新手尝试:
Arthas基础教程
Arthas进阶教程
非常欢迎大家来完善这些教程。
增加内存编译器支持,在线编辑热更新代码
3.1.0版本里新增命令mc,不是方块游戏mc,而是Memory Compiler。
在之前版本里,增加了redefine命令,可以热更新字节码。但是有个不方便的地方:需要把.class文件上传到服务器上。
在3.1.0版本里,结合jad/mc/redefine 可以完美实现热更新代码。
以 Arthas在线教程 里的UserController为例:
使用jad反编译代码
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
使用vim编译代码
当 user id 小于1时,也正常返回,不抛出异常:
@GetMapping("/user/{id}")
public User findUserById(@PathVariable Integer id) {logger.info("id: {}" , id);if (id != null && id < 1) {return new User(id, "name" + id);// throw new IllegalArgumentException("id < 1");} else {return new User(id, "name" + id);}
}
使用mc命令编译修改后的UserController.java
$ mc /tmp/UserController.java -d /tmp
Memory compiler output:
/tmp/com/example/demo/arthas/user/UserController.class
Affect(row-cnt:1) cost in 346 ms
使用redefine命令,因为可以热更新代码
$ redefine /tmp/com/example/demo/arthas/user/UserController.class
redefine success, size: 1
丝滑的自动补全
在新版本里,改进了很多命令的自动补全,比如 watch/trace/tt/monitor/stack等。
下面是watch命令的第一个Tab补全结果,用户可以很方便的一步步补全类名,函数名:
$ watch
com. sun. javax. ch. io. demo. jdk. org. java.
另外,新增加了 jad/sc/sm/redefine 等命令的自动补全支持,多按Tab有惊喜。
新版本的Web console
新版本的Web Console切换到了xtermd.js,更好地支持现代浏览器。
支持Ctrl + C复制
支持全屏
web console
Docker镜像支持
Arthas支持Docker镜像了
用户可以很方便地诊断Docker/k8s里的Java进程
也可以很方便地把Arthas加到自己的基础镜像里
参考: https://alibaba.github.io/art...
重定向重新设计
之前的版本里,Arthas的重定向是会放到一个~/logs/arthas-cache/目录里,违反直觉。
在新版本里,重定向和Linux下面的一致,>/>>的行为也和Linux下一致。
并且,增加了 cat/pwd命令,可以配置使用。
总结
总之,3.1.0版本的Arthas带了非常多的新功能,改进了很多的用户体验,欢迎大家使用反馈。
Arthas在线教程可以学到很多技巧
jad/mc/redefine 一条龙非常强大
丝滑的自动补全值得尝试
新版本的Web console有惊奇
Release Note: https://github.com/alibaba/ar...
本文作者:
断岭,社区ID hengyunabc,阿里巴巴技术专家,目前主要负责 Arthas 开源项目的开发和社区维护。
Java开源诊断工具 Arthas 发布v3.1.0相关推荐
- arthas 查看哪个方法调用最耗时_Java开源诊断工具Arthas使用方法详解
一.前言 1.热更新代码的场景 (1)当线上服务器出现问题时,有些时候现有的手段不足以发现问题所在,可能需要追加打印日志或者增加一些调试代码,如果我们去改代码重新部署,会破坏问题现场,可以通过热部署的 ...
- 阿里巴巴 Java性能诊断工具Arthas
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参.异常,监测方法执行耗时 ...
- 阿里开源的Java诊断工具——Arthas
文章目录 1 问题背景 2 前言 3 Arthas有什么作用 4 入门小实践 5 SpringBoot应用.Arthas.Arthas Tunnel Server之间的关系 1 问题背景 线上生产环境 ...
- Java诊断工具-Arthas入门与实践
Java诊断工具-Arthas入门与实践 目录 Java诊断工具-Arthas入门与实践 什么是Arthas? Arthas能做什么? 我在哪里可以下载Arthas? 快速入门 1. 下载并运行mat ...
- 阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用
阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用 一.arthas 上篇文章我们借助arthas监测线上系统的运行信息.排查程序运行缓慢问题,尽管这样已经非常好了,但是还是会 ...
- Java-JVM诊断工具Arthas
Java-JVM诊断工具Arthas https://arthas.aliyun.com/doc/ 官网 介绍 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似 ...
- java应用诊断工具-Cubic v1.3.0
简介: Cubic是一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力.Cubic的目标是一站式java应用诊断解决方案,让开发人员无需登录机器或修改系统,就可以从日志.内 ...
- Java应用诊断工具】「BTrace」基本概念和原理的介绍(1)
Java应用诊断工具]「BTrace」基本概念和原理的介绍(1) 系列文章 「BTrace」基本概念和初步介绍(1) 「BTrace」安装介绍和使用原理(2)- 未完成 「BTrace」实战代码进行调 ...
- 程序员必知的8个Java开源IDE工具!你最钟意哪个?
出色的Java工具有助于提高工作效率.Java IDE 工具提供了多种用户独特需求和个人偏好来创建编程环境的方法. 今天,播妞给大家分享8个程序员最爱的Java开源IDE工具,没有用过的小伙伴,快快收 ...
最新文章
- 职场宝典:63种能力让你职场步步高升
- Pycharm安装PyQT5调用QTDesigner
- PHP常用正则:手机 邮箱 网址
- Flash务实主义(五)——AS3的垃圾回收(转)
- js 控制 获取 dropdownlist的值
- 【Elasticsearch】Elasticsearch 查询过程中的 pre-filter 原理
- c语言回调函数构架程序,c语言函数回调函数回调
- 转换一个字符串的编码消除乱码
- 2019 序列号_苹果序列号知识扫盲:iPhone序列号含义与查询真伪全攻略
- VMWare共享文件夹的使用
- WordPress使用腾讯云CDN配置如何实现https访问?
- androd欢迎页播放视频和广告页面
- php insertrow,table insertRow、deleteRow定义和用法总结_javascript技巧
- 使用math.sin时报错only size-1 arrays can be converted to Python scalar
- 人工智能轨道交通行业周刊-第43期(2023.4.24-5.7)
- 涤纶电容的作用原理及优点缺点
- 苹果收购增强现实初创公司Metaio
- VS2017设置DLL和LIB的输出目录
- 谁不想拥有自己的博客网站?
- 这破烂乡镇,竟是工业百强镇,中国锁具之都
热门文章
- [Java 并发编程实战] 设计线程安全的类的三个方式(含代码)
- codeforces VK Cup 2018 - Wild-card Round 1 (unofficial unrated mirror)
- VS2013找不到winres.h的解决办法
- PHP笔记 ---关于web应用的安全性问题
- 【软件使用】Windows下的Objective-C集成开发环境搭建(IDE)
- Android自动测试之MonkeyRunner之monkeyrunner
- corosync/openais+pacemaker+drbd+web实现高可用群集
- STATISTICS TIME ON
- vlc学习计划(5)--VLC程序宏及线程分析
- 告别ASP.NET操作EXCEL的烦恼