PHP Agent 0.6.0

2020-02-08

업데이트

공유메모리

PHP extension(whatap.so) 와 whatap-php service 간에 공유메모리를 이용한 IPC 기능을 추가했습니다.
shm_key의 값으로 설정된 키로 생성합니다. 이미 키가 사용되고 있다면 다른 키를 설정할 수 있습니다.
whatap-php service에서 공유메모리 생성 및 삭제를 관리합니다. PHP extension 에서는 조회기능만 수행합니다.

whatap.shm_enabled

Default : true
Type : Boolean

공유메모리 사용 여부를 설정합니다.

Apache 또는 PHP-FPM의 재시작 후 적용됩니다.
whatap.shm_key

Default : 6600
Type : Long

공유메모리를 생성할 때 필요한 키 정보입니다.

Apache 또는 PHP-FPM의 재시작 그리고 whatap-php 서비스도 재시작해야 적용됩니다.

공유메모리 확인 및 삭제

ipcs 명령어를 통해 공유메모리를 확인할 수 있습니다.

# ipcs
------ Shared Memory Segments --------
key               shmid      owner      perms      bytes      nattch     status
0x000019c8 131074     root       666        80         0

------ Semaphore Arrays --------
key               semid      owner      perms      nsems
0x000019c8 425984     root       666        1

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

ipcrm 명령어를 통해 공유메모리를 삭제할 수 있습니다.

# -m : remove shared memory by shmid
# ipcrm -m 131074
# -s : remove semaphore by semid
# ipcrm -s 425984

액티브 스테이터스

공유메모리를 통해 진행중인 요청의 현재 상태를 5초 간격으로 수집합니다.
대시보드 화면에 액티브 스테이터스 그래프가 표기됩니다. 상태는 일반 함수, SQL, DB connection, 외부 HTTP 연결, 소켓 연결이 있으며 각 상태별로 진행중인 요청 개수를 표시합니다.

Apache 또는 PHP-FPM가 재시작되면 진행중인 프로세스가 처리 중에 종료되면,
정상적인 액티브 스테이터스 완료 처리가 되지 않아 오차가 발생할 수 있습니다. 액티브 트랜잭션 수와 많은 차이가 발생하는 경우,
설정에서 whatap.active_stat_enabled를 false로 설정한 후, 대시보드에서 0건으로 초기화 되면 다시 true로 설정합니다.
active status

동적 설정 기능

기존에 사이트 에이전트 설정 메뉴에서 설정을 추가 또는 변경하여도 Apache 또는 PHP-FPM을 재시작해야만 적용되는 설정을 공유메모리를 통해서 재시작 없이 적용가능합니다.

옵션 설명

whatap.ext.error_enabled

PHP 확장 모듈(PHP Extension module) 에서 오류(Error) 정보를 수집하는 기능을 활성화 합니다.

whatap.ext.exception_enabled

PHP 확장 모듈(PHP Extension module) 에서 예외 처리(Exception) 정보를 수집하는 기능을 활성화 합니다.

whatap.trace_user_enabled

실시간 사용자 집계 여부를 지정합니다. 이 값을 활성화 하는 경우 아이피 또는 PHP 기본 쿠키(PHPSESSID) 및 프레임워크 쿠키(ci_session, Laravel_session)를 기준으로 사용자를 추적합니다.

whatap.trace_user_using_ip

실시간 사용자의 구분을 IP로 하고자 하는 경우 설정합니다. 이 데이터는 Real Time User에서 확인 가능합니다.

whatap.trace_user_set_cookie

사용자의 구분을 하기 위해 쿠키에 “WHATAP” 키 이름으로 사용자 구분 값을 설정한다. trace_user_using_ip 설정 되는 경우 반영되지 않습니다.

whatap.profile_method_enabled

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

whatap.profile_method_stack_enabled

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

whatap.profile_internal_method_enabled

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

whatap.profile_internal_method_param_enabled

PHP 내부함수에 전달되는 인수의 정보를 같이 출력합니다. 숫자형, 문자형만 값이 출력됩니다. Default: false (true,false)

whatap.profile_http_header_enabled

프로파일 내역에 http 헤더 정보를 기록하고자 할 때 사용합니다.

whatap.profile_http_parameter_enabled

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

whatap.whatap.profile_compile_file_enabled

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

트랜잭션 리퍼러

통계로 수집되는 referer의 형식을 지정합니다.
도메인 형식으로 지정하면 트랜잭션 리퍼러의 도메인으로 통합된 건수를 확인할 수 있습니다.

whatap.stat_referer_format

Default : 0
Type : Int

설명

0

전체 (도메인 + 경로 + 쿼리 파라메터)

1

도메인 (http://www.aa.com)

2

도메인 및 경로(http://www.aa.com/aa.php)

3

경로 (/aa.php)

트랜잭션 추적 제외 설정

특정 URL을 설정하면 트랜잭션 추적 대상에서 제외됩니다. 설정된 URL은 트랜잭션 정보를 수집하지 않아, 트랜잭션 목록에서 확인되지 않습니다.

trace_ignore_url_set

Default : 0
Type : String
트랜잭션 추적 대상에서 제외할 URL을 지정합니다. 여러개를 지정할경우 콤마(,)로 구분합니다.

trace_ignore_url_prefix

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

x-forwarded-for

클라이언트 아이피를 수집하는 설정의 기본값을 x-forwarded-for 헤더로 변경합니다.
우선적으로 x-forwarded-for 값을 찾고, 없으면 REMOTE_ADDR 을 사용합니다.

whatap.trace_http_client_ip_header_key

Default : X_FORWARDED_FOR
Type : String

버그

Http Method

Http Method 정보를 수집하지 못해 모두 GET으로 표기되던 문제를 수정했습니다.