본문으로 건너뛰기

트랜잭션

트랜잭션이란 사용자 브라우저의 요청을 처리하기 위한 서버 사이드의 Logical Unit of Work(LUW)를 말합니다. 개별 웹서비스(URL) 요청에 대한 처리 과정이 바로 트랜잭션입니다. 웹 애플리케이션에서 트랜잭션은 웹서비스(URL)에 대한 HTTP Request를 받아 Response를 반환하는 과정입니다.

애플리케이션의 성능은 이 트랜잭션들의 성능으로 요약할 수 있습니다. 트랜잭션 성능은 트랜잭션 시작에서부터 종료 시점, 응답시간 및 자원 사용량 혹은 트랜잭션 호출자 속성 등의 정보를 포함합니다.

기본적으로 트랜잭션 응답 분포와 트랜잭션 통계를 통해서 트랜잭션 성능을 분석할 수 있습니다.

트랜잭션 트레이싱

다음은 애플리케이션 내의 각 트랜잭션의 실행 경로를 상세하게 추적할 수 있는 에이전트 옵션입니다.

  • trace_active_transaction_slow_time Millisecond

    기본값 3000

    수집 정보를 확인하는 대시보드의 엑티브 트랜잭션 아크이퀄라이저 그래프에서 slow 구간으로 표기할 수 있는 트랜잭션 응답 시간의 기준을 설정합니다. 트랜잭션의 응답 시간이 설정 시간을 초과할 경우 slow 액티브 트랜잭션의 개수에 포함합니다.

  • trace_active_transaction_very_slow_time Millisecond

    기본값 8000

    수집 정보를 확인하는 대시보드의 엑티브 트랜잭션 아크이퀄라이저 그래프에서 very slow 구간으로 표기할 수 있는 트랜잭션 응답 시간의 기준을 설정합니다. 트랜잭션의 응답 시간이 설정 시간을 초과할 경우 very slow 액티브 트랜잭션의 개수에 포함합니다.

  • trace_active_transaction_lost_time Millisecond

    기본값 300000

    트랜잭션 종료를 기다리는 제한 시간입니다. 5분 안에 트랜잭션이 끝나지 않는 경우 트랜잭션을 정보를 더 이상 수집하지 않습니다. 트랜잭션의 트레이스 정보에서 'Lost Connection'를 확인할 수 있습니다.

  • prepend_app_pool_name Boolean

    기본값 false

    옵션값을 true로 설정하면 트랜잭션의 URL 앞에 애플리케이션의 전체 이름을 표시합니다.

  • trace_db_command_methods String Deprecated

    System.Data.Common.DbCommand 클래스에서 모니터링할 메소드 이름을 입력하세요. 2개 이상의 값을 설정하려면 쉼표(,)를 구분자로 이용하세요. 모든 메소드를 모니터링하려면 아래와 같이 적용하세요.

    whatap.conf
    trace_db_command_methods=ExecuteReader, ExecuteReaderAsync, ExecuteNonQuery, ExecuteNonQueryAsync, ExecuteScalar, ExecuteScalarAsync
  • expand_transaction_level Boolean

    기본값 false

    옵션값을 true로 설정하면 트랜잭션 외부에서 발생하는 SQL, HTTP 호출을 트랜잭션으로 취급해서 히트맵에 표시합니다.

  • expand_transaction_basetime Int

    기본값 1000(1초) / 최소값 100(0.1초)

    expand_transaction_level 옵션이 true로 설정된 경우, 지정한 시간보다 응답 시간이 오래 걸릴 요청만 데이터를 수집합니다. 초당 최대 100건까지 수집합니다.

예외 처리

다음은 애플리케이션에서 발생하는 예외를 관리하고 모니터링하기 위한 옵션입니다. 비즈니스 예외를 등록하고 관련 통계를 수집하여 애플리케이션의 안정성을 확인할 수 있습니다. 또한 특정 예외를 무시하거나 HTTP 상태 코드가 에러인 경우 에러로 처리할지 여부를 설정할 수도 있습니다. 예외로 처리된 항목들은 히트맵 또는 트레이스 분석 창에서 정상 트랜잭션으로 표시됩니다.

  • transaction_status_error_enable Boolean

    기본값 true

    HTTP 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

    기본값 true

    HTTP 상태 코드가 에러인 경우 수집 여부를 설정합니다. 클라이언트 에러 응답(400 이상), 서버 에러 응답(500 이상)이 해당됩니다.

    노트

    HTTP 상태 코드에 대한 자세한 내용은 다음 링크를 참조하세요.

  • httpc_status_ignore String

    HTTP 상태 코드가 에러(HTTPC_ERROR)인 경우 무시할 수 있습니다. 여러 값을 대상으로 할 경우 쉼표(,)를 구분자로 사용하세요.

    HTTP 상태 에러 코드 무시 / 에러 통계 미포함

  • httpc_status_ignore_set String

    whatap.error.HTTPC_ERROR를 무시합니다. 여러 값을 대상으로 할 경우 쉼표(,)를 구분자로 이용하세요.

    httpc_status_ignore_set=/a/b/c:400,/a/ab/c:404와 같이 설정하세요. 이때 url은 통계/에러 분석에서 HTTPC_URL 값을 입력합니다.

    whatap.conf
    httpc_status_ignore_set=/a/b/c:400,/a/ab/c:404

    HTTP 상태 에러 코드 무시 / 에러 통계 미포함

HTTP 트랜잭션 추적

다음은 HTTP 요청 및 응답에 관련된 다양한 정보를 추적하고 기록하는 에이전트 옵션입니다. 이를 통해 사용자는 애플리케이션의 HTTP 트랜잭션을 세밀하게 모니터링하고 분석할 수 있습니다. 트랜잭션 이름에 파라미터 값을 추가하거나 특정 URL이나 HTTP 메소드를 제외할 수 있습니다. 또한 HTTP 헤더 정보와 파라미터 정보를 포함하여 트랜잭션을 보다 상세하게 기록할 수 있습니다.

  • profile_http_parameter_keys String

    설정된 키에 해당하는 파라미터 정보만 기록합니다. 여러 개를 등록할 때는 쉼표(,)를 구분자로 이용하세요.

  • profile_http_header_enabled Boolean

    기본값 false

    트레이스 내역에 http 헤더 정보를 기록하려면 true로 설정하세요.

  • profile_http_parameter_enabled Boolean

    기본값 false

    트레이스 내역에 http 파라미터 정보를 기록하려면 true로 설정하세요. 파라미터는 별도 보안키를 입력해야 조회할 수 있습니다.

    노트

    보안 키는 WAS 서버 %PROGRAMFILES%\WhaTap .NET\paramkey.txt 파일 내에 6자리로 설정합니다. paramkey.txt 파일이 존재하지 않는 경우 랜덤 값으로 자동 생성합니다.

  • profile_http_parameter_url_prefix String

    트레이스 내역에 http 파라미터 정보를 기록할 대상 URL의 prefix를 정의할 때 사용합니다.

  • profile_http_body_url_prefix String

    트레이스 내역에 http body 정보를 기록할 대상 URL의 prefix를 정의할 때 사용합니다.

  • trace_ignore_url_set String

    트랜잭션 추적에서 제외할 URL을 설정합니다. 2개 이상의 값을 설정하려면 쉼표(,)를 구분자로 이용하세요.

    노트

    이 옵션을 통해 등록한 URL은 히트맵, 트레이스 분석 또는 트랜잭션 정보 창에서 수집 제외됩니다.

  • trace_ignore_url_prefix String

    트랜잭션 수집에서 제외할 URL의 접두사(prefix)를 설정합니다. 설정한 접두사와 일치하는 URL은 트랜잭션 성능을 수집하지 않습니다. 여러 값을 설정하려면 쉼표(,)로 구분하세요.

    노트

    이 옵션을 통해 등록한 URL은 히트맵, 트레이스 분석 또는 트랜잭션 정보 창에서 수집 제외됩니다.

  • trace_ignore_url_suffix String

    트랜잭션 수집에서 제외할 URL의 접미사(suffix)를 설정합니다. 설정한 접미사와 일치하는 URL은 트랜잭션 성능을 수집하지 않습니다. 여러 값을 설정하려면 쉼표(,)로 구분하세요.

    노트

    이 옵션을 통해 등록한 URL은 히트맵, 트레이스 분석 또는 트랜잭션 정보 창에서 수집 제외됩니다.