MVC5 Performance Monitoring

.NET

ASP.NET MVC 5は、.NETの最新バージョンのオープンソースwebアプリケーションフレームワークです。MVC 5はMVC (Model-View-Controller) アーキテクチャを使用して、アプリケーション、サービス、APIを作成します。MVC 5は、拡張性に富んだ、プラグインのフレームワークを活用しているので、これを使用する開発者は、ビューエンジン、アクションメソッドのパラメータのシリアライゼーション、URLルーティングポリシーなどのコンポーネントのカスタマイズや置換を行うことができます。また強力なURLマッピング機能を備えているので、SEO向けに最適化されたネーミングパターンやREST (Representational State Transfer) アドレッシングをサポートする、検索可能なURLによるアプリケーションを構築することができます。MVC 5は、Bootstrapという強力な新しい認証フィルター、フィルターのオーバーライド、属性ルーティングのサポートを利用できる更新されたプロジェクトテンプレートなどを含む、豊富な新機能を取り入れています。また、MVC 5の下位互換性によりMVC 4と共にインストールすることも可能です。

MVC5

MVC 5フレームワークでアプリケーションの構築や管理を行っている開発者や運用チームにとって、AppDynamicsプラットフォームは、.NETアプリケーションのパフォーマンスを監視、管理するための総合的なソリューションとなっています。迅速なインストールが可能で、業界でも最も拡張性が高いAppDynamicsソリューションは、より速く、より信頼性の高いアプリケーション開発を実現します。

ASP.NET MVCアプリケーションフロー

この例では、AppDyanmicsは3つのASP.NET MVCの層および3つのバックエンドを自動検出しています。SysLog-Web、SysLog-Service、SysLog-WebLogの層がASP.NET MVCです。フローマップは、1分あたりの層間でのコールの平均数および単一のコールに関する平均応答時間としての通信を表しています。

MVC5 Performance Monitoring

ビジネストランザクション

AppDynamicsは、ASP.NET MVCウェブアプリケーションに対するユーザーの要求を検出します。そして、たとえば「/Video/Edit」などのURI名に対して、ビジネストランザクションを作成し、ビジネストランザクショングリッドで表示します。ビジネストランザクショングリッドは、トランザクションの全体的な正常性や、1分あたりのコール数、遅いトランザクションの数などの重要な統計を表示し、ビジネストランザクションのパフォーマンスの監視を支援します。

トランザクションのスナップショット

AppDynamicsは、診断データを含むトランザクションのスナップショットを取得し、ASP.NET MVCのビジネストランザクションの問題の迅速な分析やトラブルシューティングを助けます。AppDynamicsが低速または停止中のトランザクションを検出すると、トランザクションのスナップショットが自動的に始まります。この例では、選択した/Video/Editトランザクションは正常ですが、他のトランザクションの実行が低速です。

ASP.NET MVCビジネストランザクションのコールのグラフ

トランザクションのスナップショットへドリルダウンして、ASP.NET MVCトランザクションのコールのグラフを表示します。このコールのグラフは、コード実行シーケンスのタイミングを示しているので、どのメソッドに問題があるかを判断できます。この例では、System.Web.Mvc.ControllerActionInvoker: InvokeActionMethodメソッドは411ミリ秒かかっており、ビジネストランザクションの時間の22.1%を占めています。またADO.NETバックエンドに対してコールを終了していることも分かります。

アプリケーション全体のパフォーマンス

AppDynamicsは、ASP.NET MVCアプリケーションの全体的なパフォーマンスに関する指標を収集します。指標ブラウザを使って、重要な統計のグラフを作成します。下のグラフは、2:14am、2:18a、2:20amに、1分あたりのコール件数(緑色)の突出があります。平均応答時間(青色)は、2:25am、2:27amに突出があります。この突出が問題の原因となる場合、異なるシステムイベント間での関連付けにこうしたグラフが役立ちます。1分あたりのエラーの数(赤色)は、0スループットの該当期間中にはエラーが無かったことを示しています。