Web アプリケーションのパフォーマンスを監視するMonitor performance in web applications

アプリケーションが正常に実行されていること、および障害がすぐに検出されることを確認します。Make sure your application is performing well, and find out quickly about any failures. Application Insights を使用すると、パフォーマンスの問題や例外が通知され、問題の根本原因の検出と診断が支援されます。Application Insights will tell you about any performance issues and exceptions, and help you find and diagnose the root causes.

Application Insights は、Java と ASP.NET の Web アプリケーションとサービス、WCF サービスの両方を監視できます。Application Insights can monitor both Java and ASP.NET web applications and services, WCF services. それらは、オンプレミスで、仮想マシン上で、または Microsoft Azure Websites としてホストできます。They can be hosted on-premises, on virtual machines, or as Microsoft Azure websites.

クライアント側で、Application Insights は、Web ページと、iOS、Android、Windows ストア アプリを含むさまざまなデバイスからテレメトリを取得できます。On the client side, Application Insights can take telemetry from web pages and a wide variety of devices including iOS, Android, and Windows Store apps.

パフォーマンス モニターの設定Set up performance monitoring

プロジェクトに Application Insights を追加していない場合 (つまり、ApplicationInsights.config がない場合)、以下のいずれかの方法で開始します。If you haven't yet added Application Insights to your project (that is, if it doesn't have ApplicationInsights.config), choose one of these ways to get started:

パフォーマンス メトリックの監視Exploring performance metrics

Azure ポータルで、アプリケーション用に設定した Application Insights リソースを参照します。In the Azure portal, browse to the Application Insights resource that you set up for your application. 概要ブレードに、基本的なパフォーマンス データが表示されます。The overview blade shows basic performance data:

詳細を表示したり、より長い期間の結果を表示したりするには、グラフをクリックします。Click any chart to see more detail, and to see results for a longer period. たとえば、[要求] タイルをクリックして、次の時間範囲を選択します。For example, click the Requests tile and then select a time range:

クリックしてより多くのデータを表示し、時間範囲を選択する

グラフをクリックして表示するメトリックを選択するか、新しいグラフを追加してそのメトリックを選択します。Click a chart to choose which metrics it displays, or add a new chart and select its metrics:

グラフをクリックし、メトリックを選択する

注意

すべてのメトリックのチェック ボックスをオフにしてくださいUncheck all the metrics to see the full selection that is available. メトリックはグループに分けられ、グループ内のあるメンバーが選択されると、そのグループのメンバーのみが表示されます。The metrics fall into groups; when any member of a group is selected, only the other members of that group appear.

どのような意味がありますか?What does it all mean? パフォーマンス タイルとレポートPerformance tiles and reports

パフォーマンスに関する各種メトリックを取得できます。There are various performance metrics you can get. まず、アプリケーション ブレードに既定で表示されるメトリックから始めます。Let's start with those that appear by default on the application blade.

RequestsRequests

指定の期間に受け取った HTTP 要求の数です。The number of HTTP requests received in a specified period. これを他のレポートにおける結果と比較して、負荷が変化するとアプリケーションの動作がどのように変わるかを確認します。Compare this with the results on other reports to see how your app behaves as the load varies.

HTTP 要求には、ページ、データ、画像に関するすべての GET 要求または POST 要求が含まれます。HTTP requests include all GET or POST requests for pages, data, and images.

タイルをクリックして、特定の URL のカウントを取得します。Click on the tile to get counts for specific URLs.

平均応答時間Average response time

アプリケーションに入力した Web 要求と返された応答の間の時間を測定します。Measures the time between a web request entering your application and the response being returned.

各ポイントは移動平均を示しています。The points show a moving average. 多くの要求がある場合、グラフ内の明確なピークや下落以外に、平均から逸脱している要求が存在することがあります。If there are many requests, there might be some that deviate from the average without an obvious peak or dip in the graph.

異常なピークを探します。Look for unusual peaks. 通常、要求の数が多くなれば応答時間も長くなることが想定されます。In general, expect response time to rise with a rise in requests. 上昇の形が不均衡な場合、アプリケーションがリソース制限 (CPU、および CPU が使用するサービス機能など) に達した可能性があります。If the rise is disproportionate, your app might be hitting a resource limit such as CPU or the capacity of a service it uses.

タイルをクリックして、特定の URL の時間を取得します。Click the tile to get times for specific URLs.

[アプリケーションの正常性] ウィンドウのスクリーンショット。要求と応答時間の移動平均を時系列の折れ線グラフで示しています。

最も遅い要求Slowest requests

最も遅い要求と、その応答時間の一覧のスクリーンショット。

パフォーマンス チューニングが必要となる可能性がある要求を示します。Shows which requests might need performance tuning.

失敗した要求Failed requests

失敗した要求 (受信できない例外がスローされた要求) の数を時系列で示したグラフのスクリーンショット。

受信できない例外がスローされた要求の数。A count of requests that threw uncaught exceptions.

タイルをクリックして、特定の障害の詳細を表示したり、個別の要求を選択してその詳細を表示したりします。Click the tile to see the details of specific failures, and select an individual request to see its detail.

障害の代表的な例だけが、それぞれの検査用に保持されます。Only a representative sample of failures is retained for individual inspection.

その他のメトリックOther metrics

表示できる他のメトリックを確認するには、グラフをクリックし、すべてのメトリックを選択解除してすべてのメトリック セットを表示します。To see what other metrics you can display, click a graph, and then deselect all the metrics to see the full available set. (i) をクリックし、各メトリック定義を表示します。Click (i) to see each metric's definition.

すべてのメトリックを選択解除し、全セットを表示する

いずれかのメトリックを選択すると、同じグラフ上に表示できない他のメトリックは無効になります。Selecting any metric disables the others that can't appear on the same chart.

アラートの設定Set alerts

すべてのメトリックの異常な値を電子メールで通知するには、アラートを追加します。To be notified by email of unusual values of any metric, add an alert. アカウント管理者または特定の電子メール アドレスのいずれかに電子メールを送信することを選択できます。You can choose either to send the email to the account administrators, or to specific email addresses.

メトリックス エクスプローラーから [アラート ルールの追加] ダイアログ ボックスに移動する方法を、スクリーンショットを矢印で接続して示しているスクリーンショット。

その他のプロパティの前に、リソースを設定します。Set the resource before the other properties. パフォーマンスまたは使用状況のメトリックにアラートを設定する場合、Web テスト リソースは選択しないでください。Don't choose the webtest resources if you want to set alerts on performance or usage metrics.

しきい値を入力するように求められたら、単位に注意してください。Be careful to note the units in which you're asked to enter the threshold value.

[アラートの追加] ボタンが表示されません。I don't see the Add Alert button. これは、読み取り専用のアクセス許可しかないグループ アカウントなのでしょうか?- Is this a group account to which you have read-only access? アカウント管理者にご確認ください。Check with the account administrator.

問題の診断Diagnosing issues

パフォーマンス上の問題を検出して診断するためのいくつかのヒントを以下に記します。Here are a few tips for finding and diagnosing performance issues:

過去のパフォーマンス調査を利用し、パフォーマンスのボトルネックを探して修正するFind and fix performance bottlenecks with performance investigation experience

過去のパフォーマンス調査を利用し、Web アプリの操作のパフォーマンス低下を調べることができます。You can use the performance investigation experience to review slow performing operations in your Web app. 特定の低速な操作をすばやく選択し、Profiler を使用して、低速な操作の根本原因となっているコードを特定することができます。You can quickly select a specific slow operation and use Profiler to root cause the slow operations down to code. 選択した操作に対して表示される新しい期間分布を使用すると、そのエクスペリエンスが顧客にとってどれだけ好ましくないかがひとめでわかります。Using the new duration distribution shown for the selected operation you can quickly at a glance assess just how bad the experience is for your customers. 低速な操作ごとに、その影響を受けたユーザーの操作の数を確認できます。You can see how many of your user interactions were impacted for each slow operation. 次の例では、[GET Customers/Details](顧客/詳細の取得) 操作のエクスペリエンスを詳しく見ています。In the following example, we've decided to take a closer look at the experience for GET Customers/Details operation. 期間分布を見ると、3 つのスパイクがあることがわかります。In the duration distribution, we can see that there are three spikes. 最も左のスパイクは 400 ミリ秒付近にあり、非常に反応がよいことがわかります。Leftmost spike is around 400 ms and represents great responsive experience. 中央のスパイクは 1.2 秒付近にあり、中程度であることがわかります。Middle spike is around 1.2 s and represents a mediocre experience. 最後になりますが、3.6 秒の地点に 99 パーセンタイルを表す小さなスパイクがもう 1 つあります。これは、顧客が不満を感じて去ってしまう原因になっている可能性があります。Finally at the 3.6 s we have another small spike that represents the 99th percentile experience, which is likely to cause our customers to leave dissatisfied. このエクスペリエンスは、同じ操作の高速なエクスペリエンスよりも 10 倍低速です。That experience is ten times slower than the great experience for the same operation.

[GET Customers/Details](顧客/詳細の取得) の 3 つの期間スパイク

この操作のユーザー エクスペリエンスをより深く理解するために、より長い時間範囲を選択することができます。To get a better sense of the user experiences for this operation, we can select a larger time range. また、操作が低速な特定の時間枠で時間を絞り込むこともできます。We can then also narrow down in time on a specific time window where the operation was slow. 次の例では、既定の 24 時間の時間範囲から 7 日間の時間範囲に切り替えた後、12 日 (火) から 13 日 (水) の 9:47 ~ 12:47 の時間枠にズームインしています。In the following example, we've switched from the default 24 hours time range to the 7 days time range and then zoomed into the 9:47 to 12:47 time window between Tue the 12th and Wed the 13th. 右側では期間分布と、サンプルとプロファイラー トレースの数が両方とも更新されています。Both the duration distribution and the number of sample and profiler traces have been updated on the right.

パフォーマンス (プレビュー) のスクリーンショット。1 つの時間枠で 7 日間という範囲に期間スパイクが 3 つあります。

次に、低速なエクスペリエンスを絞り込むために、95 番目から 99 番目のパーセンタイルまでの期間にズームインします。To narrow in on the slow experiences, we next zoom into the durations that fall between 95th and the 99th percentile. これらは、ユーザーの操作のうち低速な 4% を表します。These represent the 4% of user interactions that were slow.

7 日間の範囲と時間枠における [GET Customers/Details](顧客/詳細の取得) の 3 つの期間スパイクのスクリーンショット。

ここで、[サンプル] ボタンをクリックして代表的なサンプルを見たり、[Profiler traces](Profiler トレース) ボタンをクリックして代表的なプロファイラー トレースを見たりできます。We can now either look at the representative samples, by clicking on the Samples button, or at the representative profiler traces, by clicking on the Profiler traces button. この例には、対象の時間枠と範囲期間で、[GET Customers/Details](顧客/詳細の取得) 操作について収集された 4 つのトレースがあります。In this example, there are four traces that have been collected for GET Customers/Details in the time window and range duration of interest.

ときには、コードではなくコードで呼び出される依存関係に問題があることがあります。Sometimes the issue will not be in your code, but rather in a dependency your code calls. このような低速の依存関係を調査するには、パフォーマンス トリアージ ビューの [依存関係] タブに切り替えます。You can switch to the Dependencies tab in the performance triage view to investigate such slow dependencies. パフォーマンス ビューでは既定でトレンド平均が示されますが、ここで本当に見たいのは 95 パーセンタイル (または成熟したサービスを監視している場合は 99 パーセンタイル) です。By default the performance view is trending averages, but what you really want to look at is the 95th percentile (or the 99th, in case you are monitoring a mature service). 次の例では、PUT fabrikamaccount という名前の低速な Azure BLOB 依存関係に焦点を当てています。In the following example we have focused on the slow Azure BLOB dependency, where we call PUT fabrikamaccount. 良好なエクスペリエンスは 40 ミリ秒付近で多く発生しています。一方、それよりも 3 倍遅い同じ依存関係への低速な呼び出しが 120 ミリ秒付近で多く発生しています。The good experiences cluster around 40 ms, while the slow calls to the same dependency are three times slower, clustering around 120 ms. これらの呼び出しが重なって対応する操作が顕著に遅くなるまでに多くはかかりません。It doesn't take many of these calls to add up to cause the respective operation to noticeably slow down. [操作] タブで実行できるのと同様に、代表的なサンプルとプロファイラー トレースを掘り下げることができます。You can drill into the representative samples and profiler traces, just like you can with the Operations tab.

7 日間の範囲と時間枠における [GET Customers/Details](顧客/詳細の取得) の 3 つの期間スパイク

パフォーマンス調査によって、重点としたサンプル セットと共に関連情報が表示されます。The performance investigation experience shows relevant insights along side the sample set you decided to focus on. 利用可能なすべての洞察を調べる最も良い方法は、30 日間の時間範囲に切り替えた後、[Overall](全体) を選択して、過去 1 か月間のすべての操作についての分析を表示することです。The best way to look at all of the available insights is to switch to a 30 days time range and then select Overall to see insights across all operations for the past month.

パフォーマンス (プレビュー) のスクリーンショット。[Overall](全体) ウィンドウが開いており、[分析情報] が選択されています。

次のステップNext steps

Web テスト - 世界中から定期的に Web 要求をアプリケーションに送信します。Web tests - Have web requests sent to your application at regular intervals from around the world.

診断トレースの収集と検索 - トレース呼び出しを挿入し、結果を詳しく調べて問題を特定します。Capture and search diagnostic traces - Insert trace calls and sift through the results to pinpoint issues.

使用状況の追跡 - アプリケーションの使用状況を調べます。Usage tracking - Find out how people use your application.

トラブルシューティング と Q & ATroubleshooting - and Q & A