最近想自己写一个服务端诊断程序,主要感觉好多东西记不住,记了又忘,把知识转化为程序积累起来
简单的设想是 分两块
然而这块知识匮乏,无从下手~在某某全球最大的同人网站上 搜索了一下关键字 “moniter/诊断程序" 发现一些比较好的项目:如下
arthas 中文名- 阿尔萨斯 洋气
arthas 使用文档 - 写的非常详细
有配套 IDE 的插件
Cloud Toolkit
官方截图:
看到这里感觉有必要花点时间学习一下:
安装完插件
curl -O https://arthas.gitee.io/arthas-boot.jar
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
简单写了一个特 low 的 main 方法,运行自己的程序
输入【4 回车】Attach 完,漂亮的 logo
可以在本地访问 127.0.0.1:3658 打开页面,应该可以方便远程调试
通过 thread 命令来获取 进程的 main class
jar 反编译 class 看一下我那堆贼 low 的代码
watch 看一下 函数返回值;没写函数(这个应该问题也不大)
包路径.类名 # 函数
5.jvm 信息
6.thread 信息
7.类方法
8.当前应用 cpu 火焰图采样
查看
9.执行异步任务(同时干多个事情)
&
转后台执行>
输出结果到制定文件还有很多,官方文档写的很详细~(好吧,仓促吧啦吧啦介绍完后,还需要实操去体会),有兴趣的小伙伴可以花时间体会一下