1. 一句话
Arthas是阿里开源的java诊断工具,在阿里系开源榜单中排前三(Ant,Arthas,Druid)。0624跟学了下其官网的教程✨地址‘
🔴一些感悟:
- 基于JVM的命令行方式诊断,在查看系统环境方面有用。
- 命令复杂,查找学习有些曲线压力。
- 整体感觉可用性一般(也许第一次接触)。
🟡 一些借鉴:
- 命令行的布局样式方面,可用在web上
- PPT-TXT
1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
5.是否有一个全局视角来查看系统的运行状况?
6.有什么办法可以监控到JVM的实时运行状态?
7.怎么快速定位应用的热点,生成火焰图?
8.怎样直接从JVM内查找某个类的实例?
个人对第3.4.7感兴趣。
2.学习笔记
2.1 基础教程
- 安装、启动、退出
-
Dashboard, 这里我们其实希望看到的是业务系统,而非部署环境的实时数据面板
界面值得PPT - Tread
- JVM加载类-Sc
- 反编译代码-Jad
- [函数级]的参数/返回值/异常信息-Watch
- 内存对象-Vmtool
🔴一些感悟: 基础级教程,意义不大
2.2 进阶教程
- JVM信息查看,涉及更多细节 sysprop,sysenv,jvm等
- 控制台的一些便利,自动补全之类
- 查看已加载的类,实际使用不大
- 反编译-jad
- 动态执行代码-ognl, 这个有参考
- 排查函数异常,日志就可以做到
- 更新热代码,比如更新日志等级,这个亮眼但要谨慎
- tt即 TimeTunnel,它可以记录下指定方法每次调用的入参和返回信息,可以查看接口的调用情况
- 排查调用栈、servlet函数、classloader的加载类, 意义不大
- 查找top N的线程
🔴一些感悟: 除了第5条、7条亮眼些,其他的意义不大,第五条无非再触发下接口调用罢了,第7条比较谨慎。
网友评论