通过XML文件,可以在不修改代码的前提下监控指定方法的性能。XML文件需要指定具体的类和方法的描述。
在探针启动的时候加载定义的XML,实现对特定类的方法的嵌码。
需要将配置的XML文件放置在探针目录的extensions目录中,如:
注意: 如果存在多个xml文件 如果两个文件的extensionName相同,
version
数值大的生效,数值小的会被忽略. 如果两个文件的extensionName相同,version
也相同,则第一个被加载的文件会生效,其他文件不会生效。
自定义监控的文档基本结构如下:
自定义监控的文档元素如下:
标签 | 描述 |
---|---|
instrumentation | 配置集合,自定义监控读取配置时的基本元素,下面可以有多个配置点 |
pointcut | 配置点,用于配置一个类或者接口,下面可以是className元素、interfaceName元素、method元素 |
className/interfaceName | 配置目标的类名或接口名称,值应为包名+文件名 |
method | 监控目标方法,可以按照返回值类型、配置参数类型及无参数的方法进行配置。下面可以是parameters、/parameters、returnType |
parameters | 监控目标方法的形参,可以配置0~多个参数,每个参数配置在type标签下 |
returnType | 监控目标方法的返回值,仅可以配置一个返回值,返回值为基础数据类型,或类对象等 |
注:基础数据类型为byte、short、int、long、float、double、boolen、char,其他数据类型需要写全包完整的类名,如com.tingyun.test.Person, java.lang.String
下方的配置实例,是把控制台使用中的报表端自定义监控配置方法转化成了Xml的配置方式,实现的效果是等同的。由于配置的对象也是demo应用,其中涉及的接口,实体类,业务类的源码可以参考控制台使用中的自定义嵌码,在这里就不再介绍了。
在上文Xml配置实例部分可能会看到,在pointcut、instrumentation标签上有写配置选项,比如 actionStartPoint、metricPrefix等,下面简单介绍下这些选项的用途。
属性 | 描述 |
---|---|
metricPrefix | 当前配置文件内配置的方法将会归类到metricPrefix指定的归类中,使用场景一般为:把当前xml配置的一系列的方法归类为A业务,把另外一个xml文件配置的方法归类为B业务。这样在报表端,就可以看到已归类业务的方法性能表现。默认为metricPrefix=Custom |
actionStartPoint | 用于标注一个方法为一个单独的action(backgroundaction 或 web action), 一些开源组件或者不能被Java探针很好支持的框架中,某些方法可能能够代表一个业务请求,但是这些请求并不能找到father action。当配置actionStartPoint=true 时,当前方法可以被标记为一个action |
excludeFromActionTrace | 配置为true后,actiontrace中将不包含当前配置了自定义监控的方法,在报表端的追踪详情页也不能看到此方法相关的性能数据。默认excludeFromActionTrace=false |
ignoreAction | 配置为true后,当前的事务性能数据将不会搜集,报表端web应用过程将看不到调用该方法的事务。默认ignoreAction=false |
<nameAction/>
标签可以把当前方法的WebAction+className+methodName
作为事务的名称。举例如下: