Java SDK を使用したトランザクションへのカスタムフィールドの追加

コントローラ UI からデータコレクタを追加する代わりに、Java エージェント SDK を使用してカスタムデータを追加できます。

フィールドは、トランザクション分析の「Custom Method Data」というセクションの下に表示されます。

次のようなコードをアプリケーションに追加します。

//include the app agent SDK packages
import com.appdynamics.apm.appagent.api.AgentDelegate;
import com.appdynamics.apm.appagent.api.DataScope;
import com.appdynamics.apm.appagent.api.IMetricAndEventReporter;
public void someMethod(String stringParam, int intParam, ComplexObject complexObjParam) {
//Get the data reporter.
IMetricAndEventReporter reporter = AgentDelegate.getMetricAndEventPublisher();
//Define the scope for data collection.
Set<DataScope> allScopes = new HashSet<DataScope>();
allScopes.add(DataScope.ANALYTICS);
allScopes.add(DataScope.SNAPSHOTS);
Set<DataScope> analyticsScope = new HashSet<DataScope>();
analyticsScope.add(DataScope.ANALYTICS);
//Add data to different scopes based on the need.
//Here both key1 and key2 are collected for both snapshots and analytics
reporter.addSnapshotData("key1", stringParam, allScopes);
reporter.addSnapshotData("key2", intParam, allScopes);
//Here key3 is only collected for analytics.
//Since the passed object is a complex java object and not a primitive type, toString() method is invoked on it and the string value will
//be collected.
reporter.addSnapshotData("key3", complexObjParam, analyticsScope);
.........
Business logic.

メソッドの 3 番目のパラメータは、カスタムデータを収集する範囲を定義する一連の enum、DataScope です。

  • スナップショットのカスタムデータのみを収集するには、3 番目のパラメータとして DataScope.SNAPSHOTS を使用します。
  • 分析用のカスタムデータを収集するには、3 番目のパラメータとして DataScope.ANALYTICS を使用します。
  • カスタムデータをスナップショットと分析の両方に追加する必要がある場合は、両方の enum を 3 番目のパラメータとしてセットで渡す必要があります。

メソッドの詳細 addSnapshotData()

boolean addSnapshotData(java.lang.String key,
java.lang.Object value,
java.util.Set<DataScopes> dataScopes

メソッドパラメータ

  • key:キー
  • value:プリミティブ型は値として渡すことができ、型(int、boolean など)が尊重されます。文字列は値として渡すことができます。ただし、複合オブジェクトを渡すと、エージェントはそのオブジェクトに対して .toString() 操作を実行することに注意してください。
  • dataScopes:カスタムデータ収集の範囲:
    • Datascope.SNAPSHOTS
    • Datascope.ANALYTICS

戻り値

エージェントが指定範囲のキーと値のペアを正常に収集した場合は true。