Application Insightsでの性能分析
Application InsightsにもモニターとApplication Insights SDKが提供されており、Webアプリを測定する場合と、サーバーの性能を測定する場合で使い分けを行う。確認したい情報を取得する方法がそれぞれ異なるため、以下の表にまとめた。
やりたいこと | 方法 | 取得できる情報 |
---|---|---|
ASP.NETアプリの性能情報を取得したい | Application Insights SDKをプロジェクトに追加する | アプリの健全性に関する情報。応答時間、リクエスト数(成功/失敗) |
追加の性能情報を取得したい/再デプロイなしでIISの問題を実行中に採取したい | Application Insights Status Monitor PreviewをIISに追加する | サーバーでの例外。平均応答時間 |
Webページの使用状況を知りたい | Application InsightsのJavaScriptをWebページに追加する | アクセスしたページの集計を行う |
Webサイトの正常応答を知りたい | Webテストを追加する(前節で解説) | pingを行い、URLに対する応答時間を調べる |
Ruby/Python/PHP/Wordpress/node.jsのアプリケーション情報を取得したい | GitHubにあるSDKを使用する(Microsoft AppInsights SDKs) | アプリケーションの健全性に対する情報 |
Application Insightsで各種の情報を取得する方法 |
前回Monitoringエージェントをインストールする方法を紹介したが、Azureの新ポータルで監視を行う場合、対象サーバーにステータスモニター(Application Insights Status Monitor)をインストールする(原稿執筆時点ではプレビュー版。Application Insights Status Monitor Preview)。
新モニターが出たことにより、前回紹介したモニターは今後System Center Operations Manager用になるだろう。今後は以下で紹介するモニターを使用することを推奨する。以下はステータスモニターのインストール画面だ。
ステータスモニターはWeb Platform Installer経由でインストールするため、事前にWeb Platform Installerをインストールしておく必要がある。インストール後には自動的にモニターが起動され、最新版のバイナリのダウンロードが実行される。その後、Azureへのサインイン画面が表示されるので、マイクロソフトアカウントとパスワードを入力してサインインをすると、次の画面が表示される。
インストール対象のIISアプリがデプロイ済みであれば、上記の[IIS applications]リストボックスに該当仮想ディレクトリに表示される。アプリを選んで、Application Insightsのデータを送る先をそれぞれに選択すればよい。
テレメトリ先を選択すると、IISを再起動するための[Restart IIS]ボタンが表示される。このボタンをクリックするとIISが再起動され、Application Insightsにデータが送信され始める。送信されたテレメトリを表示しているのが次の画面だ。
[アプリケーションの健全性]にサーバーの応答時間やアクセスされたページが表示される。このページで選択時間内におけるWebアプリの処理時間を確認することが可能だ。
その下の[診断]部分には診断情報も表示される。
[診断]ではアプリの例外、SQL文の使用率を確認できる。現時点ではNew RelicのようにINSERT文、SELECT文などで時間がかかっているといった詳細な情報はとれないようだ。
診断情報の下にはパフォーマンス情報が表示される。
[パフォーマンス]ではSQL Server内における負荷や、ASP.NETのリクエスト、CPU処理時間といった各種性能情報を取得できる。それぞれのグラフをクリックすれば、詳細画面で追加採取する情報を選択することが可能だ。
一番下には利用状況が表示される。
[利用状況のタイムライン]の各グラフをクリックすると、該当時間帯にアクセスされたセッション数、使用ブラウザー、セッション応答数やアクセスされたURLが表示される。
サーバーモニター使用時の注意点として、アプリモニターを採取するASP.NETの実行アカウントは通常低い権限であるDefaultAppPoolで実行されていることが挙げられる。もしも、テレメトリ情報がApplication Insightsに送信されていない場合、Performance Monitor Userグループにモニターするアプリケーショングループのユーザーが追加されているか、確認してほしい。(参考:「アプリケーション プール ID」)。
今回はNew RelicとApplication Insightsを使用して、アプリやサーバーの死活監視、性能分析を行う方法を見た。次回は、New Relicが提供するAPIを利用して、取得する情報をカスタマイズする方法やVisual Studio Onlineを使用して性能測定/ロードテストを行う方法を説明する。
Copyright© Digital Advantage Corp. All Rights Reserved.