Arthas monitor(方法执行监控)

@[toc]

二、命令列表

2.3 monitor/watch/trace/stack/tt 相关

使用场景

monitor 命令在 Arthas 中用于监控方法的调用情况,能够实时查看某个方法的执行时间、调用次数、成功率等性能指标。它适用于以下场景:

  1. 性能调优:识别性能瓶颈,找到耗时较长的方法。
  2. 故障排查:监控特定方法的调用,观察异常或错误发生的频率。
  3. 实时分析:动态查看方法调用的趋势,获取运行时的数据。

通过 monitor 命令,可以帮助开发者更好地理解应用的运行状态,从而进行针对性的优化。
注意:

请注意,这些命令,都通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行 stop 或将增强过的类执行 reset 命令。

2.3.1 monitor(方法执行监控)

提示

方法执行监控。

对匹配 class-patternmethod-patterncondition-express的类、方法的调用进行监控。

monitor 命令是一个非实时返回命令.

实时返回命令是输入之后立即返回,而非实时返回的命令,则是不断的等待目标 Java 进程返回信息,直到用户输入 Ctrl+C 为止。

服务端是以任务的形式在后台跑任务,植入的代码随着任务的中止而不会被执行,所以任务关闭后,不会对原有性能产生太大影响,而且原则上,任何 Arthas 命令不会引起原有业务逻辑的改变。

监控的维度说明:

监控项 说明
timestamp 时间戳
class Java 类
method 方法(构造方法、普通方法)
total 调用次数
success 成功次数
fail 失败次数
rt 平均 RT
fail-rate 失败率

参数说明:

方法拥有一个命名参数 [c:],意思是统计周期(cycle of output),拥有一个整型的参数值

参数名称 参数说明
class-pattern 类名表达式匹配
method-pattern 方法名表达式匹配
condition-express 条件表达式
[E] 开启正则表达式匹配,默认为通配符匹配
[c:] 统计周期,默认值为 120 秒
[b] 方法调用之前计算 condition-express
[m <arg>] 指定 Class 最大匹配数量,默认值为 50。长格式为[maxMatch <arg>]
举例1:监控demo.MathGame类,并且每5S更新一次状态。

基础语法: monitor 全路径类名 方法名 -c 秒数

sql 复制代码
$ monitor -c 5 demo.MathGame primeFactors
Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 94 ms.
 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:38  demo.MathGame  primeFactors  5      1        4     1.15        80.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:43  demo.MathGame  primeFactors  5      3        2     42.29       40.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:48  demo.MathGame  primeFactors  5      3        2     67.92       40.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:53  demo.MathGame  primeFactors  5      2        3     0.25        60.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:58  demo.MathGame  primeFactors  1      1        0     0.45        0.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:07:03  demo.MathGame  primeFactors  2      2        0     3182.72     0.00%

本人其他相关文章链接

1.Arthas 全攻略:让调试变得简单 2.Arthas dashboard(当前系统的实时数据面板) 3.Arthas thread(查看当前JVM的线程堆栈信息) 4.Arthas jvm(查看当前JVM的信息) 5.Arthas sysprop(查看和修改JVM的系统属性) 6.Arthas sysenv(查看JVM的环境变量) 7.Arthas vmoption(查看和修改 JVM里诊断相关的option) 8.Arthas getstatic(查看类的静态属性 ) 9.Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能) 10.Arthas logger(查看 logger 信息,更新 logger level) 11.Arthas mbean(查看 Mbean 的信息) 12.Arthas memory(查看 JVM 内存信息) 13.Arthas ognl(执行ognl表达式) 14.Arthas perfcounter(查看当前 JVM 的 Perf Counter 信息) 15.Arthas vmtool(从 jvm 里查询对象,执行 forceGc) 16.Arthas jad(字节码文件反编译成源代码 ) 17.Arthas mc(Memory Compiler/内存编译器 ) 18.Arthas redefine(加载外部的.class文件,redefine到JVM里 ) 19.Arthas classloader (查看 classloader 的继承树,urls,类加载信息) 20.Arthas sc(查看JVM已加载的类信息 ) 21.Arthas sm(查看已加载类的方法信息 ) 22.Arthas monitor(方法执行监控) 23.Arthas stack (输出当前方法被调用的调用路径) 24.Arthas trace (方法内部调用路径,并输出方法路径上的每个节点上耗时) 25.Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测) 26.Arthas watch (方法执行数据观测) 27.Arthas profiler(使用async-profiler对应用采样,生成火焰图)

重要信息

相关推荐
IvorySQL4 分钟前
版本发布| IvorySQL 5.1 发布
数据库·人工智能·postgresql·开源
AI营销资讯站6 分钟前
AI营销内容生产新范式,原圈科技多智能体平台赋能全球化出海新机遇
人工智能
free-elcmacom7 分钟前
机器学习高阶教程<6>推荐系统高阶修炼手册:混排、多任务与在线学习,解锁精准推荐新境界
人工智能·python·学习·算法·机器学习·机器人
yuniko-n7 分钟前
【MySQL】通俗易懂的 MVCC 与事务
数据库·后端·sql·mysql
pingao1413787 分钟前
气象监测新纪元:多功能自动站如何赋能智慧城市
人工智能·智慧城市
独自归家的兔9 分钟前
基于GUI-PLUS 搭配 Java Robot 实现智能桌面操控
java·开发语言·人工智能
我不是小upper11 分钟前
ARIMA-LSTM-Prophet 融合模型在股票预测中的应用
人工智能·rnn·lstm
黑客思维者12 分钟前
机器学习008:监督学习【回归算法】(逻辑回归)--AI世界的“是非判断题大师”
人工智能·学习·机器学习·逻辑回归
今天过得怎么样13 分钟前
彻底搞懂 Spring Boot 中 properties 和 YAML 的区别
后端
1张驰咨询113 分钟前
智慧城市交付困局:用六西格玛培训,将项目毛利从行业平均的12%提升至龙头水平的22%
人工智能·职场和发展·智慧城市·六西格玛