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 命令的作用:

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

相关文章
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
520 1
【插件】IDEA这款插件,爱到无法自拔
|
10月前
|
人工智能 小程序 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
1187 3
|
前端开发 持续交付 UED
模块联邦的适用场景
【10月更文挑战第25天】模块联邦适用于需要实现模块共享、组合、拆分和重组的场景,可以提高应用的可维护性、扩展性、灵活性和性能。在实际应用中,需要根据具体的需求和项目特点选择合适的模块联邦方案,并结合其他技术和工具进行综合应用。
|
缓存 应用服务中间件 Linux
yum 命令下载软件包到本地
在 Linux 系统中,使用 `yum` 命令可以下载软件包但不安装。通过 `yum` 的下载缓存功能,可以快速获取所需软件包。常用命令包括:`yum list available` 列出可安装的软件包,`yum download nginx` 下载特定软件包,`yum download nginx-1.18.0` 下载特定版本,`yum download -resolve nginx` 下载软件包及其依赖,`yum download nginx -d /path/to/download/directory` 指定下载目录
1246 11
|
存储 前端开发 JavaScript
浅拷贝和深拷贝的区别?
本文首发于微信公众号“前端徐徐”,介绍了JavaScript中浅拷贝和深拷贝的概念及其实现方法。文章首先解释了数据类型的基础,包括原始值和对象的区别,然后详细介绍了浅拷贝和深拷贝的定义、底层逻辑以及常见的实现方式,如 `Object.assign`、扩展运算符、`JSON.stringify` 和手动实现等。最后,通过对比浅拷贝和深拷贝的区别,帮助读者更好地理解和应用这两种拷贝方式。
706 0
浅拷贝和深拷贝的区别?
|
消息中间件 监控 Java
【一键解锁!】Kafka Manager 部署与测试终极指南 —— 从菜鸟到高手的必经之路!
【8月更文挑战第9天】随着大数据技术的发展,Apache Kafka 成为核心组件,用于处理实时数据流。Kafka Manager 提供了简洁的 Web 界面来管理和监控 Kafka 集群。本文介绍部署步骤及示例代码,助您快速上手。首先确认已安装 Java 和 Kafka。
1187 4
|
关系型数据库 分布式数据库 数据库
PolarDB-X助攻《香肠派对》百亿好友关系实现毫秒级查询
云原生数据库PolarDB分布式版(PolarDB for Xscale,简称PolarDB-X)有极强的线性扩展能力,能够多写多读;它的全局索引能力,是分布式改造的利器,成功解决了传统分布式方案中多维度查询的难题,在《香肠派对》的好友系统上,实现了百亿好友关系20万QPS的毫秒级查询。
PolarDB-X助攻《香肠派对》百亿好友关系实现毫秒级查询
|
机器学习/深度学习 人工智能 自然语言处理
【数字人】AIGC技术引领数字人革命:从制作到应用到全景解析
【数字人】AIGC技术引领数字人革命:从制作到应用到全景解析
1330 0
|
编解码 移动开发 前端开发
web canvas系列——快速入门上手绘制二维空间点、线、面
web canvas系列——快速入门上手绘制二维空间点、线、面
554 4