ビジネストランザクション検出セッションでは、トランザクション検出ルールの最適なセットを作成し、重要なビジネストランザクションを検出するときに役立つインタラクティブなツールが用意されています。
検出セッション中、ノード上のすべてのトランザクション検出ルールの効果をプレビューできます。このようにして、自身の業務に影響を及ぼす正確なビジネストランザクションを取得するルールを作成し、過剰なトランザクションを生成するルールを回避できます。
検出セッションのコンテキスト内で、次の操作を行えます。
- Java エージェント トランザクション検出ルールを編集し、ビジネストランザクションをプレビューします。(Java のみ)
- 非インストゥルメント化コードからエントリポイントを識別します。
- クラス/メソッドを参照して、エントリポイントを識別します。
ビジネストランザクション検出セッション中、実稼働環境に影響を与えずにさまざまなトランザクション検出ルール構成を試してみることができます。
検出セッションのコンテキスト内で検出されたすべてのビジネストランザクション(一時的トラザクションと呼ばれます)は、セッションの終了後は存続しません。セッションを終了するときに、ルールの変更内容を破棄するか、実稼働構成に適用するかを選択できます。
権限
ビジネストランザクション検出セッションを起動するには、次の権限が必要です。
AppDynamics ロールベースのアクセス制御の詳細については、「Roles and Permissions」を参照してください。
ビジネストランザクション検出セッションの起動
- [Configuration > Instrumentation] に移動して、[Transaction Detection] タブをクリックします。
Live Preview をクリックします。
- [Start Discovery Session] をクリックして、ビジネストランザクション検出セッションを開始します。
ライブデータストリームのソースとして機能するノードを選択します。
ノードはティア別にまとめられます。どのノードにアクティブなエージェントがあるのか、およびすでにノード上で実行している検出セッションがあるかどうかを確認できます。
Transaction Discoveryページでは、検出セッションに関する情報が表示され、使用できるインタラクティブなトランザクション検出ツール間を移動できます。
Java ノードでトランザクション検出セッションを開始すると、[Rules] ペインに、ノードに適用するアクティブなトランザクション検出ルールが表示されます。右側のペインでは、Preview Business Transactions を実行するか、インタラクティブな Tools: (非インストゥルメント化コード検出とクラス/メソッドブラウザ)を使用できます。
.NETノード上で検出セッションを起動すると、非インストゥルメント化コード検出やクラス/メソッドブラウザなどの使用可能なツールが表示されます。
検出セッション中、検出プロセスがバックグラウンドで継続している間、AppDynamicsの他の機能を使用できます。これは、多数のアクティブトランザクションを抱えるビジーな環境で役立ちます。AppDynamicsで検出を終了するには数分かかります。[Transaction Discovery] ページに戻る準備ができたら、[Configuration > Instrumentation ] をクリックし、[Live Preview] ボタンをクリックして検出セッションを再開します。
トランザクション検出ルールの編集およびプレビュー
[Rules] ペインで、Java エージェントのあらゆるタイプのトランザクション検出ルールを追加、編集、または削除できます。[Apply ] をクリックして、検出セッションのコンテキスト内でルールを更新します。
変更後を確認するには、[Preview Business Transactions] をクリックします。アプリケーション エージェントがルール設定に基づいてビジネストランザクションを検出すると、右側のペインのリストにトランザクションが表示されます。
トランザクションを選択し、[Capture Snapshots ] をクリックしてトランザクション スナップショットを収集できます。
Capture Snapshots機能はServletにのみ使用できます。
特定のスナップショットをクリックして、ビジネストランザクションのペイロードデータをスナップショット詳細に表示します。
Servlet または POJO のカスタムマッチルールを作成すると、特定のルールに制限されたライブプレビューセッションを開始できます。
エントリポイントを検出するための非インストゥルメント化コードの検査
アプリケーションエージェントは、アプリケーション内でフレームワークのエントリポイントを自動的に検出しない場合、非インストゥルメント化コード検出を使用して、フレームワークのエントリポイントを見つけられます。ビジネストランザクションとして追跡するエントリポイントを指定したら、カスタムマッチルールを作成できます。
非インストゥルメント化コード検出では、エントリポイントが検出されない場合に、ノード上のアプリケーション エージェントのサポート exit コールを識別します。次の例では、Java エージェントはいくつかの非インストゥルメント化 JDBC イグジットポイントを検出します。
イグジットポイントを選択し、[View Stack Trace] をクリックして、イグジットポイントのコールスタックを表示できます。スタックトレースの任意のコールを選択し、[Monitor] をクリックして、その特定のコールに対するインタラクティブなデータを表示します。エージェントがモニタリングの結果を返すと、Invoked Object、Return Value、Parameters など、特定のメソッド呼び出しの値を調べることができます。
次の例では、com.mysql.jdbc.PreparedStatement:executeQuery
JDBC 終了コールのアップストリーム スタック トレースを示しています。
インストゥルメント化するメソッドを指定したら、クリックして POJO または POCO を追加できます。コントローラ UI では、[Add Rule] エディタの [Rule Configuration] にインストゥルメント化するクラスとメソッドが自動入力されます。POJO または POCO のカスタムマッチルールを通常どおり完了します。
インストゥルメント化するクラスとメソッドの検索
アプリケーションコードに精通している場合は、クラス/メソッドブラウザを使用して、インストゥルメント化する特定のクラスおよびメソッドの実行コードを検索できます。次の例では、サンプルアプリケーションでの jetty.server
の検索で、インストゥルメント化されている場合と非インストゥルメント化されている場合の両方のクラスおよびメソッドが返される方法について説明しています。
インストゥルメント化するメソッドを識別したら、そのメソッドを右クリックして、Add Ruleエディタを開きます。AppDynamicsが、クラス/メソッドブラウザの検索基準に基づいて、クラスおよびメソッド構成を自動的に入力します。クラスを右クリックしてインストゥルメント化することができますが、POJO または POCO を保存する前にメソッドを追加する必要があります。POJO または POCO のカスタムマッチルールを通常どおり完了します。