PHP Agent 0.8.2

2020-10-14

버그

cURL multi 프로파일링

cURL multi 프로파일링은 curl_multi_exec, curl_multi_select 함수를 시작으로 curl_multi_close 함수가 호출되는 시점까지를 경과시간으로 수집하고 있습니다.

기존에 curl_multi_remove_handle 함수를 curl_multi_close 함수로 간주한 부분에서 프로파일링이 중복 수집되는 오류를 수정했습니다.

curl multi 작업 완료 후 바로 curl_multi_close 가 호출되지 않으면 경과시간이 오차가 발생하거나, 그 사이 다른 작업 시간(sql 실행 등)이 추가 될 수 있습니다.

업데이트

Apdex

Apdex (Appliccation Performance Index)

Apdex는 개방형표준을 따르는 애플리케이션 성능지표 입니다.
Apdex는 응답시간에 기반 하며 전체 요청중 만족과 허용 건 비율로 수치화합니다.
대시보드에 Apdex 그래프가 추가되었습니다.

Apdex는 사용자 만족도에 대한 지표로 활용할 수 있으며, 0 ~ 1 사이의 값을 갖습니다.

(만족 횟수 + (허용 횟수 * 0.5)) / 전체 요청 수

만족 (Satisfied, S)

업무처리에 전혀 문제가 없음 ≤ 1.2초 (만족 S 기본값)

허용 (Tolerating, T)

사용자가 지연을 느끼나 업무처리는 가능함 ≤ 4.8초 (만족 S * 4)

불만 (Frustrated, F)

업무처리가 불가능함 > 4.8초 (허용 T 초과 및 오류)

만족 S 기본값은 에이전트 설정 메뉴에서 변경 할 수 있습니다

whatap.apdex_time

Default : 1200
Type : millisecond

apdex

cURL 및 DB 라이브러리 오류 내용 수집 추가

cURL, DB 라이브러리 함수 결과값이 False 인 경우 오류로 간주하고, 오류 내용을 추가로 수집합니다.
(PhpRedis의 경우 오류메세지가 없으면 정상으로 표기합니다.)

  • DB 라이브러리의 오류 타입은 기존의 DBConnectionReturnFalse, SqlReturnFalse
    앞뒤로 라이브러리 이름과 오류 번호를 추가했습니다.

    [DB 라이브러리 이름]_DBConnectionReturnFalse([에러번호])
    예) CUBRID_DBConnectionReturnFalse(-20016)

  • cURL 라이브러리의 오류 타입은 HttpConnectionReturnFalse
    뒤에 오류 번호를 추가했습니다.

    호출 URL의 http 결과 코드가 400 이상인 경우 오류타입을 추가했습니다.
    HttpConnectionServerError([결과코드])
    예) HttpConnectionServerError(500)

설정을 통해서 기능을 활성화 비활성화 할 수 있습니다.

라이브러리 이름

curl, mysql, mysqli, pdo, oci8(oracle), pgsql, mssql, sqlsrv, redis, cubrid

whatap.profile_[라이브러리 이름]_return_enabled

Default : True
Type : Boolean

True : 라이브러리 함수의 결과가 False 일때 오류로 표기하는 기능을 활성화.

예) whatap.profile_redis_return_enabled=true

whatap.profile_[라이브러리 이름]_error_info_enabled

Default : True
Type : Boolean

True : 라이브러리 함수의 결과값이 False 일때 에러 메세지 정보 수집하는 기능을 활성화
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.

예) whatap.profile_redis_error_info_enabled=true

whatap.profile_[라이브러리 이름]_error_ignore_empty

Default : True
Type : Boolean

False :오류 코드 또는 오류 메세시 내용이 없을 때 정상 결과로 표기.
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.

예) whatap.profile_redis_error_ignore_empty=false

PhpRedis 라이브러리는 기본값이 False 입니다. 오류메세지가 없는 경우 정상으로 표기합니다.
dbconnectionreturnfalse
sqlreturnfalse

멀티 트랜잭션 추적

whatap.mtrace_enable 설정을 활성화(true)하면 멀티 트랜잭션 추적이 가능하게 수정되었습니다.
(기존에는 php 소스를 변경해야 가능했습니다.)
curl_init이 정상적으로 호출 되면 와탭 헤더를 자동으로 추가합니다.

whatap.mtrace_enabled

Default : False
Type : Boolean

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

whatap.mtrace_rate

Default : 10
Type : Int

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

multi trace

클라이언트 아이피

클라이언트 아이피 수집 옵션을 추가했습니다.

  • HTTP Headr 에 x_forwarded_for 키가 존재할 경우 해당 값으로 클라이언트 아이피를 설정합니다.

  • 그 외에는 기본 Remote IP로 클라이언트 아이피를 설정합니다.

x_forwarded_for 키가 있어도 Remote IP값으로 설정할 수 있도록 옵션을 추가했습니다.

whatap.trace_http_client_ip_header_key_enabled

Default : True
Type : Boolean

False 로 설정하면 HTTP Header 는 무시하고, Remote IP 값으로 클라이언트 아이피를 설정합니다.