AppDynamicsアプリケーションモデルでは、ビジネストランザクションは、アプリケーションが提供するサービスのリクエストを実行するために使用される、エンドツーエンドの、クロスティア処理パスを表します。このトピックでは、ビジネストランザクションについて説明します。

ビジネストランザクションの表示

ビジネスアプリケーションのビジネストランザクションを表示するには、アプリケーション ナビゲーション ツリーで [Business Transactions] をクリックします。ビジネス トランザクション リストには、選択した時間範囲のビジネストランザクションのキーメトリックが表示されます。 

デフォルトでは、選択した時間範囲のパフォーマンスデータがあるビジネストランザクションのみがリスト表示されます。フィルタの表示オプションを変更して、その時間範囲の非アクティブビジネストランザクションを表示することもできます。

デフォルトビューを変更するその他の方法には、ビジネストランザクショングループに属するトランザクションの表示や、構成可能な平均応答時間を超えるトランザクションの表示などがあります。 View Options メニューからは、一覧内のビジネストランザクションに対して表示されるパフォーマンスメトリックも選択できます。

ビジネストランザクションに対して実行できるアクションを確認するには、 More Actionsメニューを開きます。アクションは、正常性ルール違反の表示、しきい値の構成、ビジネストランザクションの名前の変更、ビジネストランザクションのグループ化、トランザクションの診断セッションの開始、およびビジネストランザクションのバックグラウンドタスクとしての分類などがあります。

トランザクションのエントリポイントおよびイグジットポイント

アプリエージェントをインストールすると、エージェントによって受信コールが検出され、デフォルトトランザクション検出ルールに基づいてトランザクションが登録されます。自動検出ルールは、サポートされるフレームワークに基づいてトランザクションのエントリポイントを記述します。 

通常、トランザクションの処理には2つ以上のティアが参加します。発生元のティアへのリクエストによって、以下のサービスが呼び出される場合があります。

  • ダウンストリームティアと呼ばれる別のインストゥルメント化されたティア。
  • インストゥルメント化されていないリモートサービス。

インストゥルメント化されたアプリケーションティアからの発信リクエストはイグジットポイントと呼ばれます。また、ダウンストリームティアには、他のサービスまたはバックエンドリクエストを呼び出すイグジットポイントがある場合があります。

アプリエージェントは、イグジットポイントコールに、既存のトランザクションを記述したメタデータをタグ付けします。ダウンストリームティアのエージェントが、別のAppDynamicsアプリエージェントのトランザクションメタデータが含まれたエントリポイントを検出した場合、そのエントリポイントを、アップストリームティアで開始されたトランザクションの続きとして扱います。このダウンストリームエントリポイントに対するアップストリームイグジットポイントのリンクは相関と呼ばれます。相関はビジネスアプリケーション内のさまざまなティアによって処理されるため、クライアントリクエストコンテキストを保持します。

サンプルビジネストランザクション

たとえば、架空のACMEオンラインアプリケーションがあるとします。アプリケーションは http://acmeonline.example.com/checkout に購入サービスを表示します。サービスに対するユーザーリクエストは、以下の分散処理フローとアクションをトリガーします。

  1. 発生元のティアのビジネス トランザクション エントリ ポイントは /checkout URI で、CheckoutServlet と呼ばれるサーブレットにマップされます。
  2. このリクエストにより、発生元のティアはダウンストリームティア(ECommerce-Servicesサーバー)上でcreateOrderメソッドを呼び出します。
  3. インベントリティアアプリケーションは、バックエンドデータベース、つまりビジネストランザクションのイグジットポイントを呼び出します。リクエストコンテキストは、バックエンドティアの呼び出しを含め、ティア全体で維持されます。
    End-to-End Business Transaction
  4. エントリポイントのユーザリクエストは、このビジネストランザクション(購入ビジネストランザクション)と同様に分類されます。 

分散ビジネストランザクションにあるすべてのコンポーネントの検出を有効化するには、ダウンストリーム エージェントが同じ AppDynamics リリースにあるか、アップストリーム エージェントより新しい必要があります。これは、ティアが同じプラットフォーム(たとえば、すべて Java)で構築されていても、複数のプラットフォーム(Java ティアや .NET ティアなどを呼び出す Node.js ティア)で構築されていても該当します。

ビジネストランザクションの調整

デフォルトルールは追跡するビジネストランザクションのリストを作成するのに十分に役立ちますが、AppDynamicsの実装の重要な部分は、アプリケーションのモニタリングに使用するビジネストランザクションを検証および調整することです。モニタリングするビジネストランザクションは、アプリケーションおよびビジネスに重要なオペレーションを反映している必要があります。ビジネストランザクションの制限を考慮し、それに応じて調整を適用することが重要です。 

ビジネス トランザクション リストを改善するには、環境内の重要なビジネスプロセスを十分に理解しておく必要があります。アプリケーションで特に重要なオペレーションを 5 ~ 20 個挙げてみましょう。それらが、アプリケーションの正常な動作に必要な、重要なオペレーションとなります。 

重要なサービスは、サービスに対して生成されたビジネストランザクションが受け取るコール数または 1 分あたりのコール数からわかります。モニタリングするトランザクションのリストを調整するには、重大なトランザクションをロックダウンし、無効なトランザクションの自動クリーンアップを有効にします。Java および .NET 環境では、インタラクティブなライブプレビューツールを使用して、ビジネストランザクションのエントリポイントを見つけることができます。

以下のように、ビジネストランザクションの登録制限に達すると、トランザクションが追加される All Other Traffic と呼ばれる仮想ビジネストランザクションから手動でビジネストランザクションを追加できます。 

ビジネストランザクションリストをカスタマイズするには、以下のアプローチのいずれかを使用できます。

  • ビジネストランザクションのグループ化、名前の変更、または削除を行って、既存のビジネストランザクションを変更することができます。これらのオペレーションの大半は、ビジネス トランザクション リストから実行できます。現在のビジネス トランザクション リストに対して比較的軽微な小規模の変更を適用する場合は、このアプローチを使用します。詳細については、ビジネストランザクションの整理を参照してください。  
  • 自動検出ルールを変更することで、ビジネストランザクションの作成方法に影響を及ぼすことができます。同様に、ビジネストランザクションのグループ化および命名を行ったり、トランザクションを除外したりするためのルールを変更することができます。検出ルールを使用すると、ビジネストランザクションの新しいエントリポイントを定義することもできます。検出ルールの変更は、トランザクション検出を大幅に変更するための強力なメカニズムです。詳細については、「トランザクション検出ルール」を参照してください。 

ビジネストランザクションの制限

ビジネストランザクションの制限を見直し、調整する時は、コントローラとアプリサーバエージェントのビジネストランザクション制限を考慮することが大切です。ビジネストランザクションの制限は、ビジネストランザクションのリストが際限なしに増加するのを防ぎます。  

デフォルトの制限:

  • ビジネスアプリケーション制限: 各アプリケーションのビジネストランザクション登録上限は200件です。
  • アプリサーバーエージェント制限: 各エージェントのビジネストランザクション登録上限は50件です。

ティアレベルに制限はありません。

また、アプリエージェントの制限はマシンではなく各アプリエージェントに適用されます。単一のマシンに複数のアプリエージェントがある場合、マシンから発生するビジネストランザクションは最大でエージェント数の 50 倍になります。

ビジネス トランザクション ログの相関

アプリケーションコードをたどっても問題の原因を解明する十分な手がかりを得られない場合、AppDynamicsは特定のビジネストランザクションリクエストと相関があるトランザクションログを可視化します。ログの相関性の可視化には、Transaction Analytics と Log Analytics 両方のライセンスが必要になります。詳細については、「ビジネストランザクションおよびログ相関」を参照してください。

Search Logs