Arthas诊断工具(三)监控命令

一、monitor:对匹配的类、方法、表达式的调用进行监控,统计总调用、成功、失败、平台响应时间、失败率数据。命令参数

class-pattern类名表达式匹配
	method-pattern方法名表达式匹配
	condition-express条件表达式(格式:“params[0] <= 2”)
	-n指定执行次数限制,根据执行时间过滤:'#cost>5'

基于监控数据可以初步判断当前方法在指定周期内的运行状态:调用量、平均响应时间、调用失败率,初步判断方法是否存在调用异常情况,配合stack、watch、trace、tt命令进一步诊断详细问题 。

二、watch

三、stack

四、trace:追踪方法链路并输出方法路径上的每个节点上耗时,对于耗时最长的代码行会标红。

1、在日志不足的情况下可以查看方法调用的链路,执行了哪些代码行(java文件均可分析),在哪个步骤返回;如:

再如下面一个方法在异步线程中调用,且日志没有捕获异常,查看日志发现代码行不继续往下走, 而分析不出来具体原因,通过arthas追踪如下:

  2、可以用作性能分析。

如:

五、tt:方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。

1、

-i: 指定特定index,查看详细信息
-t: 表明希望记录下类*Test的print方法的每次执行情况。
-n: 指定需要记录的次数,当达到记录次数时Arthas会主动中断tt命令的记录过程,避免人工操作无法停止的情况。
-p: 重做一次调用(replay-times指定调用次数,replay-interval指定多次调用间隔)
-w: 观察时空隧道使用ognl 表达式。使用表达式核心变量中所有变量作为已知条件编写表达式

2、

INDEX    时间片段记录编号,每一个编号代表着一次调用,后续tt还有很多命令都是基于此编号指定记录操作,非常重要
TIMESTAMP    方法执行的本机时间,记录了这个时间片段所发生的本机时间
COST(ms)    方法执行的耗时
IS-RET    方法是否以正常返回的形式结束
IS-EXP    方法是否以抛异常的形式结束
OBJECT    执行对象的hashCode(),注意,曾经有人误认为是对象在JVM中的内存地址,但很遗憾他不是。但他能帮助你简单的标记当前执行方法的类实体
CLASS    执行的类名
METHOD    执行的方法名
3、举例:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值