arthas使用

前言

arthas是线上调试产品,可以通过该工具,查看业务的问题,比如入参、出参以及监控等问题

arthas使用

arthas下载

可以通过该地址下载arthas

arduino 复制代码
https://arthas.aliyun.com/doc/

arthas使用

解压之后,文件夹下的东西为

arthas启动

直接通过该命令启动arthas

复制代码
java -jar arthas-boot.jar

如果是容器的话,可以将该文件夹复制到容器里面启动,或者打包镜像的话,将文件一起打包到镜像中,

bash 复制代码
docker cp arthas文件夹路径 容器id:/home/arthas

arthas使用

启动之后,会输出java进程

想进入哪个进程,就输入对应的数字,然后回车就行,输出结果为

arthas命令行

dashboard

可以使用该命令查看实时数据面板

watch查看入参和出参
arduino 复制代码
watch com.example.UserService getUser "{params, returnObj}" -x 2

在 Arthas 中,查看方法参数最常用的是 watch 命令。以下是几种核心用法:

1. 基础用法:查看入参和返回值

bash

编辑

arduino 复制代码
1watch com.example.UserService getUser "{params, returnObj}" -x 2
  • params:方法入参数组
  • returnObj:返回值
  • -x 2:关键参数,指定对象展开层级(默认1层,建议设为2-3以查看嵌套对象内容)

2. 只查看入参

bash

编辑

arduino 复制代码
1watch com.example.UserService getUser "{params}" -x 3

3. 按条件过滤参数

bash

编辑

bash 复制代码
1# 仅当第一个参数等于指定值时输出
2watch com.example.UserService getUser "{params, returnObj}" "params[0]=='admin'" -x 2
3
4# 仅当参数数量大于2时输出
5watch com.example.UserService getUser "{params}" "params.length>2" -x 2

4. 同时查看入参、返回值、异常和调用者

bash

编辑

arduino 复制代码
1watch com.example.UserService getUser "{params, returnObj, throwExp, target}" -x 2 -e -s
  • -e:仅在方法抛出异常后触发
  • -s:仅在方法成功返回后触发
  • target:当前对象实例(可访问成员变量)
  • throwExp:异常对象

5. 使用 tt 命令记录并回放参数

适合需要事后分析的场景:

bash

编辑

yaml 复制代码
1# 记录方法调用
2tt -t com.example.UserService getUser
3
4# 查看所有记录
5tt -l
6
7# 查看某次调用的详细参数(INDEX为记录编号)
8tt -i 1000 -p

⚠️ 注意事项

表格

下载为表格

导出为图片

要点 说明
类名匹配 支持通配符,如 com.example.*Service get*
展开深度 -x 过大可能导致输出过多或OOM,生产环境建议 ≤3
性能影响 watch 有性能开销,排查完毕后及时 stop 或 reset
静态方法 同样适用,target 为 null
重载方法 可通过指定参数类型精确匹配:getUser(String, int)
输入
arduino 复制代码
 watch org.luban.module.base.auth.controller.UserController getUsers "{params, returnObj}" -x 3

输出结果为

总结

arthas还有许多功能可以使用,可以方便线上调试

相关推荐
CV工程师丁Sir27 分钟前
ArkWeb 手记 04|DevTools 调试与缓存清理
java·spring·缓存·harmonyos
在角落发呆7 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
Sarvartha7 小时前
final 关键字
java·开发语言
2601_952047797 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
百度一下吧8 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
数据狐(Datafox)8 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
JeJe同学8 小时前
Docker镜像导入、容器启动
linux·运维·docker
回眸&啤酒鸭8 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
闲云野鹤在人间9 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算