requests.logの見るべきポイントとは?

2024年3月23日テクニカルメモ

バージョン9.0.3

requests.log とは

requests.logは、WebFOCUS Clientが処理したURL(リクエスト)の処理情報を確認することができるログファイルです。レポート処理以外にもリポジトリ上のファイル参照(IBFSパスの参照)やINCLUDE等のClient側でしか行われない処理時間を確認できます。

リポジトリ上のファイルを参照している場合にレスポンスが低下する場合があるので、どこがボトルネックになっているのかをrequests.logから確認します。

requests.logを有効にする手順

製品のデフォルト設定では無効(オフ)になっているため、以下の設定を行ってください

  1. [管理コンソール] に管理者アカウントでログイン
  2. [構成]タブ – [アプリケーション設定] – [機能診断/トレース] メニューを開く
  3. [完了時にすべてのURLログを取得] の設定を “オフ" から “完全" に変更
  4. 「保存」ボタンをクリック
  5. 画面右上の [キャッシュのクリア] をクリック
  6. ポップアップが表示されるので「OK」ボタンをクリック

requests.log の閲覧手順

  1. [管理コンソール] に管理者アカウントでログイン
  2. [機能診断]タブ – [ログファイル] メニューを開く
  3. ログ一覧の中から「requests」のリンクをクリック

出力フォルダは、/ibi/WebFOCUS90/logs です

requests.log 出力例

[2021-12-10 15:24:11,742] INFO SesStr MonitorID= 08c2d41a88863eb ClientUser= admin
:
[2021-12-10 15:37:54,729] INFO SrvEnd MonitorID= 08c2d41a88863eb UrlID= URL5 Completed= 15.37.54 ClientUser= admin RequestID= URL5Req1 SrvTime= 1439 SrvDbmsTime= 99 Node= EDASERVE ServerUser= admin ReqType= RunFex ReqInfo="Run:Domain=:Fex=carinst" Mime= HTM
[2021-12-10 15:37:54,804] INFO UrlEnd MonitorID= 08c2d41a88863eb UrlID= URL5 Completed= 15.37.54 UrlStatus= 200 ClientUser= admin UrlTime= 1545 ClientCPU= 46 dummy= 0 dummy= 0 SrvReq= 1 SrvTime= 1439 SrvDbmsReq= 1 SrvDbmsTime= 99 OutputSizeK= 6 ipAddr= 192.168.195.1 Method= GET URL= “http://wfserver/ibi_apps/WFServlet?IBIF_ex=carinst"
:
[2021-12-10 15:42:26,196] INFO SesEnd MonitorID= 08c2d41a88863eb ClientUser= admin

requests.log の読み方

ユーザのセッション情報

  • 開始(ログイン)SesStr

INFO SesStr MonitorID= 08c2d41a88863eb ClientUser= admin

  • 終了(ログアウト)SesEnd

INFO SesEnd MonitorID= 08c2d41a88863eb ClientUser= admin

  • リクエスト(URL)UrlEnd

INFO UrlEnd MonitorID= 08c2d41a88863eb UrlID= URL5 Completed= 15.37.54 UrlStatus= 200 ClientUser= admin UrlTime= 1545 ClientCPU= 46 dummy= 0 dummy= 0 SrvReq= 1 SrvTime= 1439 SrvDbmsReq= 1 SrvDbmsTime= 99 OutputSizeK= 6 ipAddr= 192.168.195.1 Method= GET URL= “http://wfserver/ibi_apps/WFServlet?IBIF_ex=carinst"

  • リクエスト(ReportingServer側の処理)SrvEnd ※UrlIDは上記のURLのものと重複します

INFO SrvEnd MonitorID= 08c2d41a88863eb UrlID= URL5 Completed= 15.37.54 ClientUser= admin RequestID= URL5Req1 SrvTime= 1439 SrvDbmsTime= 99 Node= EDASERVE ServerUser= admin ReqType= RunFex ReqInfo="Run:Domain=:Fex=carinst" Mime= HTM

項目の説明

背景が重要な項目です。

項目名値の例説明
MonitorID08c2d41a88863ebセッションID
UrlIDURL5セッションID毎の実行されたURLのユニークID
Completed15.37.54処理が終了した時分秒
UrlStatus200URLのhttpステータスコード(200は正常終了)
ClientUseradmin実行ユーザID
UrlTime1545URL全体の合計処理時間(ミリ秒)
ClientCPU46WebFOCUS Client側の処理時間(ミリ秒)
SrvReq1Reporting Server へのリクエスト数
SrvTime 1439 Reporting Server 側の処理時間(ミリ秒)
SrvDbmsTime99Reporting Server 側のDBMS処理時間(ミリ秒)
OutputSizeK6URLのアウトプットサイズ(キロバイト)
ipAddr192.168.195.1実行ユーザのIPアドレス
MethodGETHTTP リクエストのメソッドの種類
URLhttp://~(省略)実行されたURL(最大長1020文字)
RequestIDURL5Req1セッションID毎の実行された Reporting Server 処理のユニークID
NodeEDASERVE利用されたリモートサービス名
ServerUseradminReporting Server 側の実行ユーザID
ReqTypeRunFexリスエストの種類(RunFex はレポート実行)
ReqInfoRun:Domain=:Fex=carinst実行処理のサマリ情報
MimeHTMリクエストを返す拡張子
requests.log の項目概要

UrlTimeが大きいリクエストはレスポンスが遅いリクエストと判断できます。
その処理時間の内訳は、ClientCPU、SrvTime、SrvDbmsTimeになるので、どこがボトルネックになっているか確認します。
OutputSizeKが大きい場合は、そもそも処理負荷が高いリクエストの可能性があります。

Client CPU が大きい場合、リポジトリの処理が影響している可能性があります。
例えば、INCLUDEファイルが大量にあったりプロシジャのソース行数が多くなっていないかどうか確認します。

SrvDbmsTime が大きい場合、SQLの処理に時間が掛かっている場合があります。
プロシジャから実行されているSQLを確認して、処理時間の妥当性やWebFOCUSが発行したSQLが最適なものになっているかを確認します。

SrvTime が大きい場合、レポートサイズの大きさやプロシジャのコーディングに無駄が無いかどうかを確認します。