2021.10.15

#14 Dynatraceを利用した分析手法のご紹介

HTTPエラーの原因箇所を特定する

目次

開く

     

    Dynatraceをお使いのお客様から、以下のようなご要望をいただきました。
     
    • いまのところまだユーザーからクレーム等は出ていないが、もしエラーが出ているのであれば、どんなエラーが出ているかを確認して事前に対処しておきたい
    • エラーの確認方法と、そのエラーが何故出ているかの原因を特定する手順を教えてほしい。
     
    そこで今回はHTTPエラーについて原因箇所を特定するまでの手順をご紹介いたします。
    なお、操作手順、及びスクリーンショットは2021年10月現在の最新バージョンv1.227のものです。

     

     

    1.発生しているHTTPエラーを確認する

    はじめに、対象時間帯においてどのようなHTTPエラーが発生しているかを確認する手順をご紹介します。

    ① 画面1の左メニューからDigital Experience > Webを選択します。
    ②アプリケーションの一覧が表示されますので、確認したいアプリケーション名をクリックします。

     

     

    no014img-_001-01
    no014img-_001-01

    画面1

     

     

    ③画面1で選択したアプリケーションの概要画面が表示され、該当アプリケーションのレスポンスやエラー等のサマリー情報が確認できます。対象時間帯(初期値はLast 2 hours)を変更する場合は、画面上部のタイムフレームから変更します。【画面2】

     

     

    14_2-1
    14_2-1

    画面2

     

     

    ④画面2を下にスクロールし、『Top errors』にてHTTPエラーやJavaScriptエラーの発生状況を確認します。今回はHTTPエラーを確認する為、[Requests]のタブで[Analyze errors]をクリックします。【画面3】

     

     

    14_3
    14_3

    画面3

     

     

    ⑤『Multidimensional analysis: Errors』にて時間毎のエラー件数がグラフ表示されますので、解析対象フレーム(水色)を見たい時間帯に合わせてクリックします。【画面4】

     

     

    14_4
    14_4

    画面4

     

     

    ⑥画面4を下にスクロールし、『Detail analysis for selected timeframe』のグラフにて、時間帯ごとのHTTPエラーの件数と、その下に表示されるHTTPエラーの種別を確認します。【画面5】

     

     

    14_5
    14_5

    画面5

     

     

    2.HTTPエラーが発生しているユーザーや操作を確認する

    次に、該当のHTTPエラーが、どのユーザー、どの操作で発生しているかを確認していきます。
     
    ①先程の『Detail analysis for selected timeframe』にて、確認したいHTTPエラーのリンクをクリックします。【画面6】

     

     

    14_6
    14_6

    画面6

     

     

    ②エラー詳細画面が表示され、発生しているエラーが、どのユーザーで発生しているか、またどの操作やどの地域で発生しているか等を確認する事ができます。【画面7】

     

     

    14_7
    14_7

    画面7

     

     

    ③画面を下にスクロールし、『User sessions affected by this error』にて、どのユーザーで発生したエラーなのかを確認します。【画面8】

     

     

    14_8
    14_8

    画面8

     

     

    ④更に画面を下にスクロールし、『User actions affected by this error』にどのユーザー操作(画面)で発生したエラーなのかを確認できます。
    ここからエラーの原因箇所を特定する為、対象のユーザー操作をクリックします。【画面9】

     

     

    14_9
    14_9

    画面9

     

     

    3.HTTPエラーの原因を特定する

    最後に、該当のHTTPエラーの発生原因を確認していきます。
     
    ① 対象のユーザー操作をクリックするとユーザー操作の詳細画面に移動し、該当のユーザー操作のレスポンスやエラー等のサマリー情報が表示されます。HTTP500エラーのフィルターがかかった状態でユーザー操作の詳細画面が表示されますので、画面を下にスクロールします。【画面10】
     

     

    14_10
    14_10

    画面10

     

     

    ② 『Contributors breakdown』にて、その操作のレスポンス内訳のタイミングと、フロントエンド(クライアント)側/ネットワーク/サーバ側のどこに時間がかかっているかの内訳も表示されます。さらに詳細を確認する為、 [Perform waterfall analysis]をクリックします。【画面11】

     

    14_11
    14_11

    画面11

     

     

    ③ 『Waterfall analysis』の画面が表示され、リクエストがスタートしてから完了するまでのレスポンスの内訳と、画像やCSS等のコンテンツがどのタイミングで呼ばれて、そのレスポンスがどうだったのか等を確認する事が出来ます。該当時間帯に複数の操作があった場合はそれぞれの時間毎に見たい為、[Instances]のタブをクリックします。【画面12】

     

     

    14_12
    14_12

    画面12

     

     

    ④ エラーが発生している操作は左側が赤く表示されますので、該当時間の操作をクリックします。【画面13】

     

     

    14_13
    14_13

    画面13

     

     

    ⑤ 選択した1件の操作でエラー発生状況やレスポンスの内訳が表示されます。今回はPurePath(サーバ側)でエラーが発生しているので、[PurePath falled]をクリックします。【画面14】

     

     

    14_14
    14_14

    画面14

     

     

    ⑥ PurePathへのリンクをクリックします。【画面15】

     

     

    14_15
    14_15

    画面15

     

     

    ⑦ 『PurePaths』の画面が表示され、時間帯毎のトランザクションの件数や、トランザクションの開始時間、レスポンス時間等を確認する事ができます。画面を下にスクロールし、該当のPurePathリンクをクリックします。【画面16】

     

     

    14_16
    14_16

    画面16

     

     

    ⑧ PurePathの画面では、処理の流れと実行タイミング、レスポンスの内訳等が表示されます。このトランザクションではApache→Tomcat→CouchDBの順に処理が流れ、その全てでエラーが発生しています。恐らくDBで何らかのエラーが発生してApacheやTomcatにHTTPレスポンスコードが500で返されていると思われますので、最下層のCouchDBをクリックします。【画面17】

     

     

    14_17
    14_17

    画面17

     

     

    ⑨ [Summary]では、その処理がどのサービスで動いているか、どの操作から発生したか等の情報が表示されます。今回はどのようなエラーが発生しているかを確認する為、[Errors]のタブをクリックします。【画面18】

     

     

    14_18
    14_18

    画面18

     

     

    ⑩ [Errors]では発生しているエラーと、エラーメッセージが表示されます。例外が出ているので、[Details]の下矢印をクリックして展開します。【画面19】

     

     

    14_19
    14_19

    画面19

     

     

    ⑪ 例外の内容を確認します。今回のケースでは、接続エラーによりHTTP500エラーでレスポンスコードが返されていました。DBサーバからの接続拒否のエラーの為、該当時間帯のDBサーバの負荷状況や、ネットワークの負荷状況をご確認ください。【画面20】

     

     

    14_20
    14_20

    画面20

     

     

    以上、Webアプリケーション全体の処理から、どのようなHTTPエラーが発生しているか、またそれがどの画面操作で発生しているかを確認し、その原因箇所を特定するまでの手順をご紹介しました。
    Dynatraceは様々な分析手法が用意されており、こちらは一例ですが、今回の記事が少しでも分析のお役に立ちましたら嬉しく思います。

     

    執筆者

    Y.T. 

    営業技術本部 技術サービス統括部 技術サービス1部 

    お客様担当SEとして、製品の構築から活用方法までの一連のサポートを担当
    また、お客様環境にて性能問題が発生した際には、製品のアウトプットを利用し、問題解決に向けた調査/提案業務を実施

    ■経歴
    1999年  入社
    2000年  製品テスト等、ES/1シリーズの品質管理業務を担当
    2006年  セキュリティ製品のお客様サポートを兼務
    2012年~ 中部でのお客さまサポートを担当

    主にMF/CS製品を利用したシステムリソース情報からの性能管理サポートに従事
    近年は、上記に加えAPM製品を利用したユーザー体感レスポンスやアプリケーション視点での性能管理サポートにも従事

    関連記事