본문으로 건너뛰기

트랜잭션

노트

트랜잭션에 대한 자세한 내용은 다음 문서를 참조하세요. 예를 들어 히트맵을 활용한 트랜잭션 분석 안내는 하위 메뉴인 다음 문서를 참조하세요.

트랜잭션 트레이싱

다음은 애플리케이션 내의 각 트랜잭션의 실행 경로를 상세하게 추적할 수 있는 에이전트 옵션입니다. 최소 응답 시간부터 트랜잭션의 실행 스텝 수까지 다양한 측면을 조정할 수 있습니다.

  • whatap.profile_step_normal_count Int

    기본값 1000

    트랜잭션 트레이스의 최대 스텝 수를 지정합니다.

  • whatap.profile_step_max_count Int

    기본값 1024

    수집 가능한 트레이스 스텝의 최대 개수를 설정합니다. 수집된 트레이스 스텝 수가 이 값을 초과하면 이후 수집되는 스텝들은 모두 버려집니다.

  • whatap.profile_step_heavy_count Int

    기본값 1000

    기본 스텝의 수집 개수가 초과되면, 실행 시간이 profile_step_heavy_time을 초과하는 스텝만 수집합니다. 해당 스텝의 수집 가능한 개수를 설정합니다. Default 설정일 경우 profile_step_normal_count가 800 이면 최대 200개의 스텝이 수집됩니다.

  • whatap.profile_step_heavy_time Millisecond

    기본값 100

    Heavy 한 스텝의 기준을 지정합니다. 지정된 값보다 수행 시간이 긴 경우 profile_step_normal_count를 초과하는 경우라도 profile_step_heavy_count 이내에서 기록됩니다.

  • whatap.profile_basetime Millisecond

    기본값 500

    트랜잭션이 설정된 값 이하의 시간 내에 종료된 경우 트레이스 정보를 수집하지 않습니다. 단 5분 단위로 최초 호출된 URL, 에러가 발생한 트랜잭션에 대한 트레이스 정보는 수집됩니다.

  • whatap.query_string_enabled Boolean

    기본값 false

    트랜잭션 URL의 쿼리 스트링을 함께 수집하는 기능을 활성화합니다. whatap.query_string_urls에 등록된 URL만 적용됩니다.

  • whatap.query_string_urls String

    트랜잭션에서 쿼리 스트링을 수집할 URL들을 등록합니다.

  • whatap.whatap.profile_compile_file_enabled Boolean

    기본값 false

    compile_file, compile_string 함수의 추적 여부를 설정합니다. PHP 내부 함수인 compile_file, compile_string 함수는 스크립트 실행 전에 컴파일하는 함수로 Main, include, require 및 autoload 스크립트의 컴파일 시점 및 스크립트 파일 경로와 실행 시간을 확인할 수 있습니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_compile_file_basetime Millisecond

    기본값 200

    실행 시간의 기준을 설정합니다. 설정한 시간을 초과하여 실행되는 경우만 정보를 수집합니다.

    주의

    whatap.profile_compile_file_basetime을 지나치게 작게 설정할 경우 과도한 수집으로 서버에 부하를 줄 수 있습니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_method_enabled Boolean

    기본값 true

    실행 시간이 whatap.profile_method_time 설정값(기본값 1초)을 초과하는 사용자 함수의 정보를 트랜잭션 상세 정보에서 확인할 수 있습니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_method_time Milliseconds

    기본값 1000

    whatap.profile_method_enabled 설정으로 수집되는 함수의 실행 시간을 설정합니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_method_stack_enabled Boolean

    기본값 false

    사용자 함수의 스택 정보를 트랜잭션 상세 정보에서 확인할 수 있습니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_internal_method_enabled Boolean

    기본값 false

    PHP 내부 함수의 추적 여부를 설정합니다. whatap.profile_internal_method_time 설정값(기본값 1초)보다 오래 걸리는 경우만 추적합니다.

    주의

    이 옵션은 사용자 정의 함수가 아닌 PHP의 내장 함수를 모두 확인하므로 성능에 부하가 발생할 수 있습니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_internal_method_time Milliseconds

    기본값 1000

    PHP 내부 함수를 추적할 때(whatap.profile_internal_method_enabled) 함수의 실행 시간을 설정합니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.profile_internal_method_param_enabled Milliseconds

    기본값 1000

    PHP 내부 함수를 추적할 때(whatap.profile_internal_method_enabled) 부가적으로 함수 파라미터 정보를 수집합니다.

    노트

    Apache 및 PHP-FPM 다시 시작 후 적용됩니다.

  • whatap.net_udp_flush_start Boolean

    기본값 true

    값이 false이면 트랜잭션 시작 시점을 수집하지 않습니다.

    노트

    시작 시점을 수집하지 않아 진행 중인 트랜잭션 수를 계산하는 액티브 트랜잭션 정보에 조금 늦게 반영될 수 있습니다. 액티브 스테이터스는 정상적으로 표기됩니다.

  • whatap.net_udp_profile_basetime_enabled Boolean

    기본값 false

    값이 true이면 설정된 응답시간보다 빠른 트랜잭션의 트레이스 정보를 수집하지 않습니다.

  • whatap.net_udp_profile_basetime Miliseconds

    기본값 false

    트레이스 정보 수집을 제외하는 트랜잭션의 응답시간을 설정합니다.

    노트

    트레이스 정보를 수집하지 않기 때문에 SQL, HTTPC 등의 통계에는 반영되지 않습니다.

  • whatap.net_udp_trace_ignoretime_enabled Boolean

    기본값 false

    값이 true이면 설정된 응답시간이 소요되는 트랜잭션 및 트레이스 정보를 수집하지 않습니다.

  • whatap.net_udp_trace_ignoretime Miliseconds

    기본값 30

    트랜잭션 및 트레이스 정보 수집을 제외하는 트랜잭션의 응답시간을 설정합니다.

  • whatap.shm_tx_counter_enable Boolean

    기본값 false

    값이 true이면 whatap.net_udp_trace_ignoretime_enabled 설정으로 트랜잭션의 정보 수집이 제외되는 경우 TPS, 평균 응답시간, Apdex 지표를 공유 메모리에서 수집하면 제외된 트랜잭션의 정보가 통계에 반영됩니다.

    노트

    수집이 안 된 트랜잭션의 경우 TPS, 평균 응답시간, Apdex 지표에는 정상적으로 반영되지만, 그 외 통계 데이터에는 반영되지 않습니다.

  • whatap.split_profile_enabled Boolean

    기본값 false

    일정량의 프로파일을 가상 트랜잭션으로 분리해 더 많은 프로파일 정보를 수집합니다. 여러 개의 트랜잭션 목록으로 분할 표기됩니다.

    노트

    동시에 설정된 경우 우선 순위는 다음과 같습니다.

    1. split

    2. large

    3. circular

  • whatap.large_profile_enabled Boolean

    기본값 false

    일정량의 프로파일을 압축 및 분할 전송해 메모리 증가 없이 더 많은 프로파일 정보를 수집할 수 있습니다.

    노트
    • 약 만 건 이하의 프로파일(스탭) 정보를 수집할 수 있습니다. 더 많은 양은 whatap.split_profile_enabled 옵션 사용을 권장합니다.

    • 동시에 설정된 경우 우선 순위는 다음과 같습니다.

      1. split

      2. large

      3. circular

  • whatap.circular_profile_enabled Boolean

    기본값 false

    마지막 1024개의 프로파일링 정보를 수집합니다.

    노트

    동시에 설정된 경우 우선 순위는 다음과 같습니다.

    1. split

    2. large

    3. circular

  • whatap.profile_zip_enabled Boolean

    기본값 true

    프로파일 정보를 압축 전송합니다. 기본값은 true로 설정되어 있습니다.

  • whatap.trace_active_transaction_slow_time Millisecond

    기본값 3000

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

  • whatap.trace_active_transaction_very_slow_time Millisecond

    기본값 8000

  • whatap.trace_active_transaction_lost_time Millisecond

    기본값 300000

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

  • whatap.trace_useragent_enabled Boolean

    기본값 false

    값이 true이면 트랜잭션의 유저 에이전트 정보를 수집합니다.

  • whatap.trace_referer_enabled Boolean

    기본값 false

    값이 true이면 트랜잭션의 Refere 정보를 수집합니다.

예외 처리

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

  • whatap.biz_exceptions String

    특정 Error 또는 Exception을 Business Exception으로 지정합니다. 히트맵에서는 에러로 표기되지 않고 통계 정보에만 수집됩니다. 수집되는 Error Class 명과 동일하게 적용합니다. 쉼표(,)를 구분자로 여러 개를 등록할 수 있습니다.

    whatap.conf
    whatap.biz_exceptions=HttpConnectionServerError(400), GuzzleHttp\Exception\ServerException, CustomException

    에러 클래스 수집 / 히트맵 표시 레벨: INFO(파란색) / 에러 통계 포함

  • whatap.ignore_exceptions String

    등록한 Exception의 에러 자체를 무시합니다.

    Exception의 경우 Custom Exception Class가 정의되어 있지 않으면, 기본으로 Exception으로 수집됩니다. 특정 Exception을 구분하기 위해서는 Custom Exception Class를 정의하고 해당 이름을 지정하면 제외할 수 있습니다.

    whatap.conf
    whatap.ignore_exceptions=HttpConnectionServerError(400), GuzzleHttp\Exception\ServerException, CustomException

    에러 클래스 무시 / 히트맵 표시 레벨: INFO(파란색) / 에러 통계 미포함

HTTP 트랜잭션 추적

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

  • whatap.trace_normalize_enabled Boolean

    기본값 true

    트랜잭션 URL을 변환하여 일반화하는 기능을 활성화 합니다.

  • whatap.trace_normalize_urls String

    트랜잭션 URL을 변환하고 일반화할 대상 URL을 지정합니다. 호출 URL패턴을 변환하여 패스 파라미터를 제거합니다.

    노트

    예시, /a/{v}/b 라고 설정하면 해당 형식으로 호출되는 트랜잭션 URL은 /a/{v}/b 형식으로 변환됩니다. 여러 개를 등록할 때는 콤마(,)를 사용합니다.

  • whatap.trace_ignore_url_set String

    특정 URL을 설정하면 트랜잭션 추적 대상에서 제외됩니다. 설정된 URL은 트랜잭션 정보를 수집하지 않아, 트랜잭션 목록에서 확인되지 않습니다. 트랜잭션 추적 대상에서 제외할 URL을 지정합니다. 2개 이상의 값을 지정하려면 쉼표(,)를 구분자로 이용하세요

    노트

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

  • whatap.trace_ignore_url_prefix String

    트랜잭션 추적 대상에서 제외할 URL prefix를 지정합니다.

    노트

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

  • whatap.profile_http_header_enabled Boolean

    기본값 false

    트레이스 내역에 http 헤더 정보를 기록하고자 할 때 사용합니다.

  • whatap.profile_http_header_ignore_keys String

    기본값 host,accept,user-agent,referer, accept-language, connection

    HTTP 헤더 이름을 지정해 수집 정보에서 제외하는 기능을 추가했습니다. 지정된 HTTP 헤더 이름의 값은 수집에서 제외되며, "#"으로 표기됩니다.

  • whatap.profile_http_parameter_enabled Boolean

    기본값 false

    트레이스 내역에 http 파라미터 정보를 기록하고자 할 때 사용합니다. 파라미터는 별도 보안키를 입력해야 조회할 수 있습니다.

    Get, Post 파라미터 중 text 타입의 이름과 값을 수집합니다. 최대 40개(Get 20개, Post 20개) 를 수집하며 파라메터 이름과 값은 최대 256 byte 까지 수집됩니다.

    파라미터 정보는 별도 암호화되어 전송되며, 해당 애플리케이션 서버의 /usr/whatap/php/security.conf 에 있는 키(paramkey)로 복호화하여 볼 수 있습니다.

    노트
    • PHP agent v2.8.0 or later: 보안 키는 whatap.ini 파일이 위치한 WHATAP_HOME/security.conf 파일 내에 6자리(paramkey)로 설정합니다.

    • Below PHP agent v2.8.0: 보안 키는 whatap.ini 파일이 위치한 WHATAP_HOME/paramkey.txt 파일 내에 6자리로 설정합니다. paramkey.txt 파일이 존재하지 않는 경우 랜덤 값으로 자동 생성합니다.

  • whatap.profile_http_parameter_url_prefix String

    기본값 /

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

  • whatap.profile_http_host_enabled Boolean

    기본값 false

    트랜잭션의 Host 정보를 출력합니다. 값이 false일 경우 트랜잭션의 URL에 URI만 표기하고, true일 경우 /xxx.aaa.com/URL 형식으로 출력됩니다.

  • whatap.ignore_http_method String

    설정한 HTTP 메소드(Method)로 요청된 트랜잭션 정보는 수집하지 않습니다. 여러 개를 설정하려면 쉼표(,)를 구분자로 이용하세요.

    whatap.ini
    # e.g. http_method가 OPTIONS, HEAD인 트랜잭션 "추적"
    whatap.ignore_http_method=PATCH,TRACE

    # e.g. http_method가 OPTIONS, HEAD인 트랜잭션 "무시"
    whatap.ignore_http_method=OPTIONS,HEAD
    노트

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

멀티 트랜잭션 추적

다음은 애플리케이션 간 호출을 추적하고 모니터링하기 위한 옵션입니다. 이 옵션을 통해 사용자는 여러 애플리케이션 간의 상호작용을 이해하는 데 도움이 받을 수 있습니다. 제공하는 다양한 옵션을 통해 멀티 트랜잭션 추적의 세부적인 동작을 조정할 수 있습니다.

  • whatap.mtrace_enabled Boolean

    기본값 false

    멀티 트랜잭션 추적 기능(MTID) 사용 여부를 설정합니다. MTID를 추적하면 등록된 모든 애플리케이션 간의 호출을 확인할 수 있습니다.

  • whatap.mtrace_rate Percentage

    기본값 10

    최초 트랜잭션이 발생할 때 발급받는 MTID(Multi Transaction ID)의 발급비율을 설정하는 옵션입니다.

  • whatap.mtrace_poid_key String

    기본값 x-wtap-po

    MTID 추적에 사용할 Caller 프로젝트 정보를 전달할 Key Name을 설정합니다.

  • whatap.mtrace_caller_key String

    기본값 x-wtap-mst

    MTID 추적에 사용할 Caller Key Name을 정합니다.

  • whatap.mtrace_callee_key String

    기본값 x-wtap-tx

    MTID 추적에 사용할 Callee Key Name을 정합니다.

  • whatap.mtrace_send_url_length Int

    기본값 80

    Http Caller는 Callee에게 자신의 URL을 넘겨줍니다. 이때 URL 길이를 제한하고 있습니다. 이 길이를 지정합니다.