使用Java注释的自定义检测  


用Java注释,APM Insight提供了一种更简便的方法来自定义检测应用程序类和方法。使用Java注释,可以为事务定义自定义名称,还可以分配自定义组件。

先决条件

  • 下载apminsight-javaagent.zip文件,其中包括代理jar及其关联文件以及apminsight-javaagent-api.jar
  • 将apminsight-javaagent-api.jar文件包含到项目构建路径中。确保jar文件与应用程序的库一起导出。
  • Java代理API库提供了两个注释,可以在您的应用程序中使用它们来跟踪自定义类和方法的性能。
    • ApmTracker-可以在任何类和方法上使用,将对其进行检测并包括在跟踪中。
    • ApmRootTracker-可以在可能是事务执行起点的方法上使用。

ApmTracker

此注释可以在类和方法上使用。当在类上使用时,属性将应用于该类中的所有方法。

属性:

  • 组件 -可选属性

    为带注释的类/方法定义自定义组件。

    例:

    Case 1: Usage on Class
    @ApmTracker
    public class Category {
        ...
    }

    Case 2:
    @ApmTracker(component="payment"
    public class PaymentProcessor {
        ...
    }

    Case 3: Usage on Methods
    public class Product {
        @ApmTracker
        public int getPrice(String product, String brand) {
            ...
        }
        ...
        @ApmTracker(component="FetchBrand")
        private List fetchAllBrandsList(String product) {
            ...
        }
    }

  • 名称 -可选属性

    带注释元素的自定义名称,该名称将放在实际方法名称之前。方法参数可用于自定义名称,方法是使用前缀$提及参数索引(从1开始)。

    可以在跟踪下查看检测到的方法及其自定义名称。

ApmRootTracker

该注释只能在方法上使用。如果带注释的方法是服务器上用于处理事务的第一个方法,则使用txnName属性的值重命名事务。否则,它被视为常规方法调用,并包含在跟踪中。

属性:

  • 组件 -可选属性

    为带注释的方法定义自定义组件。

  • 名称 -可选属性

    带注释元素的自定义名称,该名称将放在实际方法名称之前。 方法参数可用于自定义名称,方法是使用前缀$提及参数索引(从1开始)。

  • txnName-强制属性

    仅当方法是事务的入口点时,才定义后台事务的名称,否则它将作为通用方法被跟踪并添加到跟踪中。

    根据为属性txnName指定的值来命名事务。