エージェントトランザクション設定
トランザクションとは、ユーザーブラウザからのリクエストを処理するサーバーサイドの Logical Unit of Work(LUW)です。Web アプリケーションにおいては、1 つの HTTP リクエストを受け取り、レスポンスを返すまでの一連の処理全体がトランザクションに該当します。
アプリケーションの性能は、トランザクション処理性能によって評価できます。トランザクション性能には、トランザクション開始から終了までの応答時間、リソース使用量、呼び出し元の属性などの情報が含まれます。
トランザクション性能は、応答時間の分布や統計データを基に分析できます。
トランザクショントレーシング
以下は、アプリケーションの各トランザクションの実行パスを詳細に追跡できるエージェントのオプションで す。最小応答時間からトランザクションの実行ステップ数まで、様々な部分を調整可能です。
-
profile_basetime MiliSecond
既定値
500トレースの詳細情報を収集する最少応答時間を設定します。設定した値以下の時間内にトランザクションが終了した場合、トレース情報を収集しません。ただし、5分単位で最初に呼び出されたURLとエラーが発生したトランザクションに関するトレース情報は収集します。
ノートprofile_basetimeオプションに関係なくエラーを収集するには、profile_concern_error_enabledオプションをtrueに設定します。デフォルトをfalseに設定すると、エラーがサンプリングされます。
-
profile_step_normal_count Int
既定値
1000トランザクショントレースの最大ステップ数を設定します。
-
profile_step_heavy_count Int
既定値
1020Heavyなステップの場合、トレースの基本ステップ数を超えても決められた値だけ記録します。
-
profile_step_max_count Int
既定値
1024トレースステップの最大数を設定します。収集されたトレースステップの数が設定値を超えると、その後に収集されるステップはすべて破棄されます。
profile_step_heavy_countを最大1000に設定すると、profile_step_max_countまでアクティブスタックが収集されます。 -
profile_step_heavy_time MiliSecond
既定値
100Heavyなステップの基準を設定します。 設定した値より実行時間が長い場合、
profile_step_normal_countの値を超えても、profile_step_heavy_countの設定値のみ記録します。 -
active_stack_count Int
既定値
100トランザクション内で収集するアクティブスタックの最大数を設定します。
-
profile_method_resource_enabled Boolean
既定値
falseトレースからmethodステップを収集する場合は、そのステップで使用したCPUとメモリ使用量を追跡します。
-
profile_position_method String
設定したメソッド実行時のStackTraceを記録します。
-
profile_position_depth Int
既定値
50position追跡のStackTraceを記録する場合、最大ライン数を設定します。
-
trace_error_callstack_depth Int
既定値
50Error発生時に収集するStackTraceの最大ライン数を設定します。
-
trace_active_callstack_depth Int
既定値
50アクティブスタックから収集するStackTraceの最大ライン数を設定します。
-
trace_active_transaction_yellow_time MiliSecond
既定値
3000アクティブTXのアークイコライザーで黄色で表現する基準を設定します。
-
trace_active_transaction_red_time MiliSecond
既定値
8000アクティブTXのアークイコライザーで赤色で表現する基準を設定します。
-
hook_method_patterns String
レスポンス時間を測定するメソッドを設定します。最後のピリオド(.)を区切り文字としてクラスのFullNameとメソッドに区分され、アスタリスク(*)をワイルドカードとして使用できます。対象が複数ある場合は、コンマ(,)で区切ります。
whatap.confhook_method_patterns=a.b.C1.*ノート-
このオプションで登録したメソッドは、トレース分析またはトランザクション情報画面からMethodのステップで確認できます。
-
なるべく小さい範囲に適用してください。広い範囲に適用すると、アプリケーションの性能が低下する恐れがあります。
-
-
hook_method_supers String
特定のクラスを継承するメソッドの応答時間を測定する場合は、Super Classを設定します。 クラスFullNameを設定し、対象が複数ある場合は、コンマ(,)で区切ります。
whatap.confhook_method_supers=a.b.C1 -
hook_method_interfaces String
特定のインターフェイスを実装するメソッドの応答時間を測定する場合は、Interfaceを設定します。インターフェイスのFullNameを設定し、対象が複数ある場合は、コンマ(,)で区切ります。
-
hook_method_ignore_classes String
メソッドトレースを設定する場合は、トレースから除外するクラスをprefixに設定します。
-
hook_method_access_public_enabled Boolean
既定値
trueメソッドトレースを設定する場合、publicメソッドを個別のターゲットとしてのみ処理するかどうかを設定します。
-
hook_method_access_private_enabled Boolean
既定値
falseメソッドトレースを設定する場合、privateメソッドに限り、個別の対象として処理するかどうかを設定します。
-
hook_method_access_protected_enabled Boolean
既定値
trueメソッドトレースを設定する場合、protectedメソッドに限り、個別の対象として処理するかどうかを設定します。
-
hook_method_access_none_enabled Boolean
既定値
trueメソッドトレースを設定する際、no access indicatedメソッドに限り、別途対象として処理するかを設定します。
-
stacklog_socket_port TCP_PortNumber
既定値
0宛先のTCPポートを設定すると、Socket.connect()は、特定の時点でStackTraceをエージェントログとして記録します。基本設定で確認されていないDB接続、HTTPC接続などを追跡する場合に使用できます。
注意設定した宛先への接続は、毎回StackTraceを記録します。これらを行うと、パフォーマンスが低下する可能性があります。デバッグ用に選択したエージェントに一時的に使用する必要があります。
DB接続状態追跡の例)
stacklog_socket_port=1521 -
trace_concern_error_enabled Boolean
既定値
truetrace_basetimeまたはprofile_basetimeオプションに関係なく、エラーのある詳細なトレースの収集有無を設定します。
例外処理
以下は、アプリケーションで発生する例外を管理およびモニタリングするためのオプションです。ビジネス例外を登録し、関連する統計を収集することで、アプリケーションの安定性を確認できます。また、特定の例外を無視したりHTTPステータスコードがエラーの場合、エラーとして 処理するかどうかを設定できます。例外として処理された項目は、ヒットマップまたはトレース分析画面で、正常なトランザクションとして表示されます。
Javaエージェントの、例外処理基準についての詳細は、次の文書を参照してください。
-
biz_exceptions String
Business Exceptionを登録します。
whatap.conf# example
biz_exceptions=com.home.test.exception.BizExceptionTipsエラークラス収集 / ヒットマップ表示レベル:INFO(青色) / エラー統計を含む
ノートJavaエージェントv2.2.20 以降では、登録した ビジネスExceptionをエラー統計で収集します。 v2.2.20未満では、登録したビジネスExceptionをエラー統計から除外します。 ただし、トレースの詳細では表示されます。
-
biz_exceptions_status String
Java Agent v2.2.20 or laterBusiness Exception発生時、イベント通知を抑制するBusiness ExceptionとStatusを設定します。 このオプションで設定したBusiness Exception:Statusについては、イベントレベルがINFOに変更されます。 Business ExceptionとStatusはコロン(:)で区分し、一つのBusiness Exceptionに複数のStatusを使用する場合、アンパサンド(&)で区分します。 コンマを区切り文字として使用して複数設定できます。
whatap.conf# example
biz_exceptions_status=java.util.concurrent.TimeoutException:400&404&408,java.lang.Exception:200Tipsエラークラス収集 / ヒットマップ表示レベル:INFO(青色) / エラー統計を含む
-
ignore_exceptions String
登録したExceptionエラを無視します。
whatap.conf# example
ignore_exceptions=com.home.test.exception.BizExceptionTipsエラークラス無視 / ヒットマップ表示レベル:INFO(青色) / エラー統計を含まない
-
transaction_status_error_enable Boolean
既定値
true正常応答ではなくHTTP401、403のようなステータスコードがリターンされた場合、エラーとして処理するかどうかを設定します。
-
status_ignore String
無視しようとするHTTPステータスコードを設定できます。 複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。
whatap.conf# example
status_ignore=408,500TipsStatusエラー無視 / ヒットマップ表示レベル:INFO(青色) / エラー統計を含まない
-
status_ignore_set String
whatap.error.STATUS_ERRORを無視します。 複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。whatap.conf# example
status_ignore_set=/api/test/timeout/{time}:408,/error:500TipsStatus エラーセット無視 / ヒットマップ表示レベル:INFO(青色) / エラー統計を含まない
-
httpc_status_error_enable Boolean
既定値
trueHTTPステータスコードがエラーの場合は、収集有無を設定します。 クライアントエラーレスポンス(
400以上)、サーバーエラーレスポンス(500以上)が該当します。ノートHTTPステータスコードの詳細については、次のリンクを参考にしてください。
-
httpc_status_ignore String
HTTPのステータスコードがエラー(
HTTPC_ERROR)の場合、無視します。 複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。whatap.conf# example
httpc_status_ignore=404,500TipsHTTPステータスエラーコード無視 / エラー統計を含まない
-
httpc_status_url_ignore_set String
whatap.error.HTTPC_ERRORを無視します。 複数の値を対象とする場合は、コンマ(,)を区切り文字として使用してください。httpc_status_url_ignore_set=/a/b/c:400,/a/ab/c:404のように設定してください。 この場合、URLは統計/エラー分析にHTPC_URLの値を入力します。whatap.conf# example
httpc_status_url_ignore_set=/a/b/c:404,/d/e/f:500TipsHTTPステータスエラーコード無視 / エラー統計を含まない
-
trace_sql_exception_enabled Boolean
既定値
trueJDBCドライバーでSqlException発生時に追跡可否を設定します。 オプション値を
falseに設定すると、ユーザー定義の例外処理によりbiz_exceptions処理できます。 -
trace_exception_handler_overwrite_enabled Boolean
既定値
truespring-boot ExceptionHandlerを通過する例外(exception)が発生すると、以前に発生した例外に置き換えできます。 トレース分析画面のレコード要約タブで例外(exception)を、spring-bootのExceptionHandlerに登録した例外で表示できます。