Arthas(阿尔萨斯)

Java应用诊断利器

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

官网地址

Arthas官网:https://arthas.aliyun.com/

GitHub:https://github.com/alibaba/arthas

Gitee:https://gitee.com/arthas/arthas

下载全量包:https://arthas.aliyun.com/download/latest_version?mirror=aliyun

启动Arthas

java -jar arthas-boot.jar
java -jar -Dfile.encoding=UTF-8 arthas-boot.jar
java -jar arthas-boot.jar --repo-mirror aliyun --use-http# 输入Java进程序号,按回车help 列出所有命令
sc -h 查看sc命令的参数
pwd 查看Arthas当前目录Web Console地址:http://127.0.0.1:8563/# 命令列表:https://arthas.aliyun.com/doc/commands.html

退出Arthas:quit与stop

quit
退出当前 Arthas 客户端,其他 Arthas 客户端不受影响。等同于exit、logout、q三个指令。
提示:只是退出当前 Arthas 客户端,Arthas 的服务器端并没有关闭,所做的修改也不会被重置。stop
关闭 Arthas 服务端,所有 Arthas 客户端全部退出。
提示:关闭 Arthas 服务器之前,会重置掉所有做过的增强类。但是用 redefine 重加载的类内容不会被重置。

sc、sm 查看JVM已加载的类和方法

# https://arthas.aliyun.com/doc/sc.html
# Search Classes(简称sc)(同时也会打印出这个类的子类)
sc *.JSONObject
sc com.alibaba.fastjson.*
sc *JSON*# 查看某个类来自哪个jar包(code-source)
sc -d com.alibaba.fastjson.JSONObject | grep -E 'class-info|code-source'-d, --details 打印详情
-f, --field 打印字段# Search Method(简称sm)
sm com.alibaba.fastjson.JSONObject
sm -d com.alibaba.fastjson.JSONObject containsKey

watch 方法执行数据观测

# https://arthas.aliyun.com/doc/watch.html
# https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-watch
watch -hwatch '全类名' '方法名' '{params, target, returnObj, throwExp}' '过滤条件' -n 1 -x 3# 输出次数为1
-n 1
# 对象打印层数,为2是可以看到入参的类型和数量
-x 3# 常用参数列表(可使用watch -h查看)
'{params, target, returnObj, throwExp}'
'{params, returnObj.toString()}'
'{params[0], returnObj.toString()}'# 示例
watch com.alibaba.fastjson.JSONObject getInteger -n 1
watch com.alibaba.fastjson.JSONObject getInteger '{params[0], returnObj}' 'params[0].equals("xxx")' -n 3
watch 'com.alibaba.fastjson.JSONObject' 'getInteger' '{params[0], returnObj}' 'params[0].equals("xxx")' -n 3 -x 3

jad 反编译

# https://arthas.aliyun.com/doc/jad.htmljad com.alibaba.fastjson.JSONObject
jad com.alibaba.fastjson.JSONObject containsKey
jad --source-only com.alibaba.fastjson.JSONObject containsKey
jad --source-only com.alibaba.fastjson.JSONObject containsKey --lineNumber falsejad --source-only com.alibaba.fastjson.JSONObject --lineNumber false > 'xxx.java'

tt 方法执行数据的时空隧道

# https://arthas.aliyun.com/doc/tt.html
# https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-tt# TimeTunnel
# 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测# -t 记录(可以通过过滤条件过滤重载的情况)(指定-n数量,防止内存撑满)
tt -t com.alibaba.fastjson.JSONObject containsKey -n 3
tt -t com.alibaba.fastjson.JSONObject containsKey 'params.length==1' -n 3
tt -t com.alibaba.fastjson.JSONObject containsKey 'params[0] instanceof Integer' -n 3# 查看记录的片段
tt -l
tt -s 'method.name=="containsKey"'# 查看某个(使用ognl表达式)
tt -i 1003
tt -i 1003 -w '{params[0], returnObj.toString()}' -x 3

JVM的 环境变量sysenv 与 系统属性sysprop

# https://arthas.aliyun.com/doc/sysenv.html
# 查看当前 JVM 的环境属性(System Environment Variables)
sysenv
# 查看单个环境变量:System.getenv("xxx")
sysenv JAVA_HOME# https://arthas.aliyun.com/doc/sysprop.html
# 查看当前 JVM 的系统属性(System Property)
sysprop
# 查看单个属性:System.getProperty("xxx")
sysprop user.dir
# 修改单个属性(会提示:Successfully changed the system property.)
sysprop user.country CN

表达式核心变量

无论是匹配表达式也好、观察表达式也罢,他们核心判断变量都是围绕着一个 Arthas 中的通用通知对象 Advice 进行。

// https://arthas.aliyun.com/doc/advice-class.html
// Advice的简略代码结构如下:
public class Advice {private final ClassLoader loader;private final Class<?> clazz;private final ArthasMethod method;private final Object target;private final Object[] params;private final Object returnObj;private final Throwable throwExp;private final boolean isBefore;private final boolean isThrow;private final boolean isReturn;// getter/setter
}

作者博客首页:https://blog.csdn.net/qq_43111676?type=blog

欢迎关注,持续更新中…

Arthas(阿尔萨斯)相关推荐

  1. 如何使用监控诊断工具Arthas(阿尔萨斯)

    Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参.异常,监测方法执行耗时 ...

  2. java诊断神器 arthas(阿尔萨斯)

    java诊断神器 arthas(阿尔萨斯) 官网地址:https://arthas.aliyun.com/doc/en/index.html 1.快速开始 1.1.windows版本安装 # 命令行输 ...

  3. Arthas(阿尔萨斯)使用

    Arthas(阿尔萨斯)使用 1.背景 2.Arthas 介绍 3.Arthas 使用场景 4. Arthas 如何使用 4.1 安装 4.2 demo 4.3 启动Arthas 4.4 用artha ...

  4. Arthas - 阿尔萨斯 - 入门使用(Arthas插件)

    很多时候,在线上的问题,我们都不方便去打印日志去看某个方法的入参.反参.异常,那这时候阿尔萨斯就可以很好的解决我们的燃眉之急了,简单使用一下. 安装 一般来说,arthas-boot.jar 这个ja ...

  5. Arthas : 在线分析诊断工具Arthas(阿尔萨斯)

    1.美图 2.背景 想学JDK自带的工具,BTrace然后,同事说这个过时了,但是我不是很相信,因为是JDK自带的工具,他推荐这个,于是我就来看看这个到底是什么东西. Arthas 是Alibaba开 ...

  6. 线上Debug神器--Arthas(阿尔萨斯)

    目录 一.Arthas环境准备 1.概述 2.运行环境要求 3.安装&卸载 二.Arthas命令学习 一.Arthas环境准备 1.概述 Arthas是Alibaba开源的Java诊断工具,深 ...

  7. 阿里重磅开源在线分析诊断工具Arthas(阿尔萨斯)

    github地址: Arthas English version goes here. Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Art ...

  8. 阿里arthas(阿尔萨斯)的linux安装和使用

    快速安装arthas curl -O https://alibaba.github.io/arthas/arthas-boot.jar 启动并监控一个java进程,在此之前先启动一个java程序,使用 ...

  9. 用 Arthas 神器来诊断 HBase 异常进程

    作者 | 介龙平,英文名 leo,码农一枚 [Arthas 官方社区正在举行征文活动,参加即有奖品拿~点击投稿] 1. 异常突起 HBase 集群的某一个 RegionServer 的 CPU 使用率 ...

  10. arthas 查看哪个方法调用最耗时_Arthas实战

    1.是什么?解决什么样的问题? Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决: 这个类从哪个 jar ...

最新文章

  1. golang工程打包不发布
  2. List列表 OrderBy
  3. canvas动画简单操作
  4. pymongo 日期类型
  5. [python] 函数小结
  6. Java之Integer源码
  7. 阿里巴巴为什么选择Apache Flink?
  8. 虚拟化: 物理CPU与VCPU的关系 || 内存上限说起 VMware内存分配初探
  9. 金蝶KIS专业版“登录时出现问题,请重新输入”终极解决全过程
  10. IE疑难杂症之已取消网页导航--该站点安全证书的吊销信息不可用
  11. 十天就能缓解颈椎病的保健操(图)
  12. 教父三部曲观后感总结
  13. 梯度和梯度算子(Roberts,Sobel,Laplace)
  14. android webview aosp com.android.webview
  15. 干货分享:常见的测试类型有哪些?
  16. 面经 | bigo/联影/58同城20校招计算机视觉算法岗
  17. 字节跳动大数据岗位面经(一面、二面、三面、hr面,base南京)
  18. McAfee参与战略合作,i-house.com用区块链整合全球不动产交易市场
  19. MFC设置编辑框字体大小
  20. 服务器列阵卡作用,阵列卡是什么

热门文章

  1. 什么是单色、双基色、三基色 LED 显示屏
  2. 【Opencv实战】一文看懂车牌识别系统全部内容,未来市场前景看好(很赞)
  3. 图片怎么压缩小于1m?
  4. 2022级大学新生-电脑推荐
  5. 二、Linux系统安装
  6. linux一体机如何调整亮度,Linux系统怎样调整屏幕亮度
  7. 产品面经-offer
  8. 51单片机-独立按键控制LED
  9. @小陈同学 ,来啦~
  10. RESTFUL 框架