文章目录
- 前言
- 一、Arthas是什么?
- 二、快速入门
- 1.下载
- 2.如何运行
- 三、常用命令
- 1.dashboard
- 2.trace
- 总结
前言
最近公司项目版本迭代升级,在开发新需求导致没什么时间写博客。
在开发需求的过程中,我写了一个接口,去批量调内部已经写好的接口遇到了几个问题,一是fegion远程调用的问题,二是这个接口最大批量次数限制下去跑这个接口,竟然耗时25-30秒,就要去分析是哪个方法耗时这么久,于是便学会去使用arthas这个工具。
参考arthas在线文档,这个文档其实写的很详细,本文主要讲讲怎么入门,以及常用的几个命令。
一、Arthas是什么?
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到 JVM 的实时运行状态?
- 怎么快速定位应用的热点,生成火焰图?
- 怎样直接从 JVM 内查找某个类的实例?
二、快速入门
1.下载
首先去上文的在线文档中下载,打开目录如下图:
我们可以用两种方式启动,分别是运行下面的as.sh脚本,或者java -jar arthas-boot.jar这个jar包启动,我在windows环境下进行演示,就用后面这种方式启动,前提是你已经配置Java的环境变量。
2.如何运行
- 先在本地启动一个项目,要一直运行的,我就先启动一个springboot项目。
2.进入刚刚下载的arthas目录,cmd打开,运行java -jar arthas-boot.jar
3.我们输入4去连接监听我们刚刚启动的项目,出现下面界面表示运行成功:
三、常用命令
1.dashboard
当前系统的实时数据面板
2.trace
方法内部调用路径,并输出方法路径上的每个节点上耗时。
比如我想要知道我当前这个controller里get方法的耗时,如下图:
在arthas面板输入下面这个命令,trace com.example.reflect.controller.TestController get,表示当前正在监听这个方法,如下图:
我们就去浏览器上调用一下这个方法,就会有数据展示:
arthas就会分析这个方法
这个命令非常有用,还有很多用法,大家可以去在线文档查看。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了arthas的使用,而arthas提供了大量能使我们快速便捷排查线上问题的方法。
学习记录,不断沉淀,终究会成为一个优秀的程序员,加油!