首页 帮助中心 听云Server 自定义方法监控

自定义方法监控

自定义方法监控,它是Java探针的一个扩展功能,可以通过使用xml配置文件或者听云Server报表对某个类的某个方法进行监控,当这个类的方法被调用时,Java探针将对配置的方法进行性能数据搜索,默认抓取到的内容将在server报表后台任务页面中展示。

什么时候使用自定义监控?在客户的代码中,有可能有那么几个方法和接口用的非常多或者比较重要。还有一种情况,如果Java探针对一些组件或者框架支持的不是特别完整的情况下,可能会少抓取或抓取不到某些方法。这个时候,可以考虑配置自定义监控,配置了自定义监控之后,就可以在Server报表端看到这个方法相关的性能统计数据和图表。

注:只有Java探针支持自定义方法监控,其他类型的探针没有此功能。

使用介绍

自定义方法监控有二种使用方法,第一种是在Server报表中配置,第二种是在探针目录下extension目录中的xml文件内手工配置自定义监控规则 此处只讲解第一种方法在报表中配置,第二种方法详见Java安装使用

添加规则

添加一个规则,首先需要登录Server报表,在主界面的菜单栏中点击设置,然后在左侧导航树中点击自定义方法监控,进入自定义方法监控配置界面。 测试图片1

点击添加规则,进入自定义方法监控规则配置页面:

自定方法监控规则编辑.png

  • 每个应用最多能创建50条规则。每条规则下最多30条类方法规则,每个类下最多10条方法规则。

  • 该页面所有删除操作将在探针应用重启后生效。

参数说明:

  • 自定义方法监控标识名 输入方法名称。

  • 监控类型 监控类型包括3种:Class、Interface和BaseCalss。

  • 监控对象 对应不同监控类型时,监控对象需要填写对应类型的全路径名。

  • 监控方法匹配类型 监控方法匹配类型包括3种:Name、ReturnType和Annotation。

  • 监控方法匹配值 对应不同的匹配类型,匹配值有不同要求:

    当匹配类型为Name时,此处填写监控方法名。 当监控类型为ReturnType时,此处填写返回类型的全路径名。 基础类型可直接填写,如int则直接填写int即可。void返回值请选择按方法名进行自定义监控。 当监控类别为Annotation时,此处填写指定的Annotation全路径名。

  • 监控方法参数 填写监控方法的参数全名,参数的顺序必须和方法的参数顺序一致,以英文逗号(,)分隔。 基础类型可直接填写,如int则直接填写int即可。 如果需要监控指定方法名的所有方法(无论是否有参数),此处不需填写。 如果指定监控的方法没有参数,此处需要填写为[]即可。

复用规则

该应用下添加了规则后才出现复制规则的按钮,选择要复制的规则名称,点击复制规则,进入:复用规则

  • 复制规则时,若该应用存在相同的规则名称则提示已存在,复制失败。
  • 复制规则后,在被复制的应用设置-自定义方法监控列表中展示已复制的规则。

配置详解

1 类中的方法

实际使用场景中,某一个方法耗时/耗性能较大,以及某个方法被使用的频率太大了,研发人员可能会重点关注这些方法。配置了类中的方法后,该方法的调用频率、执行时长等数据就会被搜集到。

1.1 监控所有返回值为Person 对象的方法

测试图片1

在配置值中输入类名,方法匹配规则选择ReturnType,匹配规则输入Person的包名+类名:com.tingyun.test.Person

测试图片1

1.2 监控无参数的方法

测试图片1

在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMfunction2,方法参数不输入

测试图片1

1.3 监控有一个参数的方法

测试图片1

在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam1,方法参数输入形参类型int

测试图片1

1.4 监控有两个参数的方法

测试图片1

在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam3,方法参数输入形参类型int,int

测试图片1

1.5 监控有三个参数的方法(三个参数以上同理)

测试图片1

在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam2,方法参数输入形参类型int,int,java.lang.String

测试图片1

1.6 监控参数对类对象的方法

测试图片1

在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam5,方法参数输入形参类型com.tingyun.test.Person

测试图片1

2 实现/继承接口的方法

实际使用场景中,很多业务可能都会继承或实现通用接口的某些方法,如果这些通用接口的方法很重要并且使用的非常频繁,那么如果需要对每个使用了次方法的子类/实现类都单独进行配置自定义监控规则显得麻烦。为了简化配置过程,Java探针支持了对接口的方法进行配置,配置之后,只要是实现接口方法就会被监控到。

2.1 按照方法名抓取(如果有传参,可以不配置参数)

测试图片1

在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称printCommonMsg,方法参数不输入

测试图片1

2.2 按照返回值类型抓取

测试图片1

在配置值中输入类名,方法匹配规则选择ReturnType,匹配规则输入返回值的类型 java.lang.String

测试图片1

3 报表展示Demo

在报表上配置规则完成后,需要点击配置页面下方蓝色的提交按钮。过1~3分钟,配置生效后,使用浏览器访问该Servlet,再过5分钟左右报表上就可以看到配置抓取的方法性能数据了。

3.1 Web应用过程-业务Servlet-应用过程分解

测试图片1

3.2 Web应用过程-业务Servlet-慢应用过程追踪列表-应用过程慢追踪

测试图片1