トランザクション
トランザクションとは、ユーザーのブラウザーからのリクエストを処理するためのサーバーサイドのLogical Unit of Work(KUW)です。個々のウェブサービス(URL)のリクエストを処理する過程がトランザクションです。ウェブアプリケーションにおいてトランザクションは、ウェブサービス(URL)に対するHTTP Requestを受信し、Responseを返すプロセスです。
アプリケーションの性能は、これらのトランザクションの性能であると言えます。トランザクションの性能には、トランザクションの開始から終了までの時間、レスポンス時間およびリソースの使用量、トランザクション呼び出し元の属性などの情報が含まれます。
基本的には、トランザクションのレスポンス分布とトランザクション統計を使用してトランザクションの性能を分析できます。
エージェントでトランザクションのパフォーマンスを追跡および設定するため、次のオプションを 提供します。
トランザクショントレーシング
-
profile_basetime MiliSecond
既定値
500
トレースの詳細情報を収集する最少応答時間を設定します。設定した値以下の時間内にトランザクションが終了した場合、トレース情報を収集しません。ただし、5分単位で最初に呼び出されたURLとエラーが発生したトランザクションに関するトレース情報は収集します。
ノートprofile_basetime
オプションに関係なくエラーを収集するには、profile_concern_error_enabled
オプションをtrue
に設定してください。デフォルトをfalse
に設定すると、エラーがサンプリングされます
-
profile_error_step_enabled Boolean
既定値
true
プロファイルにエラー関連情報を表示するステップを追加できます。
-
trace_active_transaction_yellow_time MiliSecond
既定値
3000
アクティブトランザクションのアークイコライザーで黄色で表現する基準を設定します。
-
trace_active_transaction_red_time MiliSecond
既定値
8000
アクティブトランザクションのアークイコライザーで赤色で表現する基準を設定します。
-
hook_method_patterns String
レスポンス時間を測定するメソッドを設定します。最後のピリオド(.)を区切り文字としてクラスのFullNameとメソッドに区分され、アスタリスク(*)をワイルドカードとして使用することができます。対象が複数ある場合は、コンマ(,)で区切ります。
Examplehook_method_patterns=a.b.C1.*
-
hook_method_access_public_enabled Boolean
既定値
true
メソッドトレースを設定する場合、publicメソッドを個別のターゲットとしてのみ処理するかどうかを設定します。
-
hook_method_access_protected_enabled Boolean
既定値
true
メソッドトレースを設定する場合、protectedメソッドに限り、個別の対象として処理するかどうかを設定します。
-
hook_method_access_private_enabled Boolean
既定値
false
メソッドトレースを設定する場合、privateメソッドに限り、個別の対象として処理するかどうかを設定します。
-
hook_method_access_none_enabled Boolean
既定値
true
メソッドトレースを設定する際、no access indicatedメソッドに限り、別途対象として処理するかを設定します。
-
hook_method_ignore_prefixes String
既定値
get,set
メソッドトレースを設定する場合、トレースから除外するクラスをprefixに設定します。
-
hook_method_ignore_classes String
メソッドトレースを設定する場合は、 トレースから除外するクラスをprefixに設定します。
-
trace_service_port_enabled Boolean
既定値
false
トランザクション名にポート番号を追加します。
-
httpc_status_ignore String
既定値
Empty
HTTPのステータスコードがエラー(
HTTPC_ERROR
)の場合、無視します。複数の値を対象にする場合は、コンマ(,)を区切り文字として使用してください。whatap.confhttpc_status_ignore=404,500
-
httpc_status_ignore_set String
既定値
Empty
whatap.error.HTTPC_ERROR
を無視します。複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。ノートhttpc_status_ignore_set=/a/b/c:400,/a/ab/c:404
に設定します。 この時に、URLは統計/エラー分析にHTPC_URL
の値を入力します。
HTTPトランザクションの追跡
-
trace_normalize_enabled Boolean
既定値
true
トランザクションURLを解析および正規化する機能を有効にします。
ノートfalse
に値を変更すると、パスパラメータの構文解析が無効になります。この場合、統計データの意味が弱くなるため、デバッグ目的のみで使用することをお勧めします。 -
trace_auto_normalize_enabled Boolean
既定値
true
トランザクションURLを正規化すると、パターン値をアノテーションから抽出して自動的にパーシングする機能がアクティブになります。
-
trace_normalize_urls String
正規化するトランザクションURLパターンを設定します。呼び出しURLパターンを解析して、pathパラメータを削除します。
ノート例)
/a/{v}/b
を宣言する場合は、a/123/b
→a/{v}/b
に置き換えます。複数登録する場合は、コンマ(,)を区切り文字として使用します。置換パターンをクリーンアップした後、補足する必要があります。 -
web_static_content_extensions String
既定値
js, htm, html, gif, png, jpg, css, swf, ico
静的コンテンツであると判断する拡張子を設定します。このオプションで設定した拡張子を持つトランザクションは、トレース追跡とカウントから除外されます。
-
trace_transaction_name_header_key String
設定したHTTP header keyから抽出した値をトランザクションの名前の末尾に追加します。
-
profile_http_header_enabled Boolean
既定値
false
トレース履歴にHTTPヘッダー情報を記録するには、
true
に設定します。 -
profile_http_parameter_enabled Boolean
既定値
false
トレース履歴にHTTPパラメータ情報を記録するには、
true
に設定します。パラメータは、他のセキュリティ キーを入力して参照できます。ノートセキュリティキーは、WASサーバ_
${WHATAP_AGENT_HOME}
/paramkey.txt_ ファイル内で6桁で設定します。paramkey.txt ファイルが存在しない場合は、ランダム値で自動的に生成します。 -
profile_http_header_url_prefix String
トレース履歴にHTTPヘッダー情報を書き込むための宛先URLのprefixを定義するために使用します。
-
profile_http_parameter_url_prefix String
トレース履歴にhttpパラメータ情報を記録する対象URLのprefixを定義するときに使用します。
-
trace_ignore_url_set String
トランザクション追跡から除外するURLを設定します。2つ以上の値を設定する場合は、コンマ(,)を区切り文字として使用します。
-
trace_ignore_url_prefix String
トランザクション追跡から除外するURL prefixを設定します。2つ以上の値を設定する場合は、コンマ(,)を区切り文字として使用します。
-
ignore_http_method String
既定値
PATCH,OPTIONS,HEAD,TRACE
設定したHTTPメソッド(Method)で要求されたトランザクション情報は収集しません。複数設定するには、コンマ(,)を区切り文字として利用してください。
whatap.conf# e.g. http_methodがOPTIONS、HEADであるトランザクションを「追跡」
ignore_http_method=PATCH,TRACE
# e.g. http_methodがOPTIONS、HEADであるトランザクションを「無視」
ignore_http_method=OPTIONS,HEAD -
profile_http_header_ignore_keys String
既定値
Cookie,cookie,accept,user-agent,referer
HTTPヘッダー名を指定して収集情報から除外できます。指定したHTTPヘッダー名の値は収集から除外され、'#'と表示されます。
-
profile_http_parameter_keys String
設定されたキーに該当するパラメータ情報のみを記録します。複数を登録するときは、コンマ(,)を区切り文字として利用してください。設定しない場合、すべてのパラメータ情報が記録されます。
-
status_ignore String
既定値
Empty
無視するHTTPのステータスコードを設定できます。複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。
whatap.conf# example
status_ignore=408,500 -
status_ignore_set String
既定値
Empty
HTTPステータスリターンコードの中で無視したいコードをURL単位で設定できます。
whatap.conf# example
status_ignore_set=/api/test/timeout/{time}:408,/api/test/timeout:200,/error:500 -
transaction_status_error_enable Boolean
既定値
true
正常応答ではなくHTTP401、403のようなステータスコードがリターンされた場合、エラーとして処理するかどうかを設定します。
非HTTPトランザクションのトレース
-
hook_service_patterns String
NON-Httpトランザクション追跡のための開始点パターンを設定します。ワイルドカード文字は使用できません。2つ以上の値を設定するにはコンマ(,)を区切り文字として利用してください。
-
trace_background_socket_enabled Boolean
既定値
true
ソケット (TCP) がトランザクションではなくバックグラウンドスレッドによってオープンされた場合に接続がオープンされ、トランザクションが開始された場合にのみ、オープントレースします。
マルチトランザクショントレース
-
mtrace_rate Int
既定値
0
最初のトランザクションが発生したときに発行されるマルチトランザクション追跡機能(Multi Transaction ID、以下MTID)の発行レートを設定するオプションです。
0
から100
まで設定できます。MTIDを追跡することで、登録したすべてのアプリケーション間の呼び出しを確認できます。同じプロジェクトに属するアプリケーションは、CallerとCallee機能を使用してトランザクションのトレースを直接確認することができます。 -
mtrace_spec String
既定値
v1
現在のインスタンスのアプリケーションのバージョンを設定します。任意の文字列を入力できます。このデータは、呼び出し統計のために使用します。
-
mtrace_caller_key String
既定値
x-wtap-mst
MTID追跡に使用するCaller Key Nameを設定します。
-
mtrace_callee_key String
既定値
x-wtap-tx
MTID 追跡に使用するCallee Key Nameを定義します。
-
mtrace_callee_id_recv_enabled Boolean
既定値
false
MTID追跡時に受信したCallee IDのトレースを表します。
-
mtrace_alltx_enabled Boolean
既定値
false
log4jなどのロギングシステムに接続するために、すべてのトランザクションのMTIDを追跡できます。
-
mtrace_basetime Miliseconds
既定値
100
mtrace_alltx_enabled
オプションの値がtrue
の場合、多くのログが残る可能性があります。この場合、トレースログの量を減らす必要があります。 -
stat_mtrace_enabled Boolean
既定値
false
CallerとCalleeの相関統計を収集します。Callerに適用するとCallerの詳細情報が送信され、Calleeを適用するとurl単位のCaller-Calleeの呼び出し統計情報が収集サーバーに送信されます。
トレースデータサンプリング
Node.js Agent v0.4.94 or later
Node.jsエージェントv0.4.94バージョンにsocket.ioモニタリングモジュールを追加しました。trace_sampling_enabled
、trace_sampling_tps
オプションを使用して、サンプリングされたデータを確認できます。trace_ignore_url_prefix
オプションに/socket.io
パスを追加して、トレースしないように設定してください。
-
trace_sampling_enabled Boolean
既定値
false
トレースデータサンプリングの収集有無を設定できます。
-
trace_sampling_tps Number
既定値
1000
トレースデータのサンプリング数を設定できます。設定したサンプリング数を超えるデータは送信せず、1秒ごとに初期化します。