arthas-线上排查问题工具

在线上环境无法通过jprofile监控服务时,我们可以通过arthas来实现监控和使用:
在这里插入图片描述

使用

1、首先要在目标服务器上下载arthas包:

# 下载:
wget https://arthas.aliyun.com/arthas-boot.jar
# 启动:
java -jar arthas-boot.jar

2、随后arthas会打印出当前服务器上的java进程供我们选择,此时我们只需要选择1 回车即可进入到此进程的交互界面
在这里插入图片描述

3、输入交互式命令,这里提几个常用的交互式命令:
3.1、bashboard 命令
在这里插入图片描述
在这里插入图片描述

3.2、help命令
可以查看arthas所有命令
在这里插入图片描述

3.3、tab
通过tab可以补齐所有命令

3.4、thread命令
在这里插入图片描述
在这里插入图片描述

3.5、sc
当我们想看看包里是否有我们新加的class时可以使用此命令
在这里插入图片描述

3.6、jad
当我们想看看改的代码是否生效时,可以用jad反编译后对比
在这里插入图片描述

3.7、watch
这个命令最常用,可以用来查看一个函数调用情况
在这里插入图片描述
在这里插入图片描述

watch在排查函数的入参和输出以及变量十分好用,这里需要着重讲一下:
watch有观察表达式,默认是{params, target, returnObj},函数的入参、该类的成员变量、函数的返回值

在这里插入图片描述
在这里插入图片描述

这里我们举例说明一下:以pentagon项目为例
在这里插入图片描述
在这里插入图片描述

如上图片显示,我们发现得到的信息并不理想,这是因为我们默认打印的是第一层,这里就涉及到参数-x
[x:] 指定输出结果的属性遍历深度,默认为 1
此时我们将 -x 设置为2 看一下:明显发现打印的更多了,但参数中的数组内容依然没有全部打印

在这里插入图片描述

试一下-x 3:可以发现数组内容的参数也全部打印出来,十分方便
在这里插入图片描述

我们还可以通过 其他表达式来观察方法调用前和调用后
在这里插入图片描述
在这里插入图片描述

再举一个异常排查案例:可以通过 * 来监控一个类的所有函数
在这里插入图片描述
在这里插入图片描述

3.8、stop退出
只有stop才是真正退出
在这里插入图片描述

3.9、sysprop \ sysenv \ jvm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此外,arthas支持pipeline,即管道符
在这里插入图片描述

代码热更新案例

https://blog.csdn.net/qq_35128600/article/details/127772552?spm=1001.2014.3001.5501

docker中使用arthas

官网:https://arthas.aliyun.com/doc/docker.html

在docker中使用arthas有三种方式:
1、在dockerfile中就已经安装了arthas
2、通过docker exec -it ca4e68524d42 /bin/bash -c “wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar” 这种命令进入到容器中现安装
3、dockerfile里面的服务的jar包本身的maven依赖中就有arthas,直接就可以监控当前服务!
在这里插入图片描述

微服务中使用arthas

主要是通过maven将arthas依赖进工程中,这样在服务启动时就可以自动监控服务
官网:https://arthas.aliyun.com/doc/spring-boot-starter.html

Arthas Tunnel

官网:https://arthas.aliyun.com/doc/tunnel.html
arthas还支持多服务注册到arthas中心统一管理,采用B/S架构。
在这里插入图片描述

支持火焰图

官网:https://arthas.aliyun.com/doc/profiler.html
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Light Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值