1. 개요
Datadog을 통해 PHP 애플리케이션의 Trace를 수집하기 위한 설치 및 기본 구성 메모입니다. PHP 확장 모듈인 ddtrace를 설치한 뒤, PHP 실행 환경에서 확장이 정상적으로 로드되는지 확인하고 Datadog Agent로 Trace가 전달되는지 점검하는 흐름으로 진행합니다.
운영 환경에 적용하기 전에는 현재 사용 중인 PHP 버전, SAPI(CLI, FPM, Apache 모듈 등), 배포 방식에 따라 로드되는 php.ini가 다를 수 있으므로 먼저 설정 파일 위치를 확인하는 것이 좋습니다.
2. 관련 페이지
3. 설치 전 확인 사항
- PHP가 설치되어 있고, 대상 애플리케이션이 사용하는 PHP 실행 환경을 확인합니다.
- Datadog Agent가 설치되어 있으며 APM 수집이 가능한 상태인지 확인합니다.
- 수동 컴파일 방식으로 설치할 경우 PHP 개발 도구(
phpize, 헤더 파일 등)와 빌드 도구가 필요할 수 있습니다.
php -v
php --ini
php -m
php --ini 명령으로 CLI에서 로드하는 설정 파일을 확인할 수 있습니다. 다만 PHP-FPM이나 Apache에서 사용하는 설정 파일은 CLI와 다를 수 있으므로, 실제 서비스 환경의 설정도 별도로 확인해야 합니다.
4. 확장 모듈 설치 및 설정
공식 문서의 수동 컴파일 절차를 참고하여 ddtrace 확장을 빌드하고 설치합니다. 설치 후에는 PHP 설정 파일에 확장 모듈을 로드하는 설정이 포함되어야 합니다.
extension=ddtrace.so
환경에 따라 서비스 이름, 환경명, 버전 등의 값을 설정해 두면 Datadog 화면에서 Trace를 구분하기 쉽습니다. 설정 방식은 PHP 설정 파일 또는 환경 변수 방식 중 운영 환경에 맞는 방법을 선택합니다.
DD_SERVICE=your-service-name
DD_ENV=production
DD_VERSION=your-app-version
설정을 변경한 뒤에는 PHP-FPM, Apache 등 실제 애플리케이션을 실행하는 프로세스를 재시작해야 합니다. CLI에서만 확장이 보인다고 해서 웹 요청에서도 반드시 로드되는 것은 아니므로 주의합니다.
5. 설치 확인
확장이 정상적으로 로드되었는지 먼저 확인합니다.
php -m | grep ddtrace
웹 애플리케이션의 경우 테스트 요청을 몇 차례 발생시킨 뒤 Datadog APM 화면에서 해당 서비스의 Trace가 수집되는지 확인합니다. Trace가 보이지 않는다면 다음 항목을 우선 점검합니다.
- PHP 설정 파일에
ddtrace확장이 로드되어 있는지 - CLI와 PHP-FPM 또는 Apache가 서로 다른
php.ini를 사용하고 있지 않은지 - Datadog Agent가 실행 중이며 APM 수집이 활성화되어 있는지
- 애플리케이션 서버에서 Datadog Agent로 통신이 가능한지