このページでは、AppDynamics アプリケーション パフォーマンス管理(APM)プラットフォームについてご紹介します。

AppDynamics APM プラットフォームについて

AppDynamics APM プラットフォームでは、モバイルアプリケーションやブラウザクライアントのリクエストから、お使いのネットワーク、バックエンドデータベース、およびアプリケーションサーバなどに至るまで、アプリケーション配信エコシステム全体をモニタリングおよび管理することができます。 

AppDynamics APM では、アプリケーション ランドスケープ全体にわたって単一のビューを使用できるため、分散アプリケーションのグローバルビューから、個々のホストで生成された呼び出しグラフまたは例外レポートまで、すばやくナビゲーションできます。 

アプリケーションパフォーマンスモニタリング

AppDynamicsを利用することにより、ティアレベルでAppDynamics App Serverエージェントを通じてコードのランタイムオペレーションを確認することができます。エージェントは、ティアでサービスエントリポイントに対するコールを検出し、コールスタックを通じてコールに対する実行パスに従います。また、使用メトリック、コードの例外、エラー状態、バックエンドシステムの終了コールに関するデータをコントローラ(SaaSまたはオンプレミス)に送信します。


アプリケーション モニタリングを始めるには、「アプリケーションサーバーエージェントのインストール」を参照してください。

大半のアプリケーション環境は、複数のアプリケーションサーバーで構成されています。これには、特定のユーザリクエストの実行に参加する複数の分散および相互接続されたサーバとプロセスが含まれている場合があります。このコンテキストでは、AppDynamics は分散された異種サービス間でトランザクションを追跡します。  

データベース可視化によるインフラストラクチャの視覚化

アプリケーションデリバリ環境を最大限に視覚化するため、AppDynamicsデータベース可視性をデプロイメントに追加できます。

アプリケーション エージェントは、エラーやコールの数など、バックエンドデータベースへのコールについて通知できます。データベース可視性モジュールは、データベースサーバ自体の動作に対する可視性を拡張します。これにより、クエリの実行とパフォーマンス、およびエージェントレス プロファイルに関する詳細情報が表示されます。

AppDynamicsサーバーの可視性により、環境内のマシンやネットワークのパフォーマンスに関する正確な情報がデータセンターのビューに追加されます。

このデプロイメントでは、データベースエージェントはデータベースサーバから情報を収集し、コントローラに送信します。コントローラはこの情報の一部をイベントサービスに保存します。データベース分析機能は、プラットフォームのドキュメント ストレージ コンポーネントであ(大容量情報の検索と保存に最適化された)イベントサービスを使用できます。    

クライアントエクスペリエンスのエンドユーザーモニタリング

サーバ側のモニタリングでは、エンドユーザにとってのアプリケーションパフォーマンスの体験や、特にサーバ側からそのパフォーマンスを向上させる方法について大量の情報を得られますが、エンドユーザのモニタリングでは、最初のクライアント要求からクライアントデバイスでの応答に至るまでの全域にインサイトを拡張できます。AppDynamics エンドユーザモニタリングを使用すると、世界中の要求の送信元の場所、およびユーザが使用しているデバイスとチャネル、およびコードがユーザのデバイスに配置された後のコードのパフォーマンスに関する情報を収集できます。クラッシュの時点でスタックトレースやその他のコンテキストデータを確認することで、モバイルクラッシュを調査することもできます。また、AppDynamics は、サーバ側からそのデータをビジネス トランザクション データに関連付けることができます。

ビジネスへの影響を把握するためのBusiness iQおよびアプリケーション分析

アプリケーション環境の総合的なパフォーマンスは、ビジネスにどのような影響を与えているのでしょうか。AppDynamicsアプリケーション分析が搭載されたBusiness iQは、アプリケーション環境とエンドユーザーアプリケーションのパフォーマンスがトランザクションのビジネスデータにどのように関係しているかを理解する上で役立ちます。ユーザーは、ビジネストランザクションを構成するデータを整理し、順序づけて、理解することができます。また、環境から生成されたさまざまなログデータを掘り下げることもできます。アプリケーション分析をインストールおよび使用する方法については、「アプリケーション分析データの使用」を参照してください。 

メトリックの使用

メトリックは、モニタリング環境における特定のクラスの測定値、状態、またはイベントです。多数のデフォルトが、リクエストの負荷、平均応答時間、エラー率など、アプリケーションまたはビジネストランザクションの全体的なパフォーマンスに関連します。その他のものは、CPUビジー率やメモリ使用率など、サーバーインフラストラクチャの状態を示します。

エージェントは、検出したメトリックをコントローラに登録します。その後、定期的にメトリックの測定値やオカレンスを(メトリックの特性に応じて)コントローラにレポートします。メトリックは、コントローラ UI のMetric Browserを使用して表示できます。

インフォメーションポイントは、(アプリケーションに対して)ビジネスのパフォーマンスをレポートできる特定のタイプのメトリックです。たとえば、特定の製品や製品群のウェブサイトでの購入の収益を集計するインフォメーションポイントをセットアップすることができます。また、インフォメーションポイントを使って、特定のメソッドが呼び出された回数や、実行までの時間など、コードのパフォーマンスをレポートすることもできます。

ユーザが定義するカスタムメトリックをレポートするためにマシンエージェントを使用する拡張を作成できます。このメトリックは、あらかじめ用意されている AppDynamics メトリックと同様に、コントローラでベースライン化およびレポートされます。

コントローラ UI を使用する代替手段として、AppDynamics API を使用してプログラムでメトリックにアクセスできます。

ベースラインとしきい値

AppDynamics プラットフォームでは、自己学習したベースラインと構成可能なしきい値の両方を使用して、アプリケーションの問題を特定できます。複雑な分散アプリケーションには多数のパフォーマンスメトリックがあり、各メトリックは 1 つ以上のコンテキストで重要です。このような環境では、次の作業が困難になります。

  • 特定のメトリックの標準的な値または範囲を判断する
  • 関連アラートをベース化および受け取るための、意味のあるしきい値を設定する
  • アプリケーションやインフラストラクチャが変更されたときの「標準的な」メトリックが何であるかを判断する

こうした理由から、動的なベースラインやしきい値に基づいた異常検知は、AppDynamicsプラットフォームが持つ不可欠な機能の1つです。

AppDynamicsプラットフォームは、メトリックに対する動的なベースラインを自動計算し、実際の使用に基づいて各メトリックの「標準」を定義します。続いて、プラットフォームはこれらのベースラインを使用して、値がこの標準範囲から外れたメトリックを特定します。セットアップが面倒であり、変化の激しいアプリケーション環境ではエラーを引き起こす可能性のある静的しきい値を使用する必要はありません。

ベースラインを使用する条件を持つ正常性ルールを作成することで、プラットフォームの問題が発生、または発生しそうなときにアラートをトリガーしたり、その他のタイプの救済アクションをキックオフしたりすることができます。詳細については、「アラートと応答」、「正常性ルール」、および「動的ベースライン」を参照してください。

AppDynamicsのしきい値は、トランザクションの遅延、過剰遅延、および停滞を検出することでサービス水準合意(SLA)を守り、システムの最適なパフォーマンスレベルを維持するのに役立ちます。しきい値があれば、正しいビジネスコンテキストとリクエストの遅延を柔軟に関連づけ、根本原因を特定できます。詳細については、トランザクションのしきい値を参照してください。

正常性ルール、ポリシー、およびアクション

AppDynamicsは、動的ベースラインを使用して、アプリケーションにとって標準的な挙動が何であると考えられるかを自動的に定めます。その後、ユーザーはこの標準ベースラインに対して正常性ルールを策定し(またはその他のヘルスインジケータを使用し)、最適でない状態を追跡することができます。正常性ルールには、「平均応答時間がベースラインの4倍遅延したときに重大イベントを生成する」などがあります。

ポリシーでは、こうした問題イベント(正常性ルールの重大イベント)を、アラートや救済的な挙動をトリガーできるアクションなどとつなげることができます。これにより、ユーザが影響を受ける前にシステムの問題に対処できます。 

AppDynamics は、デフォルトの正常性ルールを提供します。ユーザは、環境に合わせてデフォルトの正常性ルールをカスタマイズしたり、新しいルールを作成したりすることができます。 

デフォルトの正常性ルールでは、以下のようにビジネストランザクションパフォーマンスがテストされます。

  • Business Transaction response time is much higher than normal クリティカルな状態は、デフォルトのベースラインよりも 3 標準偏差高い平均応答時間と、1 分あたり 50 コールより大きい負荷を組み合わせたものとして定義されます。このルールが定義する警告状態とは、デフォルトのベースラインよりも 2 標準偏差高い平均応答時間と、1 分あたり 100 コールより大きい負荷を組み合わせたものです。
  • Business Transaction error rate is much higher than normal クリティカルな状態は、デフォルトのベースラインよりも 3 標準偏差高いエラー率、1 分あたり 10 エラーより高いエラー率、および 1 分あたり 50 コールより大きい負荷を組み合わせたものとして定義されます。このルールにより、警告状態は、デフォルトのベースラインよりも 2 標準偏差高いエラー率、1 分あたり 5 エラーより高いエラー率、および 1 分あたり 50 コールより大きい負荷を組み合わせたものとして定義されます。

詳細については、アラートと応答を参照してください。

インフラストラクチャモニタリング

パフォーマンスモニタリング戦略では一般的にビジネストランザクションのパフォーマンスが重視されますが、インフラストラクチャパフォーマンスをモニタリングすることで、ビジネストランザクションのパフォーマンスの下層ファクタに対する情報を得ることができます。AppDynamics では、ビジネス トランザクション レベルとインフラストラクチャ レベルで問題を警告することができます。 

AppDynamicsでは、あらかじめ構成されたアプリケーションインフラストラクチャメトリックとデフォルトの正常性ルールが提供されるため、ユーザーはインフラストラクチャの問題を発見および修正することができます。また、ユーザーのビジネスニーズやアプリケーションアーキテクチャに特化したモニタリング戦略を導入するために、継続的なメトリックを追加構成することもできます。

正常性ルールに加えて、メトリックブラウザではインフラストラクチャメトリックを確認することができます。このコンテキストでは、インフラストラクチャ メトリックがビジネストランザクションのパフォーマンスにどのように相関または関連しているかを理解する上で、相関分析スケーラビリティ分析グラフが特に役に立ちます。 

AppDynamicsの統合と拡張

AppDynamics は、AppDynamics Pro を拡張し、他のシステムとメトリックを統合するためのさまざまな方法を提供します。AppDynamics Exchange では、膨大な数の拡張をダウンロードできます。また、必要なものが見つからない場合は自分で開発することも可能です。

AppDynamicsの拡張は、以下のカテゴリに分けられます。

  • モニタリング拡張は、AppDynamics エージェントが収集し、コントローラにレポートする既存のメトリックセットにメトリックを追加します。これには、ユーザが他のモニタリングシステムから収集するメトリックを含めることができます。また、データベース、LDAP サーバ、Web サーバ、C プログラムなど、AppDynamics によってインストゥルメント化されないサービスからお使いのシステムが抽出するメトリックを含めることもできます。特定のモニタリング拡張を記述する場合は、「拡張機能とカスタムメトリック」を参照してください。
  • アラート拡張では、AppDynamicsを外部のアラートまたはチケットシステムと統合し、カスタム通知アクションを作成することができます。特殊なカスタム通知を記述する方法については、「カスタムアクションの構築」を参照してください。また、「メールテンプレート」および「HTTPリクエストアクションおよびテンプレート」を参照してください。 
  • パフォーマンステスト拡張は、Integrate AppDynamics with Apica で説明されているパフォーマンステスト拡張などで構成されています。
  • あらかじめ用意されている統合拡張は、AppDynamics プラットフォームにバンドルされていて、有効化や構成のみが必要です。これには、以下が含まれます。

AppDynamics 用のカスタム拡張や統合コンポーネントを作成する場合は、AppDynamics API の情報を参照してください。