美文网首页
Java集成arthas

Java集成arthas

作者: 阿畅00000 | 来源:发表于2023-04-13 15:57 被阅读0次

    线上监控诊断利器 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.

    相关文章

      网友评论

          本文标题:Java集成arthas

          本文链接:https://www.haomeiwen.com/subject/nseaddtx.html