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

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 : BooleanTrue : 라이브러리 함수의 결과가 False 일때 오류로 표기하는 기능을 활성화.
예) whatap.profile_redis_return_enabled=true
whatap.profile_[라이브러리 이름]_error_info_enabled
-
Default : True
Type : BooleanTrue : 라이브러리 함수의 결과값이 False 일때 에러 메세지 정보 수집하는 기능을 활성화
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.예) whatap.profile_redis_error_info_enabled=true
whatap.profile_[라이브러리 이름]_error_ignore_empty
-
Default : True
Type : BooleanFalse :오류 코드 또는 오류 메세시 내용이 없을 때 정상 결과로 표기.
위 return_enabled 설정이 false 인 경우는 적용되지 않습니다.예) whatap.profile_redis_error_ignore_empty=false
PhpRedis 라이브러리는 기본값이 False 입니다. 오류메세지가 없는 경우 정상으로 표기합니다.


멀티 트랜잭션 추적
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)의 발급비율을 설정하는 옵션입니다.

클라이언트 아이피
클라이언트 아이피 수집 옵션을 추가했습니다.
-
HTTP Headr 에 x_forwarded_for 키가 존재할 경우 해당 값으로 클라이언트 아이피를 설정합니다.
-
그 외에는 기본 Remote IP로 클라이언트 아이피를 설정합니다.
x_forwarded_for 키가 있어도 Remote IP값으로 설정할 수 있도록 옵션을 추가했습니다.
whatap.trace_http_client_ip_header_key_enabled
-
Default : True
Type : BooleanFalse 로 설정하면 HTTP Header 는 무시하고, Remote IP 값으로 클라이언트 아이피를 설정합니다.