メソッド呼び出しデータコレクタの例

メソッド呼び出しデータコレクタは、Java および .NET に適用できます。

この(ウィザードを使用しない)手動設定の例では、Java アプリケーションでメソッド呼び出しデータコレクタを設定します。次のスニペットに示されるメソッド getCartTotal() のデータコレクタを、データソースとして後で使用するメソッド getUser() とともに作成します。

package com.appdynamicspilot.model;
...
public class Cart implements java.io.Serializable {
    ...
    private Double fakeAmount = 0.0;
    ...
    private User user; 
    ...
    public User getUser() {
        return user;
    }
    ...
    public Double getCartTotal() {
        if (fakeAmount == 0.0) {
            double total = 0;
            if (items != null) {
                for (Item item : items) {
                    total += item.getPrice();
                }
            }
            return total;
        } return fakeAmount;
    }
   ...
}

アプリケーションのデータコレクタを構成するには、データコレクタを追加して構成します。

  1. データコレクタを追加する場合は、構成に応じて適切に選択してください。
  2. まだ入力されていない場合は、クラスとメソッドを追加します。クラスとメソッド名は、メソッドを識別するために使用されます。
  3. [Enable Data Collector for] チェックボックスで、[Transactions Snapshots] を選択してトラブルシューティング用および APM スナップショット用のメタデータを追加するか、または [Transaction Analytics] を選択して、後で分析プラットフォームで使用するトランザクションのすべての実行に関するメタデータを収集します。トランザクション スナップショットのみから開始することをお勧めします。対象のデータ収集が確認されたら、トランザクション分析を有効にします。
  4. [Add Parameter] または [Add Match Condition] をクリックして、ポップアップから正しいパラメータを選択します。
    1. メソッドがオーバーロードされると、メソッドパラメータが追加されます。[Add Parameter] をクリックすると、パラメータインデックス 0 が追加されます。パラメータの完全修飾クラス名を追加します。
    2. 一致条件を使用すると、メソッドまたはコード行が複数回呼び出されたときに特定のデータを選択できます。一致条件は、メソッドパラメータまたは戻り値を使用します。[Add Match Condition] を選択すると、[Create Match Condition] ポップアップが開きます。選択を行い、[Save] をクリックします。
    3. データコレクタを設定する場合は、[Apply to new Business Transactions] の横にあるチェックボックスに注意します。
      1. このボックスをオンにすると、新しいビジネストランザクションにルールが自動的に適用されます。
      2. このチェックボックスをオフにすると、Configuration > Instrumentation > Data Collectors に移動して、ビジネストランザクションにルールを手動で適用する必要があります。
    4. 複数のコレクションタイプを追加するには、[Specify the Data to Collect from this Method Invocation] の下の [Add] をクリックして、データのソースを設定します。コードのこのセクションでは、呼び出されたオブジェクトと user.getCustomerName の getter チェーンを使用します。このコードスニペットは、呼び出されたオブジェクトのユーザ名をキャプチャする方法の例です。Cart クラスは、Cart と同じパッケージ内の次のクラスに基づいて User オブジェクトをインスタンス化します。User クラスには、ユーザの名前を返すためのメソッド getCustomerName() が含まれていることに注意してください。
    Getterチェーンを使用すると、このメソッドを同じデータコレクタ内の別のデータソースとして識別できます。たとえば、データのソースとして呼び出されたオブジェクトを選択できます。Getter チェーン getUser().getCustomerName() は呼び出されたオブジェクトのオペレーションです。PHP エージェントでは、MIDC によって収集されたメソッドの戻り値がどの変数にも保存されていない場合、スナップショットと分析データの両方で「null」と表示されます。
  5. 完了したら、[Save] をクリックします。
メソッド呼び出しデータコレクタを設定したら、[Instrumentation] ペインで [Configure Transactions using this Data Collector] をクリックすると、特定のデータコレクタにトランザクションをドラッグアンドドロップ(または強調表示して移動)できます。

遅い、非常に遅い、停滞したトランザクションのトランザクション スナップショットが完了すると、トランザクション スナップショットには指定されたユーザデータが含まれます。