Java集成arthas

2023-04-13  本文已影响0人  阿畅00000

线上监控诊断利器 Arthas:

  近期订单数据大量增加,客户反馈导出功能很慢,但在测试环境又没办法模拟,这时候想到了arthas实施线上监控,分析需要优化代码。导出功能主要涉及大sql查询,数据循环封装,excel生成,minio文件存储等步骤,arthas查看每个过程所用耗时。

  下文参考官网:https://arthas.aliyun.com/doc/ 集成。

第一步:部署arthas-tunnel-server.jar。

Arthas tunnel server 是一个 spring boot jar 应用,直接java -jar启动:

nohup java -jar arthas-tunnel-server-3.6.6-fatjar.jar > server.out &

默认情况下,arthas tunnel server 的web 端口是8080,arthas agent 连接的端口是7777。启动之后,可以访问 http://127.0.0.1:8080/,再通过agentId连接到已注册的 arthas agent 上。

通过 Spring Boot 的 Endpoint,可以查看到具体的连接信息:http://127.0.0.1:8080/actuator/arthas ,登陆用户名是arthas,密码在 arthas tunnel server 的日志里可以找到,比如:

arthas-1.png

看到这个就算成功了:


arthas-2.png

第二步:pom.xml 添加

<!--集成Java诊断利器Arthas-->
<dependency>
  <groupId>com.taobao.arthas</groupId>
  <artifactId>arthas-spring-boot-starter</artifactId>
  <version>3.6.1</version>
</dependency>

第三步:application.properties 配置 tunnel server 实现远程管理

arthas.agent-id= mall-tiny-arthas
arthas.tunnel-server= ws://43.139.*.*:7777/ws

官网上还有一种使用方式,这种方式主要适用于非SpingBoot应用

<dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-agent-attach</artifactId>
            <version>${arthas.version}</version>
        </dependency>
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-packaging</artifactId>
            <version>${arthas.version}</version>
        </dependency>
import com.taobao.arthas.agent.attach.ArthasAgent;

public class ArthasAttachExample {
    public static void main(String[] args) {
        ArthasAgent.attach();
    }
}

也可以配置属性:

    HashMap<String, String> configMap = new HashMap<String, String>();
    configMap.put("arthas.appName", "demo");
    configMap.put("arthas.tunnelServer", "ws://127.0.0.1:7777/ws");
    ArthasAgent.attach(configMap);

下面开始进入Arthas.

上一篇下一篇

猜你喜欢

热点阅读