本文主要介绍在本地搭建arthas服务端环境以及如何在springboot项目中进行接入集成。
arthas官方文档:arthas.aliyun.com/
操作流程
- 下载arthas服务端的jar包,这里以3.7.1版本为例:github.com/alibaba/art…
2. 下载后直接以java -jar命令启动即可。启动成功如下所示:
3.浏览器中输入http://localhost:8080/ 能正常打开则说明服务端部署完成。
4.在springboot项目中引入arthas客户端的包,这里使用的是3.7.1版本
<dependency>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-spring-boot-starter</artifactId>
<version>3.7.1</version>
</dependency>
5.增加客户端配置
| 变量名 | 变量描述 | 示例 |
|---|---|---|
| arthas.agent-id | 客户端唯一ID,重复时会覆盖 | 这里推荐用应用名+IP进行生成方便维护,如:{spring.cloud.client.ip-address} |
| arthas.app-name | 客户端应用名 | xxx-service |
| arthas.password | 客户端访问密码 | |
| arthas.tunnel-server | arthas服务端地址 | 格式:ws://127.0.0.1:7777/ws |
6.在服务端进行连接,agentId输入需要连接的应用的agent-id,连接成功如下:
7.连接成功以后 即可输入对应的命令进行操作,下面推荐几个常用的命名: dashboard 命令可以展示当前应用示例的线程、cpu、内存(各个内存分区使用)等使用情况,如下图:
watch 命令可以对方法的输入和输入参数进行打印观察,如下
trace 命令对接口整个链路各个方法的耗时进行跟踪打印:
集成时遇到问题说明:
集成过程中在本地环境启动没问题,发布至服务器运行时出现agent无法创建的问题
这里主要是由于jdk版本问题导致的
本地使用的是:Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)
而服务端使用的是:OpenJDK Runtime Environment (build 1.8.0_111-internal-alpine-r0-b14)
后来将jdk版本改为:OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition 8.15.16) (build 25.372-b01, mixed mode)就解决了