Monitor 监视命令 | 学习笔记

简介: 快速学习 Monitor 监视命令

开发者学堂课程【线上问题排查利器 Alibaba Arthas(下)Monitor 监视命令】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/747/detail/13201


Monitor监视命令


内容介绍:

一、Monitor 监视命令作用

二、参数说明


一、Monitor 监视命令作用

学完类和类加载器之后,下面来学习一些更为核心的命令

本次课程要学习的是 Monitor,中文翻译过来是显示器、监视器的作用,它的作用是用来监视指定类中方法的执行情况。

这个方法要不停的执行,这样我们才能监视得到,在默认的情况下,Monitor 监视的时间是比较长的,默认是120秒监视一次,就是两分钟,每过两分钟监视一次他的情况,所以 Monitor 命令,不同与之前所学的命令,Monitor 是一种非实时返回的命令,非实时返回的意思就是命令输入以后,它不会立刻返回结果,而是要等到目标Java返回信息之后,才会把信息输出来,而且是不断的进行监视,直到用户按Q或者直到用户输入 Ctrl + C 退出来才可以,他现在的使用也是简单的,因为它的语法参数并不多。

作用:对匹配 class - pattern / method - pattern 的类、方法的调用进行监控。

monitor 命令是一个非实时返回命令,实时返回命令是输入之后立即返回

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


二、参数说明

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

class - pattern 类名表达式匹配

method - pattern 方法名表达式匹配

[ E :] 开启正则表达式匹配,默认为通配符匹配

[ c :] 统计周期,默认值为120秒

1.第一个是class - pattern

class - pattern就是类的类名,但是指输入类名也不行,这两个参数都要输,一个是类名,一个是方法的名字,是他匹配的一个方式,一般都是输全名,除了用类名和方法名的方式,也允许采用正则表达式的方式

2.-c的参数

默认情况下,不输出的话,是120秒要等很久,所以如果我们想快速得到监视的结果的话我们要根据情况,适当缩短时间(下面的例子将缩短到5秒),[c:]现在主要作用是cycle of output,cycle就是一个周期的意思,所以c也就翻译成cycle周期。

以下面举例来进行一次操作。

过5秒监控一次,类 demo . MathGame 中primeFactors方法

monitor -c 5 demo. MathGame primeFactors

下面来看一下我们的例子,数学游戏中的一个类,其中的一个方法叫primeFactors,接下来来操作一下,在一边数学游戏运行的情况下,另一边来执行。

image.png

Arthas非常人性化,你输入一个 monitor之后,它会自动补全,按table键补全,然后直接回车的话,什么都不会出来,所以要先给一个类的名字。当你记不清类的名字时,比如说先输入demo,不记得的话按table键,然后它就会自动给你补全,因为这个包里面只有这样一个类。

方法的话,比如说P开头的一个方法,忘记的话,输入一个p按table键,再按table键,就会把所有pri开头的方法列出来,所以说此时打起来就会很方便,再敲一个m键,再按一个table,它也会自动补全,那我现在监视的也就是这个方法,但是你现在如果只按照这个方法回车,监测到这个这个类里边有一个方法,总共花了九毫秒,但是你看到他们没有反应,因为这不是一个实时反应的命令,此时他默认的是120秒,也就是两分钟之后才会有反应。

这时候就要等待,现就先退出来,现在我们带一个参数-c,把它设置上五秒钟,五秒钟接收一次它的返回值,这时候再按回车,就可以看到这五秒钟之后会显示输出一个信息出来,然后再等五秒钟,又会显示输出了一次,再等五秒钟,他又会输出来一次,就是一直以这样的周期。

image.png

上图这个里边的意思是, 第一个参数timestamp是返回的时间,精确到秒,年月日时分秒;第二是 class,表示的是类名;那三个是method,表示的是监视的方法方法名;total,是指总共执行了多少次,调用的次数,如图正好是5次,因为这个程序是每一秒调用一次;  success是指他执行成功的次数,这个里面有异常抛出,生成的数小于二的话,就会抛出来一个异常,一旦抛出一个异常就会被认为执行失败,否则成功的,所以这个里面显示的是执行成功的次数; fail 就是执行失败的次数,就是抛出异常的次数;还有一个 avg. rt ( ms ),以毫秒为单位是指平均执行的时间,指五次里面平均时间是多久;最后一个fail - rate,失败的概率失败率,总共失败了多少次,比如说五次失败三次,失败率就是60%。以上就是监视的情况。

image.png

监控的维度说明:

监控项                   说明

Timestamp                时间截

class                     Java 类

method                   方法(构造方法、普通方法)

total                      调用次数

Success                   成功次数

fail                      失败次数

rt                        平均耗时

fail - rate                  失败率

小结monitor 命令的作用:

用来监视一个时间段中指定方法的执行次数,成功次数,失败次数,耗时等这些信息

相关文章
|
应用服务中间件 Linux
Tomcat不定期close_wait过多
Tomcat不定期close_wait过多
658 0
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
492 1
【插件】IDEA这款插件,爱到无法自拔
|
9月前
|
人工智能 小程序 API
销售易NeoCRM与纷享销客:功能、体验与价格全解析
销售易NeoCRM和纷享销客是国内知名的CRM解决方案,各有特色。销售易功能全面,涵盖销售、客户、营销管理及AI赋能,适合中大型企业;纷享销客则以强大的连接能力和业务协同见长,用户体验佳,性价比高,更适合中小企业。两者在价格、用户体验和适用场景上有所差异,企业应根据自身需求选择合适的CRM系统。
|
数据采集 机器学习/深度学习 Python
【Python】已完美解决:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing
【Python】已完美解决:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing
1116 3
|
10月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
1853 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
存储 前端开发 JavaScript
浅拷贝和深拷贝的区别?
本文首发于微信公众号“前端徐徐”,介绍了JavaScript中浅拷贝和深拷贝的概念及其实现方法。文章首先解释了数据类型的基础,包括原始值和对象的区别,然后详细介绍了浅拷贝和深拷贝的定义、底层逻辑以及常见的实现方式,如 `Object.assign`、扩展运算符、`JSON.stringify` 和手动实现等。最后,通过对比浅拷贝和深拷贝的区别,帮助读者更好地理解和应用这两种拷贝方式。
688 0
浅拷贝和深拷贝的区别?
|
消息中间件 监控 Java
【一键解锁!】Kafka Manager 部署与测试终极指南 —— 从菜鸟到高手的必经之路!
【8月更文挑战第9天】随着大数据技术的发展,Apache Kafka 成为核心组件,用于处理实时数据流。Kafka Manager 提供了简洁的 Web 界面来管理和监控 Kafka 集群。本文介绍部署步骤及示例代码,助您快速上手。首先确认已安装 Java 和 Kafka。
1129 4
|
机器学习/深度学习 人工智能 自然语言处理
【数字人】AIGC技术引领数字人革命:从制作到应用到全景解析
【数字人】AIGC技术引领数字人革命:从制作到应用到全景解析
1264 0
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】骨干网络: SwinTransformer (基于位移窗口的层次化视觉变换器)
YOLO目标检测创新改进与实战案例专栏介绍了YOLO的有效改进,包括使用新型视觉Transformer——Swin Transformer。Swin Transformer解决了Transformer在视觉领域的尺度变化和高分辨率问题,采用分层结构和移位窗口自注意力计算,适用于多种视觉任务,如图像分类、目标检测和语义分割,性能超越先前最佳模型。此外,文章还展示了如何在YOLOv8中引入Swin Transformer,并提供了相关代码实现。
|
编解码 移动开发 前端开发
web canvas系列——快速入门上手绘制二维空间点、线、面
web canvas系列——快速入门上手绘制二维空间点、线、面
536 4