springboot集成arthas

538 阅读2分钟

本文主要介绍在本地搭建arthas服务端环境以及如何在springboot项目中进行接入集成。

arthas官方文档:arthas.aliyun.com/

操作流程

  1. 下载arthas服务端的jar包,这里以3.7.1版本为例:github.com/alibaba/art…

image.png 2. 下载后直接以java -jar命令启动即可。启动成功如下所示:

image.png

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.application.name{spring.application.name}-{spring.cloud.client.ip-address}
arthas.app-name客户端应用名xxx-service
arthas.password客户端访问密码
arthas.tunnel-serverarthas服务端地址格式:ws://127.0.0.1:7777/ws

6.在服务端进行连接,agentId输入需要连接的应用的agent-id,连接成功如下:

image.png

7.连接成功以后 即可输入对应的命令进行操作,下面推荐几个常用的命名: dashboard 命令可以展示当前应用示例的线程、cpu、内存(各个内存分区使用)等使用情况,如下图:

image.png

watch 命令可以对方法的输入和输入参数进行打印观察,如下

image.png

trace 命令对接口整个链路各个方法的耗时进行跟踪打印:

image.png

集成时遇到问题说明:

集成过程中在本地环境启动没问题,发布至服务器运行时出现agent无法创建的问题 image.png 这里主要是由于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)就解决了