PHP Agent Release Notes
최신 버전: 2.14.2
- 2026
- 2025
- 2024
- 2024 이전
2026-07-08
v2.14.2
Fixed PHP 8.x에서 PDO::exec() 사용 시 SQL 결과 건수 수집으로 인한 요청 실패(HTTP 500) 수정
PDO::exec()는 영향 건수 를int로 반환하지만, 결과 건수 수집 로직이 PDO 연결 객체(해당 메서드 없음)에rowCount()를 호출해 PHP 8에서 Error 발생- 이제
exec()반환값을 직접 사용, 대상이 실제PDOStatement일 때만rowCount()호출 - 기본 설정의 PHP 8.x에서만 발생, PHP 5/7·
PDO::query()·prepared statement는 영향 없음
Fixed cubrid_execute() 2인자 형식의 결과 건수 오류 수정
cubrid_execute($conn, $sql)형식에서 결과 건수를 반환 결과가 아닌 연결에서 읽어-1로 표시되던 문제, 이제 반환 결과에서 건수를 읽음
New SQL 결과 건수 수집 On/Off 옵션 추가(whatap.profile_sql_fetch_enabled)
- 2.14.1에 추가된 SQL 결과 건수 수집 기능을 끌 수 있는 옵션(기본값:
true) 신규 추가
사용 예시
# SQL 결과 건수 수집 비활성화 (기본값: true)
whatap.profile_sql_fetch_enabled = false2026-06-24
v2.14.1
Feature 로그인 아이디 수집 기능 추가
GET/POST 파라미터 및 Session 객체에서 로그인 아이디를 추출하여, 트랜잭션 단위 사용자 식별 및 로그인별 통계에 활용함
whatap.trace_login_enabled(기본값:false)로 활성화하며,whatap.trace_login_param_key(단일 GET/POST 파라미터 키, POST 우선 탐색) 및/또는whatap.trace_login_session_key(점으로 구분된 Session 경로, 예:auth.user_id) 옵션으로 추출 키 설정
사용 예시
# 로그인 아이디 수집 활성화 (기본값: false)
whatap.trace_login_enabled = true
# GET/POST 파라미터에서 추출 (예: login.php?user_id=hong → hong)
whatap.trace_login_param_key = user_id
# 또는 Session 경로에서 추출 (예: $_SESSION['auth']['user_id'])
whatap.trace_login_session_key = auth.user_id
Feature SQL 결과 건수 수집 기능 추가
SELECT 쿼리의 조회 건수와 DML(INSERT/UPDATE/DELETE) 구문의 영향 건수를 수집하여 트랜잭션 프로파일에 [결과 건수] 스텝으로 표시함
지원 extension: mysql, mysqli, PDO, pgsql, oci8, mssql, sqlsrv, odbc, cubrid 및 phpredis
- DML(INSERT/UPDATE/DELETE) 영향 건수는 위 전 extension에서 수집됨
- SELECT 조회 건수는 mysql, mysqli, pgsql, cubrid, odbc, PDO(MySQL / PostgreSQL)에서 수집됨
- phpredis는 배열을 반환하는 명령(MGET / HGETALL / KEYS / LRANGE ...)의 요소 수를 수집함
- DDL 구문(CREATE / DROP / TRUNCATE ...)은 행을 다루지 않으므로 0으로 표시됨
일부 환경에서는 SELECT 조회 건수가 표시되지 않음([결과 건수] 스텝 미표시): oci8·sqlsrv(드라이버가 전체 결과 건수를 제공하지 않음), PDO의 SQLite / Oracle, mysqli unbuffered 쿼리(MYSQLI_USE_RESULT), pgsql 비동기 함수(pg_send_*). 위 경우에도 DML 영향 건수는 정상 수집됨
2026-03-25
v2.14.0
Feature PHP 8.5 지원 추가
Feature PHP 8.0 이상에서 active stack 수집 미동작 문제 수정
- PHP 8.0 이상에서
zend_execute_ex훅이 동작하지 않아 active stack 수집이 되지 않는 문제를 수정 - active stack 수집 로직을 별도 함수로 분리하고 PHP 8.0+에서는
zend_observerAPI를 활용하도록 변경
2026-02-04
v2.13.2
Fixed 멀티트랜잭션 프로파일링 시 발생하는 segfault 및 zend_mm_heap corrupted 오류 수정
멀티트랜잭션 기능 활성화 시(mtrace_enabled=true) 메모리 손상으로 segfault 또는 zend_mm_heap corrupted 오류가 발생하는 문제를 수정했습니다.
2026-01-07
v2.13.1
Fixed 디버그 메시지가 응답 내용에 출력되는 오류를 수정합니다. 멀티 트랜잭션(mtrace) 기능 사용 시 mtid, mcaller_txid 디버그 로그가 웹 페이지에 노출되는 문제를 수정합니다.
2025-11-19
v2.13.0
Fixed 액티브 스테이터스(Active Status) 데이터 수집이 정상적으로 작동하지 않는 문제 수정
- v2.12.0에서 PHP 내부 함수 hooking 방식을
zend_execute_internal방식에서handler overwrite방식으로 변경 - 변경으로 인해 액티브 스테이터스 수집이 정상적으로 작동하지 않는 문제 발생
New Windows 운영체제에서 PHP 모니터링 지원
-
시스템 요구사항
- Windows Server 2016 (x64) 이상 또는 Windows 10 (x64) 이상
- PHP 7.0 ~ 8.4 (NTS 및 ZTS)
-
빌드 환경
- WhaTap PHP 확장은 Microsoft Visual C++ 컴파일러를 사용하여 빌드되며, PHP 버전별로 다음 Visual Studio 버전 사용
- Visual C++ 15.0 (Visual Studio 2017) - PHP 7.0, 7.1, 7.2, 7.3, 7.4
- Visual C++ 16.0 (Visual Studio 2019) - PHP 8.0, 8.1, 8.2, 8.3
- Visual C++ 17.0 (Visual Studio 2022) - PHP 8.4
- 버전별 빌드 환경
PHP 버전 OS Visual Studio Windows SDK PHP SDK 7.0–7.4 Windows Server 2016 (ltsc2016) VS 2017 (VC15) 10.0.17763.0 2.1.9–2.2.0 8.0–8.3 Windows Server 2019 (ltsc2019) VS 2019 (VS16) 10.0.19041.0 2.2.0 8.4 Windows Server 2022 (ltsc2022) VS 2022 (VS17) 10.0.20348.0 / 11.0.22000.0 2.4.0 - 지원 웹 서버
- Apache 2.4 이상
- Microsoft IIS
New 느린 트랜잭션의 지연 구간을 파악할 수 있는 스택 트레이스 기능 추가(분석 > 스택에서 확인 가능)
- 동작 방식
- 설정한 시간(기본 5초) 이상 실행되는 트랜잭션을 자동으로 감지
- 1초마다 실행 중인 함수 기록 (최대 20회)
- PHP 내부에서
debug_gettrace()함수를 통해 스택 정보 수집 - 사용자 함수 호출이 끝나는 시점에 스택을 수집하므로, 함수 실행 시간이 길 경우 수집 간격이 일정하지 않을 수 있음
주의이 기능 활성화 시, 수집 부하가 발생할 수 있습니다.
- 사전 요구사항
- 두 개 옵션이 활성화되어 있어야 함(기본 활성화)
whatap.ext.hook_zend_execute_ex_enablewhatap.profile_method_enabled
- 두 개 옵션이 활성화되어 있어야 함(기본 활성화)
설정 옵션
whatap.active_stack_enabled- 기본값: false
- 스택 수집 기능 활성화
whatap.ext.active_stack_start_resp_time- 기본값: 5000
- 설정된 응답시간을 초과한 경우 스택 수집을 시작함
- 기본값: 응답시간 5초 이상일 때 스택 정보 수집
- 최소값: 1000ms
주의설정값을 반영하려면 웹서버(Apache 또는 php-fpm)를 재시작해야 합니다.whatap.ext.active_stack_interval- 기본값: 1000
- 스택 수집 주기 설정
- 처음 스택 수집 후 기본값 1초 기준으로 1초 간격으로 수집
- 최소값: 200ms, 변경 단위: 200ms
주의설정값을 반영하려면 웹서버(Apache 또는 php-fpm)를 재시작해야 합니다.whatap.trace_active_callstack_depth- 기본값: 50
- 스택 수집 개수 제한, 50줄까지의 스택 수집
주의설정값을 반영하려면 웹서버(Apache 또는 php-fpm)를 재시작해야 합니다.whatap.ext.active_stack_max_count- 기본값: 20
- 스택 정보 수집 건수 제한, 20번까지만 스택 수집
주의설정값을 반영하려면 웹서버(Apache 또는 php-fpm)를 재시작해야 합니다.
2025-10-15
v2.12.0
Change PHP 내부 함수 hooking 방식 변경
- 기존
zend_execute_internal함수를 통한 트랜잭션 데이터 수집 방식은 모든 함수를 확인해 내부 함수 호출이 많을 경우 CPU 부하가 발생할 수 있음 - 필요한 PHP 내부 함수의 핸들러를 교체하는 방식으로 특정 함수만 선별해 트랜잭션 정보를 수집하도록 변경
- 관련 옵션 추가
whatap.ext.hook_overwrite_internal_function_enabled
기본값:true
필요한 PHP 내부 함수의 핸들러를 교체하는 방식으로 특정 함수만 선별해서 트랜잭션 정보를 수집whatap.ext.hook_zend_execute_internal_enabled과 중복 설정되지 않도록 주의
서비스 재시작 필요 (Apache 또는 php-fpm 재시작)whatap.ext.hook_zend_execute_internal_enabled
기본값:false
기존 방식으로,zend_execute_internal함수를 통한 트랜잭션 데이터를 수집
서비스 재시작 필요 (Apache 또는 php-fpm 재시작)whatap.ext.hook_zend_execute_ex_enabled
기본값:true
PHP 사용자 함수를zend_execute_ex함수를 통해 데이터를 수집
서비스 재시작 필요 (Apache 또는 php-fpm 재시작)
2025-07-23
v2.11.2
Fixed segmentation fault 오류가 발생하는 문제 수정
session_set_save_handler함수를 사용하는 경우 발생하던 오류를 수정
2025-07-09
v2.11.1
Fixed whatap-php.service 등록 및 실행 실패 문제 수정
-
신규 설치 시, environment 값 누락으로 접속 정보(Access Key 및 서버 주소)를 인식하지 못해 에이전트가 비활성화됨
아래 명령어를 통해 수동 설정 가능
php command1. /usr/whatap/php/install.sh 실행
2. cp /usr/lib/systemd/system/whatap-php.service /etc/systemd/system/whatap-php.service -
기존 설치 환경에서는 업데이트 시 정상 설치됨
2025-06-18
v2.11.0
Feature CPU 부하 감소
-
모니터링 대상 판정 기준 변경으로 CPU 부하 감소
-
사용자 함수 모니터링 해제 시 추가 부하 감소
whatap.profile_method_enabled=false
New CLI 호출 파라미터 URL 표기
-
CLI 호출 시 파라미터를 포함해 URL 수집
- 예) php /home/www/test.php aaa bbb → /home/www/test.php aaa bbb로 표기
New file 파라미터 정보 수집
- 최대 20개, 각 256byte까지 파라미터 일부만 수집
2025-02-11
v2.10.0
New PHP Extension에서 기능별로 수집 중지할 수 있는 옵션 추가
-
whatap.ext.trace_enabled(기본값:true): 트랜잭션 정보 수집 비활성화 -
whatap.ext.profile_enabled(기본값:true): 트랜잭션 기본 정보 수집 비활성화 -
whatap.ext.profile_sql_enabled(기본값:true): SQL 프로파일 수집 비활성화 -
whatap.ext.profile_httpc_enabled(기본값:true): HTTP 호출 프로파일 수집 비활성화 -
whatap.ext.profile_socket_enabled(기본값:true): 소켓 관련 프로파일 수집 비활성화
New 특정 URI를 기준으로 수집을 중지하는 옵션 추가
-
whatap.ext.ignore_uris: 트랜잭션 정보를 수집하지 않을 URI를 등록 (콤마 구분)- 예:
whatap.ext.ignore_uris=/aaa/bbb.php, /ccc/ddd.php
- 예:
-
whatap.ext.ignore_profile_uris: 트랜잭션 기본 정보는 수집하되 상세 프로파일 정보를 수집하지 않는 URI를 등록 (콤마 구분)- 예:
whatap.ext.ignore_profile_uris=/aaa/bbb.php, /ccc/ddd.php
- 예:
New 트랜잭션 추가 정보 수집
-
peak-memory: PHP 실행 중 peak memory 수집 -
elapsed-utime: 사용자 CPU 사용량 수집 -
elapsed-stime: 시스템 CPU 사용량 수집 -
external-func-count: 사용자 함수 실행 건수 -
prof-external-func-count: 와탭 모니터링이 추적한 사용자 함수 건수 -
internal-func-count: PHP internal 함수 실행 건수 -
prof-internal-func-count: 와탭 모니터링이 추적한 internal 함수 건수
Fixed arm64(aarch64) 환경에서 트랜잭션 ID가 고유하게 발급되지 않아 프로파일 조회 시 잘못된 프로파일을 조회하는 현상 수정
Fixed 시스템 리소스 수집 옵션 중지 설정에도 불구하고 불필요하게 정보가 수집되어 CPU 부하를 발생시키는 현상 수정
2024-12-11
v2.9.0
New PHP 8.4 지원
Fixed session_start 프로파일 정보의 위치 수정
session_start 함수 내부에서 Redis 쿼리가 실행될 때, session_start 함수 정보를 Redis 쿼리 보다 먼저 표시하도록 수정합니다.
Fixed 멀티 트랜잭션 샘플링 수정
멀티 트랜잭션 샘플링이 비활성화되면, 외부 HTTP 호출이 여러 개여도 분산 트랜잭션 추적을 중단합니다.
2024-09-11
v2.8.2
New 에이전트 설정 파일(whatap.ini)보다 환경 변수 를 우선 처리하는 옵션 추가
-
기존 에이전트 설정은 whatap.ini, 환경 변수 순서로 적용합니다.
-
whatap.use_env_first(기본값false) 옵션을 설정하면 whatap.ini 파일의 설정보다 환경 변수를 우선 적용합니다.whatap.iniwhatap.use_env_first=true -
WHATAP_USE_ENV_FIRST=true형식으로 환경 변수를 이용해 설정할 수 있습니다.
Fixed OKIND 환경 변수 인식 오류 수정
OKIND 또는 WHATAP_OKIND 환경 변수로 okind를 설정할 수 있습니다.
2024-07-24
v2.8.1
New IP 주소별 트랜잭션 통계를 수집하는 에이전트 설정 옵션 추가
whatap.stat_ipurl_enabled Boolean, 기본값
false
Feature 통계 압축 전송을 설정하는 에이전트 설정 옵션 추가
whatap.stat_zip_enabled Boolean, 기본값
true
2024-06-19
v2.8.0
New linux aarch64 지원
Changed 기존 paramkey.txt 대신 security.conf 파일 사용
기존 security.conf 파일의 paramkey 키의 값을 사용합니다. 기본값은 무작위값이 아닌 WHATAP으로 지정도록 변경합니다. WHATAP 지정되면 키 입력없이 복호화할 수 있습니다.
Changed SQL 문장의 정규화 옵션 설정 변경
-
SQL 문장에서 파라미터를 분리하여 정규화하는 기능을 항상 활성화하세요.
whatap.trace_sql_normalize_enabled옵션을 항상true로 설정하세요. -
이미 정규화 옵션을 비활성화(정규화 중지 설정)한 상태라면, 정규화해서 파라미터를 별도 표기하는 설정을 활성화하세요.
whatap.profile_sql_param_enabled옵션을true로 설정하세요.- 정규화된 파라미터를 별도 암호화하여 수집합니다.
- security.conf의
paramkey로 복호화하여 데이터를 확인할 수 있습니다.
2024-03-06
v2.7.2
Changed 로그 모니터링 파일 이름에 날짜 형식의 변수를 사용하도록 수정
Python
strftime()사용 기준으로 수정합니다. 예, 20240101: %Y%m%d
Changed 설치 스크립트(/usr/whatap/php/install.sh) 안내 문구 수정
2024-01-24
v2.7.1
Fixed whatap.onode 옵션 설정 후 이름이 아닌 해쉬(숫자)값만 표기되는 오류 수정
Fixed Ubuntu 14 버전에서 whatap-php.service 파일이 인식 안되는 오류 수정
2024-01-10
v2.7.0
New PHP 8.3 지원
Feature 멀티 트랜잭션 추적에서 Trace context(W3C) 지원
Trace context를 지원하는 OpenTelmetry와 멀티 트랜잭션 추적 연계를 지원합니다.
Changed SQL, Method, HTTP call의 리소스 지표 수집 수정
트랜잭션 시작 시점의 리소스(cpu, memory)와 각 스탭 시작 시점의 리소스 차이를 수집합니다.
Changed 설정 파일(whatap.conf)이 없을 경우 새로 생성하도록 수정
Fixed 액티브 트랜잭션 목록에서 외부 호출 누적 건수가 누적 시간으로 잘못 수집되는 오류 수정
Fixed 리눅스 환경에서 whatap-php 서비스(whatap-php.service) 실행 오류 수정
Fixed PHP 8.1.0 버전에서 8.1.2 버전까지 발생하는 segmentation 오류 수정(사용자 함수에 대한 수집 중지)
2023-11-22
v2.6.3
Changed 텍스트 캐쉬 저장 기간을 기존 하루 간격에서 1시간 간격으로 변경
Changed kubernates 환경에서 cpu, memeory 지표를 수집하지 않도록 변경, Kubernates 에이전트에서 수집한 시스템 지표로 대체
Fixed CentOS 9 이상에서 whatap-php 서비스 실행 오류 수정
Fixed 도커 컨테이너 환경에서 vCpu 정보가 중복 수집되는 현상 수정
2023-09-13
v2.6.2
Feature 대용량 프로파일 처리 옵션 추가
-
기존 프로파일은 최대 1024개의 프로파일 정보를 수집했습니다. 설정으로 최댓값을 늘릴 수 있지만, 메모리 증가는 필수적으로 발생했습니다.
-
일정량의 프로파일을 압축 및 분할 전송하여 메모리 증가 없이 더 많은 프로파일 정보를 수집할 수 있도록 개선했습니다.
-
whatap.large_profile_enabled Boolean
기본값
false약 만 건 이하의 프로파일(스탭) 정보를 수집할 수 있습니다. 더 많은 양을 수집할 경우
split_profile_enabled옵션으로 사용하는 것을 권장합니다. -
whatap.split_profile_enabled Boolean
기본값
false일정량의 프로파일을 가상 트랜잭션으로 분리하여 더 많은 프로파일 정보를 수집합니다. 여러 개의 트랜잭션 목록으로 분할 표기합니다.
Feature 프로파일 데이터 압축 전송 옵션 추가
- whatap.profile_zip_enabled Boolean 기본값
true
Changed 특정 HTTP Method 수집을 제외하는 기능을 모든 트랜잭션을 대상으로 변경
-
whatap.ignore_http_method옵션은 모든 트랜잭션 대상으로 변경합니다. -
기존 제외 기능은
whatap.http_method_urls옵션으로 설정된 트랜잭션만 제외했습니다.whatap.http_method_urls옵션을 삭제하고 모든 트랜잭션 대상으로 변경합니다.