에이전트 트랜잭션 설정
트랜잭션은 사용자 브라우저의 요청을 처리하는 서버 사이드의 Logical Unit of Work(LUW)입니다. 웹 애플리케이션에서 하나의 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액티브 트랜잭션의 아크이퀄라이저에서 노란색으로 표현할 기준을 설정합니다.
-
trace_active_transaction_red_time MiliSecond
기본값
8000액티브 트랜잭션의 아크이퀄라이저에서 빨간색으로 표현할 기준을 설정합니다.
-
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
메소드 트레이스를 설정할 때 트레이스에서 제외하고 싶은 클래스들을 설정합니다.
-
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.BizException팁에러 클래스 수집 / 히트맵 표시 레벨: 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:200팁에러 클래스 수집 / 히트맵 표시 레벨: INFO(파란색) / 에러 통계 포함
-
ignore_exceptions String
등록한 Exception의 에러 자체를 무시합니다.
whatap.conf# example
ignore_exceptions=com.home.test.exception.BizException팁에러 클래스 무시 / 히트맵 표시 레벨: INFO(파란색) / 에러 통계 미포함
-
transaction_status_error_enable Boolean
기본값
trueHTTP 401, 403과 같이 정상 응답이 아닌 HTTP 상태 코드를 반환하는 경우 에러로 처리할지 여부를 설정합니다.
-
status_ignore String
무시하려는 HTTP 상 태 코드를 설정할 수 있습니다. 여러 값을 대상으로 할 경우 쉼표(,)를 구분자로 사용하세요.
whatap.conf# example
status_ignore=408,500팁Status 에러 무시 / 히트맵 표시 레벨: INFO(파란색) / 에러 통계 미포함
-
status_ignore_set String
whatap.error.STATUS_ERROR를 무시합니다. 여러 값을 대상으로 할 경우 쉼표(,)를 구분자로 사용하세요.whatap.conf# example
status_ignore_set=/api/test/timeout/{time}:408,/error:500팁Status 에러 세트 무시 / 히트맵 표시 레벨: INFO(파란색) / 에러 통계 미포함
-
httpc_status_error_enable Boolean
기본값
trueHTTP 상태 코드가 에러인 경우 수집 여부를 설정합니다. 클라이언트 에러 응답(
400이상), 서버 에러 응답(500이상)이 해당됩니다.노트HTTP 상태 코드에 대한 자세한 내용은 다음 링크를 참조하세요.
-
httpc_status_ignore String
HTTP 상태 코드가 에러(
HTTPC_ERROR)인 경우 무시할 수 있습니다. 여러 값을 대상으로 할 경우 쉼표(,)를 구분자로 사용하세요.whatap.conf# example
httpc_status_ignore=404,500팁HTTP 상태 에러 코드 무시 / 에러 통계 미포함
-
httpc_status_url_ignore_set String
whatap.error.HTTPC_ERROR를 무시합니다. 여러 값을 대상으로 할 경우 쉼표(,)를 구분자로 사용하세요.httpc_status_url_ignore_set=/a/b/c:400,/a/ab/c:404와 같이 설정하세요. 이때 url은 통계/에러 분석에서HTTPC_URL값을 입력합니다.whatap.conf# example
httpc_status_url_ignore_set=/a/b/c:404,/d/e/f:500팁HTTP 상태 에러 코드 무시 / 에러 통계 미포함
-
trace_sql_exception_enabled Boolean
기본값
trueJDBC 드라이버에서 SqlException 발생 시 추적 여부를 설정합니다. 옵션 값을
false로 설정하면 사용자 정의 예외 처리로biz_exceptions처리할 수 있습니다. -
trace_exception_handler_overwrite_enabled Boolean
기본값
truespring-boot ExceptionHandler를 통과하는 예외(exception)가 발생하면 이전에 발생한 예외를 대체할 수 있습니다. 트레이스 분석 창의