AppDynamics は、インストゥルメント化されたアプリケーションによって行われたデータベース呼び出しのパフォーマンスをモニタリングできます。  

データベースパフォーマンスの測定

AppDynamics は、次のレベルでデータベースコールと応答時間のメトリックを収集します。

  • ビジネストランザクションメトリック:特定のデータベースにおける特定のビジネストランザクションのメトリックをトランザクションフローマップに表示。
  • ティアメトリック:ティアから指定されるデータベースへの全コールのメトリックをティアフローマップに表示。
  • データベースコールメトリック:アプリケーション全体のデータベースアクセスメトリック(すべてのビジネストランザクション)をアプリケーションフローマップとデータベースコールダッシュボードに表示。
  • Database Visibilityによる統合データベースメトリック:
    • データベースコレクタが AppDynamics Database Visibilityで設定されている場合、アプリケーション ダッシュボードおよびデータベース コール ダッシュボードからその製品にリンクできます。データベースの可視性でデータベースサーバとデータベースコレクタをすでに関連付けている場合は、Database Visibility UI を表示できます。まだ関連付けられていない場合は、切断されたデータベースのアイコンが表示され、データベースをすでに設定されているDatabase Visibilityのサーバまたはクラスタにリンクするように求めるメッセージが表示されます。また、データベースコレクタをデータベースサーバまたはクラスタにマッピング/マッピング解除するには、Database Visibilityで設定された対応するコレクタに対して表示権限を持っている必要があります。

Application Flow Map

    • Java アプリケーションのリレーショナル データベース バックエンドが、データベースコレクタですでに設定されているデータベースサーバと同じホスト名、ポート番号、およびデータベースタイプの場合、Oracle バックエンドは対応するDatabase Visibilityコレクタと自動的に照合されます。リレーショナル データベースバックエンドのみで使用可能なスナップショット相関ビューには、スナップショットが取得されたときのクエリ、クライアント、セッション、およびスキーマの詳細が表示されます。

Snapshot Correlation View

    • バックエンドデータベースが [Database Visibility] のサーバまたはクラスタにリンクされている場合は、データベースアイコンをクリックすると、[Database Visibility] UI へのリンクと基本的な詳細情報が表示されます。また、データベース KPI メトリックを表示することもできます。

Database KPI Metrics

デフォルトでは、AppDynamicsアプリエージェントをインストゥルメント化されたノードから呼び出しを行うと、多くのデータベースおよびデータストアが自動的に検出されます。詳細については、「アプリケーションモニタリングビューからデータベースの可視性にアクセスする」を参照してください。


データベースへのコールのパフォーマンスを監視するには、コールがデータベースコールリストに表示されていて、独自のデータベース コール ダッシュボードが存在することを確認します。データベースが表示しない場合は、構成を確認してください。 

フローマップ上のデータベースアイコンによって、データベースのステータスを識別できます。次の表に、各種データベースアイコンが一覧表示されています。

データベース アイコンステータス(Status)

データベースが正常に稼働しています。アクティブな正常性ルール違反はありません

正常性ルール違反:重大な状態

正常性ルール違反:警告状態

データベースが適切なサーバまたはクラスタノードにリンクされていません。このアイコンは、データベースが状態の変更中である場合にも表示されます。

データベースがDatabase Visibilityのサーバまたはクラスタに接続されていません。

データベースアイコンをクリックし、次に [Connect] リンクをクリックして、データベースのバックエンドを適切なサーバまたはクラスタにリンクさせます。

フローマップでデータベースパフォーマンスを表示

指定した時間範囲に検出されたデータベースは、アプリケーションダッシュボード フローマップに表示され、アプリケーションのトランザクションフロー全体のコンテキストで表示することができます。アプリケーションフローマップは、データベースへのコールに対する1分あたりのコール数と平均応答時間を表示します。これらのメトリックには、すべてのビジネストランザクションにおける特定のティアからデータベースへの全コールが含まれます。ティアおよびノードのフローマップは、ティアまたはノードごとにすべてのビジネストランザクションにおけるコールからのデータを集約する同様のメトリックをそれぞれ表示します。

検出されたデータベースは、ティアフローマップに表示され、このティア特定のトラフィックのコンテキストで確認することができます。 

データベースへのコールを含むビジネストランザクションの場合、データベースはトランザクション フロー マップに表示され、このビジネストランザクション特定のトラフィックコンテキストでデータベースを表示できます。トランザクション フロー マップには、ビジネストランザクションのデータベースコールに使用した平均時間が表示されます。 

データベースパフォーマンスのドリルダウン

フローマップにモニタリング対象のデータベースを表示するだけでなく、次の情報も確認することができます。

  • 最も多くデータベースコールを送信するビジネストランザクション。[Database Business Transactions] パネルで確認できます。
  • ビジネストランザクションにより最も多く実行さたクエリ。ビジネストランザクションをダブルクリックして DB Queries タブを開いて確認します。

フローマップ上で予期しないデータベースの解決

AppDynamicsでは、アプリケーションからデータベースへの予期しない接続がフローマップ上に表示されることがあります。これが発生した場合は、次の方法でデータベースが表示される理由を調査します。

  • 左のナビゲーションメニューから、[ Tiers & Nodes > Databases] を選択します。Slowest Database Calls タブを選択し、スナップショットをドリルダウンしてデータベースを呼び出すコードを表示します。「遅延データベースとリモートサービスコールをトラブルシューティングする方法」を参照してください。
  • 診断セッションを実行してトランザクションスナップショットを取得し、データベースへのコールを確認します。「 診断セッション」および「トランザクション スナップショット」を参照してください。データベース用AppDynamicsを統合している場合は、Oracleデータベース上でSQLを実行するトランザクションスナップショットを選択し、データベース用AppDynamicsにリンク可能なトランザクションフローマップから、該当するトランザクションスナップショットに関連するSQLセッションで実行されたすべてのクエリを参照することが可能です。「AppDynamics Pro と AppDynamics for Databases の使用」を参照してください。
  • データベースを表示するときに例外が発生している場合は、例外トレースを示すエラースナップショットを確認します。その場合は、例外トレースを示すエラースナップショットを確認します。 

検出したデータベースの表示

データベースリストには、検出されたすべてのデータベースと KPI が表示されます。無効なデータベースは自動的に削除されるように構成できます。 

データベースリストから、データベースを選択して [View] をクリックすると、データベース コール ダッシュボードが表示されます。ダッシュボードには、データベースフローマップ、データベースプロパティ、およびキー パフォーマンス インジケータ(KPI)のグラフが表示されます。データベースプロパティは、エージェントがデータベースを識別し、表示マップに表示する方法およびメトリックの集計方法を管理します。ベースラインとその使用方法および設定方法については、「動的ベースライン」を参照してください。

データベース ダッシュボードには、2 つのタブとアクション オプション メニューがあります。

  • Dashboard:呼び出しを行うティアからデータベースへのトラフィック、自動検出と命名に使用されるバックエンドプロパティ、およびKPIを示すフローマップを表示。
  • Slowest Database Calls:実行時間が最も長いデータベースへのコールを、ティア別およびすべてのティアで最大 10 件まで一覧表示。「遅延データベースコール」を参照してください。
  • Action メニューでは、次のアクションが可能です。

    • Rename Backend:データベース名を変更。
    • Resolve Backend to Tier:選択したティアにデータベースを関連付け、バックエンドをティアのグリッドビューに表示して、アプリケーション ダッシュボード フロー マップ上で独立したコンポーネント(未転換のバックエンド)として表示されないようにします。この操作は、ティアダッシュボードの [Actions] メニューにある項目 [Configure Backends resolving to this Tier] で元に戻すことができます。
    • Delete Backends:コントローラとすべてのエージェントからデータベースのインスタンスを削除。エージェントは、データベースを再検出してコントローラに登録可能。

[Servers > Databases] をクリックすると、データベースサーバリストにアクセスできます。詳細については、「バックエンド検出ルール」を参照してください。


遅延データベースコール

AppDynamicsでは、最も遅いデータベースコールのリストを表示します。コールごとに、特定のコールの詳細と関連するビジネストランザクションのスナップショットを表示できます。リストには、選択した時間範囲において実行時間が最も長いデータベースコールが最大10件まで、すべてのティアおよびティアごとに表示されます。各コールには次の内容が表示されます。

  • Call:SQL クエリ
  • Avg. Time per Call (ms):1 回のコールあたりの平均時間をミリ秒で表示
  • Number of Calls:時間範囲内に実行されたコール数
  • Max Time (ms):最長実行時間をミリ秒で表示
  • View snapshots:既存のトランザクション スナップショットを表示するリンク

アプリケーション エージェントは、15 分ごとにコールデータを集約してコントローラに報告します。[ Max Time ] により、[Slowest Database Calls] リストに表示されるコールが決定します。たとえば JDBC コールの場合、AppDynamics がこのリストの潜在的な候補としてコールを追跡するには、[Max Time] が 10 ミリ秒を超えている必要があります。 

最も遅いデータベースコールは、次のように定義されています。

  • 最長時間が10ミリ秒以上であること
  • 最も遅い上位10以内であること
  • 15分ごとに報告すること

最も遅いデータベースコールの表示

最も遅いデータベースコールを表示するには、[Troubleshoot > Slow Response Times > Slowest DB and Remote Service Calls] をクリックします。 

このページでは、以下を行うことができます。

  • コールのトランザクション スナップショットが利用できる場合は、[Snapshots] 列の [View Snapshots] リンクをクリックし、スナップショットを選択して遅延の根本原因までドリルダウンします。 
  • 説明プランを表示するには、コールを選択して [View Details] をクリックします。ダイアログボックスで [Explain Plans] をクリックします。取得した SQL からパラメータ値を除外すると、説明プラン機能は無効になります。

NoSQL

AppDynamicsは、NoSQLデータベースをリモートサービスとして表示します。「リモートサービス」を参照してください。