自定义方法监控是Java探针的一个扩展功能,用户可以通过使用XML配置文件或者基调听云Server报表对某个类的某个方法进行监控,当这个类的方法被调用时,Java探针将对该方法进行性能数据搜索,默认获取到的内容将在基调听云Server报表的事务或后台任务分解表格中展示。
在客户的代码中,有几个方法和接口用的非常多或者比较重要。
在Java探针对一些组件或者框架支持的不是特别完整的情况下,可能会少抓取或抓取不到某些方法。这个时候,可以考虑配置自定义监控。配置了自定义监控之后,就可以在Server报表端看到这个方法相关的性能统计数据和图表。
注意:只有Java探针支持自定义方法监控。
自定义方法监控有两种使用方法:
此处只讲解第一种方法,第二种方法详见Java安装使用。
添加一个规则,首先需要登录Server报表,在主界面的菜单栏中点击设置,然后在左侧导航树中点击自定义方法监控,进入自定义方法监控配置界面。
点击添加规则,进入自定义方法监控规则配置页面:
每个应用最多能创建50条规则。每条规则下最多30条类方法规则,每个类下最多10条方法规则。
该页面所有删除操作将在探针应用重启后生效。
自定义方法监控标识名 输入方法名称。
监控类型 监控类型包括3种:Class、Interface和BaseCalss。
监控对象 对应不同监控类型时,监控对象需要填写对应类型的全路径名。
监控方法匹配类型 监控方法匹配类型包括3种:Name、ReturnType和Annotation。
监控方法匹配值 对应不同的匹配类型,匹配值有不同要求:
当匹配类型为Name时,此处填写监控方法名。 当监控类型为ReturnType时,此处填写返回类型的全路径名。 基础类型可直接填写,如int则直接填写int即可。void返回值请选择按方法名进行自定义监控。 当监控类别为Annotation时,此处填写指定的Annotation全路径名。
监控方法参数 填写监控方法的参数全名,参数的顺序必须和方法的参数顺序一致,以英文逗号(,)分隔。 基础类型可直接填写,如int则直接填写int即可。 如果需要监控指定方法名的所有方法(无论是否有参数),此处不需填写。 如果指定监控的方法没有参数,此处需要填写为[]即可。
该应用下添加了规则后才出现复制规则的按钮,选择要复制的规则名称,点击复制规则,进入:
实际使用场景中,某一个方法耗时/耗性能较大,以及某个方法被使用的频率太大了,研发人员可能会重点关注这些方法。配置了类中的方法后,该方法的调用频率、执行时长等数据就会被搜集到。
在配置值中输入类名,方法匹配规则选择ReturnType,匹配规则输入Person的包名+类名:com.tingyun.test.Person
在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMfunction2,方法参数不输入
在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam1,方法参数输入形参类型int
在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam3,方法参数输入形参类型int,int
在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam2,方法参数输入形参类型int,int,java.lang.String
在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称CMparam5,方法参数输入形参类型com.tingyun.test.Person
实际使用场景中,很多业务可能都会继承或实现通用接口的某些方法,如果这些通用接口的方法很重要并且使用的非常频繁,那么如果需要对每个使用了次方法的子类/实现类都单独进行配置自定义监控规则显得麻烦。为了简化配置过程,Java探针支持了对接口的方法进行配置,配置之后,只要是实现接口方法就会被监控到。
在配置值中输入类名,方法匹配规则选择Name,匹配规则输入方法名称printCommonMsg,方法参数不输入
在配置值中输入类名,方法匹配规则选择ReturnType,匹配规则输入返回值的类型 java.lang.String
在报表上配置规则完成后,需要点击配置页面下方蓝色的提交按钮。过1~3分钟,配置生效后,使用浏览器访问该Servlet,再过5分钟左右报表上就可以看到配置抓取的方法性能数据了。