• arthas-线上排查问题工具


    在线上环境无法通过jprofile监控服务时,我们可以通过arthas来实现监控和使用:
    在这里插入图片描述

    使用

    1、首先要在目标服务器上下载arthas包:

    # 下载:
    wget https://arthas.aliyun.com/arthas-boot.jar
    # 启动:
    java -jar arthas-boot.jar
    
    • 1
    • 2
    • 3
    • 4

    2、随后arthas会打印出当前服务器上的java进程供我们选择,此时我们只需要选择1 回车即可进入到此进程的交互界面
    在这里插入图片描述

    3、输入交互式命令,这里提几个常用的交互式命令:
    3.1、bashboard 命令
    在这里插入图片描述
    在这里插入图片描述

    3.2、help命令
    可以查看arthas所有命令
    在这里插入图片描述

    3.3、tab
    通过tab可以补齐所有命令

    3.4、thread命令
    在这里插入图片描述
    在这里插入图片描述

    3.5、sc
    当我们想看看包里是否有我们新加的class时可以使用此命令
    在这里插入图片描述

    3.6、jad
    当我们想看看改的代码是否生效时,可以用jad反编译后对比
    在这里插入图片描述

    3.7、watch
    这个命令最常用,可以用来查看一个函数调用情况
    在这里插入图片描述
    在这里插入图片描述

    watch在排查函数的入参和输出以及变量十分好用,这里需要着重讲一下:
    watch有观察表达式,默认是{params, target, returnObj},函数的入参、该类的成员变量、函数的返回值

    在这里插入图片描述
    在这里插入图片描述

    这里我们举例说明一下:以pentagon项目为例
    在这里插入图片描述
    在这里插入图片描述

    如上图片显示,我们发现得到的信息并不理想,这是因为我们默认打印的是第一层,这里就涉及到参数-x
    [x:] 指定输出结果的属性遍历深度,默认为 1
    此时我们将 -x 设置为2 看一下:明显发现打印的更多了,但参数中的数组内容依然没有全部打印

    在这里插入图片描述

    试一下-x 3:可以发现数组内容的参数也全部打印出来,十分方便
    在这里插入图片描述

    我们还可以通过 其他表达式来观察方法调用前和调用后
    在这里插入图片描述
    在这里插入图片描述

    再举一个异常排查案例:可以通过 * 来监控一个类的所有函数
    在这里插入图片描述
    在这里插入图片描述

    3.8、stop退出
    只有stop才是真正退出
    在这里插入图片描述

    3.9、sysprop \ sysenv \ jvm
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    此外,arthas支持pipeline,即管道符
    在这里插入图片描述

    代码热更新案例

    https://blog.csdn.net/qq_35128600/article/details/127772552?spm=1001.2014.3001.5501

    docker中使用arthas

    官网:https://arthas.aliyun.com/doc/docker.html

    在docker中使用arthas有三种方式:
    1、在dockerfile中就已经安装了arthas
    2、通过docker exec -it ca4e68524d42 /bin/bash -c “wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar” 这种命令进入到容器中现安装
    3、dockerfile里面的服务的jar包本身的maven依赖中就有arthas,直接就可以监控当前服务!
    在这里插入图片描述

    微服务中使用arthas

    主要是通过maven将arthas依赖进工程中,这样在服务启动时就可以自动监控服务
    官网:https://arthas.aliyun.com/doc/spring-boot-starter.html

    Arthas Tunnel

    官网:https://arthas.aliyun.com/doc/tunnel.html
    arthas还支持多服务注册到arthas中心统一管理,采用B/S架构。
    在这里插入图片描述

    支持火焰图

    官网:https://arthas.aliyun.com/doc/profiler.html
    在这里插入图片描述

  • 相关阅读:
    【Leetcode】 1013. 将数组分成和相等的三个部分
    low alpha solder paste reduce soft rate of microelectronics packaging?
    C语言经典基础题目100题
    SQL必知会(二)-SQL查询篇(1)-检索数据
    Unity 动画知识点
    板材的Dk和Df测试方法概述
    jmeter分布式压力测试搭建
    两点云求差集和交集
    Win11系统怎么设置默认浏览器教学
    Error:(3, 32) java: 程序包org.springframework.boot不存在
  • 原文地址:https://blog.csdn.net/qq_35128600/article/details/127789712