トランザクション
トランザクションとは、ユーザーのブラウザからのリクエストを処理するためのサーバーサイドのLogical Unit of Work(KUW)です。個々のウェブサービス(URL)のリクエストを処理する過程がトランザクションです。ウェブアプリケーションにおいてトランザクションは、ウェブサービス(URL)に対するHTTP Requestを受信し、Responseを返すプロセスです。
アプリケーションの性能は、これらのトランザクションの性能であると言えます。トランザクションの性能には、トランザクションの開始から終了までの時間、レスポンス時間およびリソースの使用量、トランザクション呼び出し元の属性などの情報が含まれます。
基本的には、トランザクションのレスポンス分布とトランザクション統計を使用してトランザクションの性能を分析できます。
トランザクショントレーシング
以下は、アプリケーションの各トランザクションの実行パスを詳細に追跡できるエージェントのオプションです。最小応答時間からトランザクションの実行ステップ数まで、様々な部分を調整可能です。
-
profile_basetime Millisecond
既定値
500
トランザクションが設定値以下の時間内に終了した場合、トレース情報を収集しません。ただし、5分単位で最初に呼び出されたURL、エラーが発生したトランザクションに関するトレース情報は収集されます。
-
profile_step_normal_count Int
既定値
1000
トランザクショントレースの最大ステップ数を指定します。
-
profile_step_max_count Int
既定値
1024
収集可能なトレースステップの最大数を設定します。収集されたトレースステップの数がこの値を超えると、その後収集されるステップはすべて捨てられます。
注意設定値を上げすぎると、メモリ使 用量が増加します。既定値を変更しないことをお勧めします。
-
profile_step_heavy_count Int
既定値
1000
基本ステップの収集数を超えるた場合は、実行時間が
profile_step_heavy_time
を超えるステップのみを収集します。そのステップの収集可能な数を設定します。Default設定のprofile_step_normal_count
が800の場合、最大200個のステップが収集されます。 -
profile_step_heavy_time Millisecond
既定値
100
Heavyなステップの基準を指定します。指定された値より実行時間が長い場合は、
profile_step_normal_count
を超える場合でもprofile_step_heavy_count
以内で記録されます。 -
query_string_enabled Boolean
既定値
false
トランザクションURLのクエリ文字列をまとめて収集する機能を有効にします。
query_string_urls
に登録されたURLのみ適用されます。 -
query_string_urls String
トランザクションからクエリストリングを収集するURLを登録します。
-
split_profile_enabled Boolean
既定値
false
一定量のプロファイルを仮想トランザクションに分割して、より多くのプロファイル情報を収集します。複数のトランザクション一覧に分割されます。
ノート同時に設定された場合、優先順位は次の通りです。
-
split
-
large
-
circular
-
-
large_profile_enabled Boolean
既定値
false
一定量のプロファイルを圧縮および分割して、メモリを増やことなく多くのプロファイル情報を収集できます。
ノート-
約1万件以下のプロファイル(ステップ) 情報を収集できます。ボリュームが大きい場合は、
split_profile_enabled
オプションの使用をお勧めします。 -
同時に設 定された場合、優先順位は次の通りです。
-
split
-
large
-
circular
-
-
-
circular_profile_enabled Boolean
既定値
false
最新の1024個のプロファイリング情報を収集します。
ノート同時に設定された場合、優先順位は次の通りです。
-
split
-
large
-
circular
-
-
profile_zip_enabled Boolean
既定値
true
プロファイル情報を圧縮して送信します。既定値は、
true
に設定されています。 -
trace_active_transaction_slow_time Millisecond
既定値
3000
収集情報を確認するダッシュボードのアクティブトランザクションアークイコライザーグラフでSlow区間として表示できるトランザクション応答時間の基準を指定します。トランザクションの応答時間が指定時間を超えた場 合、Slowアクティブトランザクションの数に含まれます。
-
trace_active_transaction_very_slow_time Millisecond
既定値
8000
-
trace_active_transaction_lost_time Millisecond
既定値
300000
トランザクションが終了する制限時間の5分以内にトランザクションが終了しない場合、トランザクション情報はそれ以上収集されません。トランザクションのトレース情報から"Lost Connection"を確認できます。
-
trace_useragent_enabled Boolean
既定値
false
値が
true
の場合、トランザクションのユーザーエージェント情報を収集します。 -
trace_referer_enabled Boolean
既定値
false
値が
true
であれば、トランザクションのRefere情報を収集します。
例外処理
以下は、アプリケーションで発生する例外を管理およびモニタリングするためのオプションです。ビジネス例外を登録し、関連する統計を収集することで、アプリケーションの安定性を確認できます。例外として処理された項目は、ヒットマップまたはトレース分析画面で正常トランザクションとして表示されます。
-
biz_exceptions String
特定のErrorまたはExceptionをBusiness Exceptionとして指定します。ヒットマップはエラーと表示せず、統計情報として収集されます。収集されるError Class名と同じように適用します。コンマを区切り文字として複数登録できます。
whatap.confbiz_exceptions=*errors.errorString, *echo.HTTPError, *url.Error, *exceptions.CustomErrors
Tipsエラークラス収集 / ヒットマップ表示レベル:INFO(青色) / エラー統計を含む
-
ignore_exceptions String
登録したExceptionのエラー自体を無視します。例外する文字列は、プロファイルのエラーの種類またはエラー統計に関連するクラス項目の文字列です。
Goでは、発生するerrorのTypeを文字列で表記します。
thr.ErrorClassName = fmt.Sprintf("%T", err)
thr.ErrorMessage = err.Error()
# error Type 出力
*errors.errorString
*echo.HTTPError
*url.Error