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

AppDynamics APM プラットフォームの概要

AppDynamics APM プラットフォームでは、モバイルやブラウザのクライアントネットワークのリクエストから、バックエンドのデータベースやサーバなどに至るまで、アプリケーション配信エコシステムを管理およびモニタリングすることができます。アプリケーション ランドスケープ全体にわたるこのグローバルビューにより、分散アプリケーションから、個々のホストで生成されたコールグラフおよび例外レポートまで、すばやくナビゲーションできます。 

ユーザーインターフェイス

AppDynamics は、エージェントによって収集されたパフォーマンスデータに対して収集、保存、分析、およびベースライン化を行うためのコントローラテナントと、情報を表示および管理するための UI を提供します。自分のアカウント名が使用された URL を介して AppDynamics テナント UI にアクセスします。各アカウントには独自のユーザーセット、レポートエージェント、およびアプリケーション モニタリング設定が含まれています。

AppDynamics は、1 つまたは複数のアカウントをホストできます。各アカウントは、1 つのテナントを表します。AppDynamics クラウドベースの Software as a Service(SaaS)展開は、複数のテナントに個別にアクセスできるマルチテナント環境です。 

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

AppDynamics を利用することにより、階層レベルで AppDynamics アプリケーション サーバ エージェントを介してコードのランタイムオペレーションを確認できます。エージェントは、ティアでサービスエントリポイントに対するコールを検出し、コールスタックを通じてコールに対する実行パスに従います。また、使用状況メトリック、コードの例外、バックエンドシステムへの exit コール、およびエラー状態に関するデータをテナントに送信します。  

Application Performance Monitoring

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

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

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

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

アプリケーション エージェントは、エラーやコールの数など、バックエンドデータベースへのコールに関する情報を提供します。データベースの可視性モジュールは、エージェントレス プロファイルを使用したクエリの実行とパフォーマンスに関する情報を提供することで、データベースサーバ自体の動作に対する可視性を拡張します。

AppDynamics のインフラストラクチャの可視性は、環境内のマシンとネットワークのパフォーマンスに関する重要な情報を追加することで、データセンターの確認に役立ちます。

Infrastructure Visibility with Database Visibility

この展開では、データベースエージェントはデータベースサーバーから情報を収集し、テナントに送信します。テナントはこの情報の一部をイベントサービスに保存します。データベース分析機能は、プラットフォームのドキュメント ストレージ コンポーネントである(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 は、デフォルトの正常性ルールを提供します。ユーザは、環境に合わせてデフォルトの正常性ルールをカスタマイズしたり、新しいルールを作成したりすることができます。 

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

  • ビジネストランザクションの応答時間が通常よりもはるかに長い 
    クリティカルな状態は、デフォルトのベースラインよりも 3 標準偏差高い平均応答時間と、1 分あたり 50 コールより大きい負荷を組み合わせたものとして定義されます。このルールが定義する警告状態とは、デフォルトのベースラインよりも 2 標準偏差高い平均応答時間と、1 分あたり 100 コールより大きい負荷を組み合わせたものです。
  • ビジネストランザクションのエラー率が通常よりもはるかに高い
    クリティカルな状態は、デフォルトのベースラインよりも 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リクエストアクションおよびテンプレート」を参照してください。 
  • パフォーマンステスト拡張は、パフォーマンスをテストする拡張で構成されます。
  • あらかじめ用意されている統合拡張は、AppDynamics プラットフォームにバンドルされていて、有効化や構成のみが必要です。これには、以下が含まれます。

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