パフォーマンス管理ソリューションDynatraceをお使いのお客様で、「Dynatraceをもっとうまく使いこなしたいが、機能が多いので、具体的にどう分析して遅延の原因箇所を特定したら良いのか分からない」、といった声を稀に頂くことがあります。
そちらの解決として、今回は監視対象のWebアプリケーションで実行されたユーザーアクション全体から、気になるユーザーアクションを分析、原因箇所を特定するまでの手順をご紹介させていただきます。
はじめに、分析対象となるユーザーアクションを探していく必要があります。まず、そちらの手順をご紹介します。
1.Navigation menu>Applicationsを選択します。
2.Applicationの一覧が表示されます。確認したいApplication名をクリックします。
3.前画面で選択したApplicationの概要画面が表示されます。
4.前画面のまま下にスクロールし、「Top 3 user actions」の[View full details]をクリックします。
5.選択しているアプリケーションの「User action analysis」が表示されます。
6.前画面のまま下にスクロールし、「Top 100 user action」を確認します。ここでは、右上の時間枠で実行された回数がTop 100のユーザーアクションが表示されます。Durationで並び替えて、SLAや決められた閾値を超えたものが無いかご確認ください。
7.前画面で選択したユーザーアクションページが表示されます。「Contributors breakdown」から、[View analysis in waterfall chart]をクリックします。
8.選択しているユーザーアクションの「Waterfall analysis」画面が表示されます。[Instances of this action]タブをクリックすると、選択した時間枠で実行されたユーザーアクションの一覧が表示されます。Durationで並び替えて、他の時間帯より遅くなっているものや、任意の時間に実行されたものなど、分析したいユーザーアクションをクリックしてください。
9.前画面で選択した時間に該当するユーザーアクションの「Waterfall analysis」が表示されます。Waterfall analysisで表示される横棒は、選択したユーザーアクション内で実行されていた、1つ1つのリクエストです。
以降の分析は、フロント側の分析行う場合は、2.フロント側の分析を、サーバー側の分析を行う場合は3. サーバー側の分析:PurePath分析を、参照してください。
フロント側で時間がかかっている場合、Dynatraceでは以下を確認することができます。
A.ページロードに時間がかかっている要因
→ 2-A.ページロードに時間がかかっている要因は?へ
B.ページロードの処理毎の内訳でどこに時間がかかっているか?
→ 2-B.ページロードの処理毎の内訳でどこに時間がかかっているか?へ
Waterfall analysisの上部にあるタイルは、Top findingsと呼ばれ、フロント側の処理のうちユーザーアクションのユーザー体感の悪化の要因となるものを提案します。
各タイルをクリックすることで、ウォーターフォールグラフの中から該当するリソースを絞りこむことができます。
以下では、Top findingsの一例をご紹介させていただきます。
|
PurePath分析が可能なリクエストに絞ることができます。 |
ユーザーアクション内で検出されたJavascriptエラーがカウントされます。 →エラーによりパフォーマンスは悪化するので、エラーが発生している場合は、エラー箇所に対し改善を行う必要があります。 |
|
非圧縮のテキストリソースがカウントされます。 →非圧縮のテキストリソースよりも、圧縮されたテキストリソースの方が転送量が削減されるため、ページの読み込み速度を向上することができます。 |
|
100kBを超えたリソースがカウントされます。 →読み込むリソースが多いと、その分サーバーへの通信の回数が増えるため、処理が遅くなる要因となります。また、大きいリソースが多いほど、通信量が増えるので、処理が遅くなる要因となります。 |
|
ブラウザーのキャッシュ率が50%以下のリソースがカウントされます。 →ブラウザーのキャッシュヒット率が高ければ、サーバーへのリクエスト回数を減らすことができ、レスポンス速度が速くなります |
Waterfall analysisの横棒グラフに表示される内訳から、画面操作をしてからページ表示が完了するまでのどこの処理で時間がかかっていたかを確認することができます。
サーバー側で遅くなっており、WebサーバーやWebアプリケーションサーバーで実行された遅い原因となっているコード等を探していくには、「PurePath分析」と呼ばれる分析で遅延箇所を特定していきます。
1.ユーザーアクションの「Waterfall analysis」画面からアプリ側で処理が行われているリクエストをクリックすると、[View PurePath]ボタンが表示されるので、分析したいリクエストをクリックします。
2.選択したリクエストのPurePathの概要画面が表示されます。
3.ドリルダウンしたいService名をクリックします。
一番上に表示されているServiceは、以下の処理の呼び出し側なので、基本的には一番上のサービスから選択していきます。クリックすると、棒グラフが詳細画面に変わります。
どのクラス・メソッドが実行され、呼び出されたかは、[Code level]タブをクリックして見ていきます。
コードレベルのメソッド実行とそのタイミングが表示されます。
↓
以上が、Webアプリケーション全体の処理から、監視対象のWebアプリケーションで、実行されたユーザーアクション全体から、気になるユーザーアクションを分析し、原因箇所を特定する手順をご紹介させていただきました。Dynatraceは様々な分析手法が用意されており、こちらは一例となりますが、今回の記事が少しでも分析のお役に立てば嬉しく思います。