美文网首页
Arthas简单使用

Arthas简单使用

作者: Lolipiza | 来源:发表于2021-06-13 11:21 被阅读0次

起因是线上环境有个问题,但是方法又没有打印日志这就很头痛了,又不可能直接发个版本上线,查询了相关资料以后,发现Arthas可以简便的达到目的。

arthas的使用方法有很多:
方法一.无需在客户端做任何操作,只需要在服务器上现场下载arthas并使用

// 下载并启动
curl -O https://arthas.aliyun.com/arthas-boot.jar
(或wget https://......)
java -jar arthas-boot.jar

方法二.arthas安装到基础镜像

RUN if $MIRROR; then MAVEN_HOST=${MIRROR_MAVEN_HOST} ;ALPINE_HOST=${MIRROR_ALPINE_HOST} ; sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_HOST}/g" /etc/apk/repositories ; fi && \
    # https://github.com/docker-library/openjdk/issues/76
    apk add --no-cache tini && \ 
    # download & install arthas
    wget -qO /tmp/arthas.zip "${MAVEN_HOST}/com/taobao/arthas/arthas-packaging/${ARTHAS_VERSION}/arthas-packaging-${ARTHAS_VERSION}-bin.zip" && \
    mkdir -p /opt/arthas && \
    unzip /tmp/arthas.zip -d /opt/arthas && \
    rm /tmp/arthas.zip

ENTRYPOINT ["/sbin/tini", "--", "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

方法三.在业务模块集成arthas

// 在pom加入依赖
 <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-spring-boot-starter</artifactId>
            <version>${arthas.version}</version>
        </dependency>

配置yml:

arthas:
 # 通过http访问的端口
  http-port: 8563
  # 通过telnet访问的端口
  telnet-port: 3658
  session-timeout: 1800
  # 绑定的ip
  ip: 0.0.0.0

如果配置 arthas.telnetPort为 -1 ,则不监听 telnet端口。如果配置 arthas.telnetPort为 0 ,则随机telnet端口。arthas.httpPort类似
通过http访问:localhost:8563


使用:

// 输入需要查看的方法以及入参:
watch com.cmcc.hui.tv.service.display.impl.DisplayServiceImpl frame "target"
此时用户调用接口,arthas日志就会打印出调用这个方法的入参

使用 ctrl+C退出watch功能

其他具体功能见arthas官网:https://alibaba.github.io/arthas/

参考:https://www.cnblogs.com/linyb-geek/p/14756092.html

原理:
ASM是一个Java字节码操作框架,用来动态生成class或者增强class,cglib的底层就是它,arthas也是通过它实现对class的增强的;Arthas增强功能的核心是Enhancer和AdviceWeaver这两个类,对方法进行Aop织入,达到watch,trace等效果
https://zhuanlan.zhihu.com/p/115127052


后续:因为之前在业务pod上使用javaagent的方式运行skywalking,我直接在业务上运行arthas就报错了,但不是一定会报错,猜想可能是和SW代理了同一个方法导致出现问题,待研究

相关文章

  • Arthas简单使用

    一、启动arthas命令 然后选择进程 enter进入 二、查询方法 三、查询类 如果不存在先触发该方法 四、监控...

  • Arthas简单使用

    起因是线上环境有个问题,但是方法又没有打印日志这就很头痛了,又不可能直接发个版本上线,查询了相关资料以后,发现Ar...

  • 如何使用Arthas提高日常开发效率?

    Arthas有什么功能,怎么用,请看:Arthas使用手册[https://arthas.aliyun.com/d...

  • Arthas-Java排查神器使用

    推荐使用arthas-boot.jar方式 1、下载及安装 arthas-boot是Arthas的启动程序,它启动...

  • arthas源码分析

    arthas简介 arthas 是Alibaba开源的Java诊断工具,基于jvm Agent方式,使用Instr...

  • 排查线上CPU飙高

    1、本案例的排查过程使用的阿里开源的Arthas工具进行的,不使用arthas,使用JDK自带的命令也是可以。 2...

  • 超好用的自带火焰图的 Java 性能分析工具 Async-pro

    最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用 async-profiler 生成 C...

  • Arthas使用

    下载arthas-boot.jar: 然后用java -jar的方式启动: 选择一个pid进入(如1): 通过th...

  • Arthas使用

    1、写作背景 在此记录,以备遗忘 2、核心操作 2.1、Arthas安装 linux安装 wget https:/...

  • Arthas使用

    Authas — 开源的java诊断工具 下载安装 authas是一个jar包,可以直接下载后运行 就可以启动起来...

网友评论

      本文标题:Arthas简单使用

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