トランザクション
トランザクションとは、ユーザーのブラウザからのリクエストを処理するためのサーバーサイドの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.*
ノート-
このオプションで登録したメソッドは、ヒットマップ、トレース分析またはトランザクション情報画面のMethodステップで確認できます。
-
なるべく小さい範囲に適用してください。広い範囲に適用すると、アプリケーションの性能が低下する恐れがあります。
-
-
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メソッドに限り、別途対象として処理するかを設定します。
-
trace_service_port_enabled Boolean
既定値
false
トランザクション名にポート番号を追加します。
-
profile_zip_enabled Boolean
既定値
false
プロファイル情報を圧縮転送します。
例外処理
以下は、アプリケーションで発生する例外を管理およびモニタリングするためのオプションです。特定の例外を無視したり、HTTPステータスコードがエラーの場合にエラーとして処理可否を設定できます。例外として処理された項目は、ヒットマップまたはトレース分析画面で正常なトランザクションとして表示されます。
-
httpc_status_ignore String
HTTPのステータスコードがエラー(
HTTPC_ERROR
)の場合、無視します。複数の値を対象にする場合は、コンマ(,)を区切り文字として使用してください。whatap.confhttpc_status_ignore=404,500
TipsHTTPステータスエラーコード無視 / エラー統計を含まない
-
httpc_status_ignore_set String
whatap.error.HTTPC_ERROR
を無視します。複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。httpc_status_ignore_set=/a/b/c:400,/a/ab/c:404
に設定します。 この時に、URLは統計/エラー分析にHTPC_URL
の値を入力します。whatap.confhttpc_status_ignore_set=/a/b/c:400,/a/ab/c:404
TipsHTTPステータスエラーコード無視 / エラー統計を含まない
HTTPトランザクションの追跡
以下は、HTTPリクエストと応答に関連する様々な情報を追跡および記録するエージェントのオプションです。これにより、ユーザーはアプリケーションのHTTPトランザクションを細かくモニタリングし分析できます。トランザクション名にパラメータ値を追加または特定のURLやHTTPメソッドを除外できます。またHTTPヘッダー情報やパラメータ情報を含め、トランザクションをより詳細に記録できます。
-
trace_normalize_enabled Boolean
既定値
true
トランザクションURLをパーシングし、正規化する機能を有効にします。
ノートfalse
に値を変更すると、パスパラメータのパーシングが無効になります。この場合、統計データの意味が弱くなるため、デバッグ目的のみで使用することをお勧めします。 -
trace_auto_normalize_enabled Boolean
既定値
true
トランザクションURLを正規化すると、パターン値をアノテーションから抽出して自動的にパーシングする機能がアクティブになります。
-
trace_normalize_urls String
正規化するトランザクションURLパターンを設定します。呼び出しURLパターンをパーシングして、パスパラメータを削除します。
ノート例)
/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
に設定します。パラメータは、他のセキュリティ キーを入力して参照できます。ノート-
Node.jsエージェント 0.4.95バージョン未満: セキュリティキーは、WASサーバー_
${WHATAP_AGENT_HOME}
/paramkey.txt_ファイル内に 6 桁で作成します。paramkey.txtファイルが存在しない場合は、ランダム値で自動生成します。 -
Node.jsエージェント 0.4.95バージョン以降: セキュリティキーは、WASサーバー_
${WHATAP_AGENT_HOME}
/security.conf_ファイル内にparamkey
キー値を確認してください。security.confファイルが存在しない場合は、paramkey
キー値をWHATAPで自動生成します。
-
-
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つ以上の値を設定する場合は、コンマ(,)を区切り文字として使用します。
ノートこのオプションを通じて登録したURLは、ヒットマップ, トレース分析またはトランザクション情報画面で収集が除外されます。
-
trace_ignore_url_prefix String
トランザクション追跡から除外するURL prefixを設定します。2つ以上の値を設定する場合は、コンマ(,)を区切り文字として使用します。
ノートこのオプションを通じて登録したURLは、ヒットマップ, トレース分析またはトランザクション情報画面で収集が除外されます。
-
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ノートこのオプションを通じて登録したHTTPメソッドは、ヒットマップ, トレース分析またはトランザクション情報画面で収集が除外されます。
-
ignore_http_lost_connection Boolean
既定値
false
true
に設定する場合、Lost connectionエラーを収集しません。 -
profile_http_header_ignore_keys String
既定値
Cookie,cookie,accept,user-agent,referer
HTTPヘッダー名を指定して収集情報から除外できます。指定したHTTPヘッダー名の値は収集から除外され、'#'と表示されます。
-
profile_http_parameter_keys String
設定されたキーに該当するパラメータ情報のみを記録します。複数を登録するときは、コンマ(,)を区切り文字として利用してください。設定しない場合、すべてのパラメータ情報が記録されます。
-
status_ignore String
無視するHTTPのステータスコードを設定できます。複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。
whatap.conf# example
status_ignore=408,500 -
status_ignore_set String
HTTPステータスリターンコードの中で無視したいコードをURL単位で設定できます。
whatap.conf# example
status_ignore_set=/api/test/timeout/{time}:408,/error:500 -
transaction_status_error_enable Boolean
既定値
true
正常応答ではなくHTTP401、403のようなステータスコードがリターンされた場合、エラーとして処理するかどうかを設定します。
非HTTPトランザクションのトレース
以下は、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
既定値
true
トレースデータサンプリングの収集有無を設定できます。
-
trace_sampling_tps Number
既定値
1000
トレースデータのサンプリング数を設定できます。設定したサンプリング数を超えるデータは送信せず、1秒ごとに初期化します。