PHP 호환성 요구사항 (PHP Compatibility Requirements)
PHP 트레이서의 호환성 요구사항을 안내해요.
출처: 문서
본문
이 문서는 PHP 트레이서 v1.x용이에요. PHP 트레이서 v0.x 문서를 찾고 있다면 레거시 PHP Compatibility Requirements 문서를 참고하세요.
PHP APM 런타임 지원 정책 (Runtime support policy for PHP APM)
PHP Datadog Trace 라이브러리는 오픈소스예요. 자세한 내용은 GitHub 저장소를 참고하세요.
Datadog APM for PHP는 특정 버전의 호스트 운영체제, PHP 런타임, 특정 PHP 라이브러리, Datadog Agent 또는 API에 정의된 의존성 위에 구축돼요. 이러한 버전이 메인테이너의 지원을 받지 못하게 되면 Datadog APM for PHP도 이에 대한 지원을 제한해요.
지원 수준 (Levels of support)
| 수준 | 제공되는 지원 |
|---|---|
| 미지원 (Unsupported) | 구현이 없어요. 특별 요청은 고객 지원팀에 문의하세요. |
| Preview | 초기 구현이에요. 아직 모든 기능을 포함하지 않을 수 있어요. 새 기능, 버그, 보안 수정 지원은 최선 노력 기준으로 제공돼요. |
| GA(General Availability) | 모든 기능의 완전한 구현이에요. 새 기능, 버그, 보안 수정에 대한 전체 지원을 제공해요. |
| 유지보수 (Maintenance) | 기존 기능의 완전한 구현이에요. 새 기능은 받지 않아요. 버그·보안 수정 지원만 제공해요. |
| 레거시 (Legacy) | 레거시 구현이에요. 기능이 제한적일 수 있지만 유지보수는 제공되지 않아요. 특별 요청은 지원팀에 문의하세요. |
| EOL(End-of-life) | 지원이 없어요. 버전은 여전히 사용할 수 있지만 버그 수정은 제공되지 않아요. |
PHP APM은 다음 PHP 버전을 지원해요(ZTS와 NTS 모두):
참고: PHP 5.x는 1.0.0부터 지원되지 않아요. PHP 5를 사용 중이라면 최대 0.99 버전까지 PHP 트레이서를 계속 사용할 수 있어요. 애플리케이션에서 PHP 5.x 버전을 사용 중이고 비즈니스에 중요한 기능 요청이 있다면 Datadog 지원에 문의하세요. 특히 8.0+와 같은 공식 지원 버전의 PHP를 사용하는 것이 좋아요.
| PHP 버전 | 지원 수준 | 패키지 버전 |
|---|---|---|
| 8.5.x | GA | > 1.14.0+ |
| 8.4.x | GA | > 1.5.0+ |
| 8.3.x | GA | > 0.93.0+ |
| 8.2.x | GA | > 0.82.0+ |
| 8.1.x | GA | > 0.66.0+ |
| 8.0.x | GA | > 0.52.0+ |
| 7.4.x | GA | All |
| 7.3.x | GA | All |
| 7.2.x | GA | All |
| 7.1.x | GA | All |
| 7.0.x | GA | All |
| 5.6.x | EOL | < 1.0.0 |
| 5.5.x | EOL | < 1.0.0 |
| 5.4.x | EOL | < 1.0.0 |
PHP APM은 다음 SAPI를 지원해요:
| SAPI | 지원 유형 |
|---|---|
| apache2handler | 지원되는 모든 PHP 버전 |
| cli | 지원되는 모든 PHP 버전 |
| fpm-fcgi | 지원되는 모든 PHP 버전 |
| cgi-fcgi | 지원되는 모든 PHP 버전 |
| FrankenPHP | 지원되는 모든 PHP 버전 |
지원되는 프로세서 아키텍처 (Supported processor architectures)
PHP APM은 다음 아키텍처를 지원해요:
| 프로세서 아키텍처 | 지원 수준 | 패키지 버전 | 지원 유형 |
|---|---|---|---|
Linux GNU amd64 (x86-64-linux-gnu) |
GA | All | 지원되는 모든 PHP 버전 |
Linux MUSL amd64 (x86-64-linux-musl) |
GA | All | 지원되는 모든 PHP 버전 |
Linux GNU arm64 (aarch64-linux-gnu) |
GA | > 0.78.0 |
지원되는 모든 PHP 버전 |
Linux MUSL arm64 (aarch64-linux-musl) |
GA | > 0.78.0 |
지원되는 모든 PHP 버전 |
Windows amd64 (x86_64-windows) |
GA | > 0.98.0 |
PHP 7.2+ |
통합 (Integrations)
웹 프레임워크 호환성 (Web framework compatibility)
기본적으로 Datadog은 모든 PHP 웹 프레임워크를 즉시 지원해요. 프레임워크 수준 계측이든 일반적인 웹 트레이싱이든 지원해요.
프레임워크 수준 계측에는 내부 메서드의 트레이싱과 프레임워크 특정 태깅이 포함돼요.
일반 웹 트레이싱에는 호출에서 발생한 지연과 오류를 추적하는 web.request 스팬과 함께, 지원되는 라이브러리(예: 데이터베이스, HTTP 클라이언트)에 대한 스팬이 포함돼요.
다음 표는 Datadog가 성공적으로 트레이싱하는 일부 프레임워크와 버전을 보여줘요.
웹 프레임워크:
| 모듈 | 버전 | 지원 유형 | 계측 수준 |
|---|---|---|---|
| CakePHP | 2.x, 3.x, 4.x, 5.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| CodeIgniter | 2.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| CodeIgniter | 3.x | 지원되는 모든 PHP 버전 | 일반 웹 트레이싱 |
| Drupal | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 | |
| FuelPHP | 1.1 | 지원되는 모든 PHP 버전 | 일반 웹 트레이싱 |
| Laminas | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 | |
| Laravel | 4.2, 5.x, 6.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Laravel 8+ | 8.x, 9.x, 10.x, 11.x (트레이서 0.52.0+) |
지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Lumen | 5.2+ | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Magento | 1 | 지원되는 모든 PHP 버전 | 일반 웹 트레이싱 |
| Magento | 2 | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Neos Flow | 1.1 | 지원되는 모든 PHP 버전 | 일반 웹 트레이싱 |
| Phalcon | 1.3, 3.4 | 지원되는 모든 PHP 버전 | 일반 웹 트레이싱 |
| RoadRunner | SDK(RoadRunner는 두 가지 버전 체계를 사용해요: SDK 컴포넌트용 시맨틱 버전(3.x), 서버용 달력 버전(2024.x). 호환성 목적상 SDK 버전을 참고하세요.) 2.x, 3.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Slim | 2.x, 3.x, 4.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Symfony | 2.x, 3.3, 3.4, 4.x, 5.x, 6.x, 7.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| WordPress | 4.x, 5.x, 6.x | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Yii | 2.0 | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Zend Framework | 1.12, 1.21 | 지원되는 모든 PHP 버전 | 프레임워크 수준 계측 |
| Zend Framework | 2.x | 지원되는 모든 PHP 버전 | 일반 웹 트레이싱 |
웹 프레임워크가 이 목록에 없어도 최신 SDK 릴리스로 즉시 지원된다는 점을 참고하세요.
Datadog은 PHP 웹 프레임워크에 대한 심층 트레이싱 지원을 지속적으로 추가하고 있어요. 추가 스팬 메타데이터와 프레임워크 내부에 대한 지원을 요청하려면 훌륭한 지원팀에 문의하세요.
CLI 라이브러리 호환성 (CLI library compatibility)
CLI SAPI 트레이싱은 기본적으로 활성화돼요. PHP CLI 스크립트의 트레이싱을 선택적으로 비활성화하려면 DD_TRACE_CLI_ENABLED=false를 설정하세요.
| 모듈 | 버전 | 지원 유형 |
|---|---|---|
| CakePHP Console | 2.x, 3.x | 지원되는 모든 PHP 버전 |
| Laravel Artisan | 5.x, 8.x, 9.x, 10.x | 지원되는 모든 PHP 버전 |
| Symfony CLI | 4.x, 5.x, 6.x, 7.x | 지원되는 모든 PHP 버전 |
추가 CLI 라이브러리 지원을 요청하려면 훌륭한 지원팀에 문의하세요.
데이터 저장소 호환성 (Datastore compatibility)
| 모듈 | 버전 | 지원 유형 |
|---|---|---|
| Amazon RDS (PDO 또는 MySQLi 사용) | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
| Elasticsearch | 1+ | 지원되는 모든 PHP 버전 |
| Eloquent | Laravel 지원 버전 | 지원되는 모든 PHP 버전 |
| Laravel Queues | Laravel 지원 버전 | 지원되는 모든 PHP 버전 |
| Memcache | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
| Memcached | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
| MongoDB - mongo 확장 경유 | 1.4.x | 지원되는 모든 PHP 버전 |
| MySQLi | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
| PDO | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
| PhpRedis | 3, 4, 5 | 지원되는 모든 PHP 버전 |
| Predis | 1.1 | 지원되는 모든 PHP 버전 |
| SQLSRV | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
참고: Redis 6.0+는 HELLO, MIGRATE, ACL SETUSER 같은 명령에서 인라인 인증을 지원해요.
- Datadog Trace Agent: 인증 매개변수가 트레이스 메타데이터에서 자동으로 난독화되도록 보장하는 최소 권장 버전은
7.76.1이에요. - Datadog Lambda Extension(서버리스 환경): 최소 필요 버전은
v28.0.0이에요.
추가 데이터 저장소 지원을 요청하려면 훌륭한 지원팀에 문의하세요.
라이브러리 호환성 (Library compatibility)
| 모듈 | 버전 | 지원 유형 |
|---|---|---|
| php-amqplib | 2.x, 3.x | PHP 7.1+ |
| Curl | (지원되는 모든 PHP) | 지원되는 모든 PHP 버전 |
| Guzzle | 5.x, 6.x, 7.x | 지원되는 모든 PHP 버전 |
| Laravel Queue | Laravel 지원 버전 | 지원되는 모든 PHP 버전 |
| OpenAI | OpenAI 지원 버전 | 지원되는 모든 PHP 버전 |
| Symfony Messenger | 4.4, 5.x, 6.x, 7.x | 지원되는 모든 PHP 버전 |
추가 라이브러리 지원을 요청하려면 훌륭한 지원팀에 문의하세요.
PCNTL
Datadog는 pcntl을 사용한 포크된 프로세스의 트레이싱을 지원해요. pcntl_fork 호출이 감지되면 전용 스팬이 생성되고 포크된 프로세스가 계측돼요. DD_TRACE_FORKED_PROCESS로 비활성화할 수 있어요. 자세한 내용은 라이브러리 구성 페이지를 참고하세요.
애플리케이션이 pcntl_unshare(CLONE_NEWUSER);를 호출하고 트레이서가 설치되어 있으면 애플리케이션이 치명적으로 충돌해요. CLONE_NEWUSER가 있는 unshare는 프로세스가 스레드화되지 않을 것을 요구하는 반면, PHP 트레이서는 메인 프로세스를 차단하지 않고 Datadog Agent에 트레이스를 보내기 위해 별도의 스레드를 사용하기 때문이에요.