作成者: 山本 太郎|Oct 14, 2021 3:00:00 PM
Dynatraceをお使いのお客様から、以下のようなご要望をいただきました。
-
いまのところまだユーザーからクレーム等は出ていないが、もしエラーが出ているのであれば、どんなエラーが出ているかを確認して事前に対処しておきたい
-
エラーの確認方法と、そのエラーが何故出ているかの原因を特定する手順を教えてほしい。
そこで今回はHTTPエラーについて原因箇所を特定するまでの手順をご紹介いたします。
なお、操作手順、及びスクリーンショットは2021年10月現在の最新バージョンv1.227のものです。
1.発生しているHTTPエラーを確認する
はじめに、対象時間帯においてどのようなHTTPエラーが発生しているかを確認する手順をご紹介します。
① 画面1の左メニューからDigital Experience > Webを選択します。
②アプリケーションの一覧が表示されますので、確認したいアプリケーション名をクリックします。
③画面1で選択したアプリケーションの概要画面が表示され、該当アプリケーションのレスポンスやエラー等のサマリー情報が確認できます。対象時間帯(初期値はLast 2 hours)を変更する場合は、画面上部のタイムフレームから変更します。【画面2】
④画面2を下にスクロールし、『Top errors』にてHTTPエラーやJavaScriptエラーの発生状況を確認します。今回はHTTPエラーを確認する為、[Requests]のタブで[Analyze errors]をクリックします。【画面3】
⑤『Multidimensional analysis: Errors』にて時間毎のエラー件数がグラフ表示されますので、解析対象フレーム(水色)を見たい時間帯に合わせてクリックします。【画面4】
⑥画面4を下にスクロールし、『Detail analysis for selected timeframe』のグラフにて、時間帯ごとのHTTPエラーの件数と、その下に表示されるHTTPエラーの種別を確認します。【画面5】
2.HTTPエラーが発生しているユーザーや操作を確認する
次に、該当のHTTPエラーが、どのユーザー、どの操作で発生しているかを確認していきます。
①先程の『Detail analysis for selected timeframe』にて、確認したいHTTPエラーのリンクをクリックします。【画面6】
②エラー詳細画面が表示され、発生しているエラーが、どのユーザーで発生しているか、またどの操作やどの地域で発生しているか等を確認する事ができます。【画面7】
③画面を下にスクロールし、『User sessions affected by this error』にて、どのユーザーで発生したエラーなのかを確認します。【画面8】
④更に画面を下にスクロールし、『User actions affected by this error』にどのユーザー操作(画面)で発生したエラーなのかを確認できます。
ここからエラーの原因箇所を特定する為、対象のユーザー操作をクリックします。【画面9】
3.HTTPエラーの原因を特定する
最後に、該当のHTTPエラーの発生原因を確認していきます。
① 対象のユーザー操作をクリックするとユーザー操作の詳細画面に移動し、該当のユーザー操作のレスポンスやエラー等のサマリー情報が表示されます。HTTP500エラーのフィルターがかかった状態でユーザー操作の詳細画面が表示されますので、画面を下にスクロールします。【画面10】
② 『Contributors breakdown』にて、その操作のレスポンス内訳のタイミングと、フロントエンド(クライアント)側/ネットワーク/サーバ側のどこに時間がかかっているかの内訳も表示されます。さらに詳細を確認する為、 [Perform waterfall analysis]をクリックします。【画面11】
③ 『Waterfall analysis』の画面が表示され、リクエストがスタートしてから完了するまでのレスポンスの内訳と、画像やCSS等のコンテンツがどのタイミングで呼ばれて、そのレスポンスがどうだったのか等を確認する事が出来ます。該当時間帯に複数の操作があった場合はそれぞれの時間毎に見たい為、[Instances]のタブをクリックします。【画面12】
④ エラーが発生している操作は左側が赤く表示されますので、該当時間の操作をクリックします。【画面13】
⑤ 選択した1件の操作でエラー発生状況やレスポンスの内訳が表示されます。今回はPurePath(サーバ側)でエラーが発生しているので、[PurePath falled]をクリックします。【画面14】
⑥ PurePathへのリンクをクリックします。【画面15】
⑦ 『PurePaths』の画面が表示され、時間帯毎のトランザクションの件数や、トランザクションの開始時間、レスポンス時間等を確認する事ができます。画面を下にスクロールし、該当のPurePathリンクをクリックします。【画面16】
⑧ PurePathの画面では、処理の流れと実行タイミング、レスポンスの内訳等が表示されます。このトランザクションではApache→Tomcat→CouchDBの順に処理が流れ、その全てでエラーが発生しています。恐らくDBで何らかのエラーが発生してApacheやTomcatにHTTPレスポンスコードが500で返されていると思われますので、最下層のCouchDBをクリックします。【画面17】
⑨ [Summary]では、その処理がどのサービスで動いているか、どの操作から発生したか等の情報が表示されます。今回はどのようなエラーが発生しているかを確認する為、[Errors]のタブをクリックします。【画面18】
⑩ [Errors]では発生しているエラーと、エラーメッセージが表示されます。例外が出ているので、[Details]の下矢印をクリックして展開します。【画面19】
⑪ 例外の内容を確認します。今回のケースでは、接続エラーによりHTTP500エラーでレスポンスコードが返されていました。DBサーバからの接続拒否のエラーの為、該当時間帯のDBサーバの負荷状況や、ネットワークの負荷状況をご確認ください。【画面20】
以上、Webアプリケーション全体の処理から、どのようなHTTPエラーが発生しているか、またそれがどの画面操作で発生しているかを確認し、その原因箇所を特定するまでの手順をご紹介しました。
Dynatraceは様々な分析手法が用意されており、こちらは一例ですが、今回の記事が少しでも分析のお役に立ちましたら嬉しく思います。