学习arthas(十)方法执行结果监控

Arthas
placeholder image
admin 发布于:2023-10-01 20:14:25
阅读:loading

Arthas的monitor命令是其强大的监控功能之一,它可以帮助开发人员实时监控和分析一段时间段内Java应用程序的性能指标和方法调用情况,面向程序执行结果统计,命令属于异步定时反馈统计监控的结果,本文对于monitor命令做一个简单常用的实践。

1.基本用法

(1)monitor命令用于监控某个类的某些方法,类和方法名,都可以是完整的类名或通配符表达式;

(2)监控参数选项有:

-c:指定监控的周期,默认值为 120 秒。

-b:在方法调用之前计算 condition-express。若监控的条件有耗时时间,在调用之前计算条件表达式将会存在问题。

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

2.应用场景

(1)性能优化:通过监控方法的执行时间和执行频率,可以发现应用程序中的性能瓶颈,从而进行针对性的优化。

(2)排查问题:当应用程序出现性能问题或异常情况时,可以使用monitor命令跟踪方法的调用链,以确定问题出现的位置和原因。

(3)监控关键方法:对于关键方法,可以使用monitor命令实时监控其执行情况,以确保其性能和稳定性。

(4)代码验证:通过监控方法的参数和返回值,可以验证代码逻辑是否正确,并进行单元测试。

3.使用示例

(1)统计10次TagManageController类的queryTagsPage方法执行结果命令:

monitor -c 10 cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage

image.png

A. Controller类包含两个,一个是真实的Controller类,另一个是Spring CGLIB动态代理生成的内部类;

B. 上图中的执行结果包含了:执行时间、类、方法、统计次数、成功次数、失败次数、平均耗时、失败比率,等多个字段;

(2)统计TagManageController类的queryTagsPage方法,限制条件第一个对参数的tag属性等于Java的命令写法如下:

monitor -c 5 cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage 'params[0].tag == "Java"'

(3)统计TagManageController类的queryTagsPage方法,限制方法执行耗时大于100毫秒是监控:

monitor -c 5 cn.chendd.blog.admin.blog.tag.controller.TagManageController queryTagsPage '#cost>100'




 点赞


 发表评论

当前回复:作者

 评论列表


留言区