Javaアノテーションによるカスタム インストルメンテーション
APMインサイトでは、Javaアノテーションの利用によりお客さまアプリケーションのクラスやメソッドの組み込み・測定ができます。トランザクションにカスタム名を付けたり、カスタム コンポーネントを割り当てたりが可能です。
要件
- apminsight-javaagent.zipファイルをダウンロードしてください。エージェントjar、関連ファイル、apminsight-javaagent-api.jarが含まれています。
- apminsight-javaagent-api.jarをプロジェクトのビルド パスに追加します。jarファイルがアプリケーションのライブラリと合わせてエクスポートされるようにしてください。
- JavaエージェントAPIでは、お客さまアプリケーションでカスタム クラスやメソッドのパフォーマンスを追跡するのに使える、2つのアノテーションを提供しています。
- ApmTracker:インストルメント対象となり、トレースに含まれるあらゆるクラスやメソッドに利用できます。
- ApmRootTracker:トランザクション実行の開始ポイント(とりわけバックグラウンド トランザクション)となりうるメソッドに利用できます。
ApmTracker
このアノテーションはクラスとメソッドに使えます。クラスに使うと、クラスに存在するすべてのメソッドに属性が適用されます。メソッドすべてのアノテーションにオーバーライドを行います。
属性:
-
component:追加属性
アノテートするクラスやメソッドのカスタム コンポーネントを定義します。
例:
例1:クラスでの使い方
public class PaymentProcessor {
@ApmTracker
public class Category {
...
}
例2:
@ApmTracker(component="payment"
...
}
例3:メソッドでの追懐方
public class Product {
@ApmTracker
public int getPrice(String product, String brand) {
...
}
...
@ApmTracker(component="FetchBrand")
private List fetchAllBrandsList(String product) {
...
}
} -
name:追加属性
実際のメソッド名の先頭に追加されるアノテーション先要素のカスタム名です。カスタム名をメソッド パラメーターに使う場合は、引数インデックスにプレフィックス「$」を付けてください(インデックスは1から開始です)。
例:
インストルメントしたメソッドと、そのカスタム名は、トレースに表示されます。
ApmRootTracker
このアノテーションはメソッドにのみ使えます。アノテートされたメソッドがサーバーでトランザクション処理のため最初に実行されたものである場合、トランザクションはtxnName属性の値にリネームされます。それ以外の場合は、通常のメソッド呼び出しと見なされ、トレースに捕捉されます。
属性:
-
component:追加属性
アノテートするメソッドのカスタム コンポーネントを定義します。
-
name:追加属性
実際のメソッド名の先頭に追加されるアノテーション先要素のカスタム名です。カスタム名をメソッド パラメーターに使う場合は、引数インデックスにプレフィックス「$」を付けてください(インデックスは1から開始です)。
-
txnName:必須属性
メソッドがバックグラウンド トランザクションのエントリ ポイントであれば、トランザクションの名前を定義します。それ以外の場合は、通常のメソッドとして追加しトレースに追加します。
トランザクション名はtxnName属性で指定した値になります。