本文へスキップ

トランザクション

トランザクションとは、ユーザーのブラウザからのリクエストを処理するためのサーバーサイドの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とメソッドに区分され、アスタリスク(*)をワイルドカードとして使用できます。対象が複数ある場合は、コンマ(,)で区切ります。

    Example
    hook_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.conf
    httpc_status_ignore=404,500
    Tips

    HTTPステータスエラーコード無視 / エラー統計を含まない

  • 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.conf
    httpc_status_ignore_set=/a/b/c:400,/a/ab/c:404
    Tips

    HTTPステータスエラーコード無視 / エラー統計を含まない

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/ba/{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メソッドは、ヒットマップ, トレース分析またはトランザクション情報画面で収集が除外されます。

  • 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_enabledtrace_sampling_tps オプションを使用して、サンプリングされたデータを確認できます。trace_ignore_url_prefixオプションに/socket.ioパスを追加して、トレースしないように設定してください。

  • trace_sampling_enabled Boolean

    既定値 true

    トレースデータサンプリングの収集有無を設定できます。

  • trace_sampling_tps Number

    既定値 1000

    トレースデータのサンプリング数を設定できます。設定したサンプリング数を超えるデータは送信せず、1秒ごとに初期化します。