This documentation is for the PHP tracer v1.x. If you are looking for the PHP tracer v0.x documentation, see the legacy PHP Compatibility Requirements documentation.

Runtime support policy for PHP APM

The PHP Datadog Trace library is open source - view the GitHub repository for more information.

Datadog APM for PHP is built upon dependencies defined in specific versions of the host operating system, PHP runtime, certain PHP libraries, and the Datadog Agent or API. When these versions are no longer supported by their maintainers, Datadog APM for PHP limits its support for these as well.

Levels of support

LevelSupport provided
UnsupportedNo implementation. Contact our customer support team for special requests.
PreviewInitial implementation. May not yet contain all features. Support for new features, bug, and security fixes provided on a best-effort basis.
General Availability (GA)Full implementation of all features. Full support for new features, bug, and security fixes.
MaintenanceFull implementation of existing features. Does not receive new features. Support for bug and security fixes only.
LegacyLegacy implementation. May have limited function, but no maintenance provided. Contact the support team for special requests.
End-of-life (EOL)No support. The version can still be used but no bug fixes are provided.

PHP APM supports the following PHP versions (both ZTS and NTS):

Note: PHP 5.x is not supported starting version 1.0.0. If you are using PHP 5, you can still use the PHP tracer up to version 0.99.
If you are using PHP 5.x version in your application and have a feature request which is critical for your business needs, contact Datadog Support.
It's recommended to use officially supported versions of PHP, especially 8.0+.
PHP VersionSupport levelPackage version
8.3.xGeneral Availability> 0.93.0+
8.2.xGeneral Availability> 0.82.0+
8.1.xGeneral Availability> 0.66.0+
8.0.xGeneral Availability> 0.52.0+
7.4.xGeneral AvailabilityAll
7.3.xGeneral AvailabilityAll
7.2.xGeneral AvailabilityAll
7.1.xGeneral AvailabilityAll
7.0.xGeneral AvailabilityAll
5.6.xEOL< 1.0.0
5.5.xEOL< 1.0.0
5.4.xEOL< 1.0.0

PHP APM supports the following SAPI’s:

SAPISupport type
apache2handlerAll supported PHP versions
cliAll supported PHP versions
fpm-fcgiAll supported PHP versions
cgi-fcgiAll supported PHP versions
FrankenPHPAll supported PHP versions

Supported processor architectures

PHP APM supports the following architectures:

Processor architecturesSupport levelPackage versionSupport Type
Linux GNU amd64 (x86-64-linux-gnu)GAAllAll supported PHP versions
Linux MUSL amd64 (x86-64-linux-musl)GAAllAll supported PHP versions
Linux GNU arm64 (aarch64-linux-gnu)GA> 0.78.0All supported PHP versions
Linux MUSL arm64 (aarch64-linux-musl)GA> 0.78.0All supported PHP versions
Windows amd64 (x86_64-windows)GA> 0.98.0PHP 7.2+

Integrations

Web framework compatibility

By default, Datadog supports all PHP web frameworks out of the box, with either framework-level instrumentation, or generic web tracing.

Framework-level instrumentation includes tracing of internal methods and framework specific tagging.

Generic web tracing includes a web.request span to track latency and errors that originated from the call, in addition to spans for supported libraries — for example: database and HTTP clients.

The following table enumerates some of the frameworks and versions Datadog successfully traces.

Web frameworks:

ModuleVersionsSupport TypeInstrumentation level
CakePHP2.xAll supported PHP versionsFramework-level instrumentation
CodeIgniter2.xAll supported PHP versionsFramework-level instrumentation
CodeIgniter3.xAll supported PHP versionsGeneric web tracing
DrupalAll supported PHP versionsFramework-level instrumentation
FuelPHP1.1All supported PHP versionsGeneric web tracing
LaminasAll supported PHP versionsFramework-level instrumentation
Laravel4.2, 5.x, 6.xAll supported PHP versionsFramework-level instrumentation
Laravel 8+8.x, 9.x, 10.x, 11.x (tracer 0.52.0+)All supported PHP versionsFramework-level instrumentation
Lumen5.2+All supported PHP versionsFramework-level instrumentation
Magento1All supported PHP versionsGeneric web tracing
Magento2All supported PHP versionsFramework-level instrumentation
Neos Flow1.1All supported PHP versionsGeneric web tracing
Phalcon1.3, 3.4All supported PHP versionsGeneric web tracing
RoadRunnerRoadRunner uses two versioning schemes: semantic versioning (3.x) for the SDK component, and calendar versioning (2024.x) for the server. For compatibility purposes, refer to the SDK version. 2.x, 3.xAll supported PHP versionsFramework-level instrumentation
Slim2.x, 3.x, 4.xAll supported PHP versionsFramework-level instrumentation
Symfony2.x, 3.3, 3.4, 4.x, 5.x, 6.x, 7.xAll supported PHP versionsFramework-level instrumentation
WordPress4.x, 5.x, 6.xAll supported PHP versionsFramework-level instrumentation
Yii2.0All supported PHP versionsFramework-level instrumentation
Zend Framework1.12, 1.21All supported PHP versionsFramework-level instrumentation
Zend Framework2.xAll supported PHP versionsGeneric web tracing

Note that even if you don’t see your web framework in this list, it is supported out of the box with the latest release of the tracer.

Datadog is continuously adding more support for in-depth tracing for PHP web-frameworks. To request support for additional span metadata and framework internals, contact our awesome support team.

CLI library compatibility

Tracing from the CLI SAPI is disabled by default. To enable tracing of PHP CLI scripts, set DD_TRACE_CLI_ENABLED=true.

ModuleVersionsSupport Type
CakePHP Console2.xAll supported PHP versions
Laravel Artisan5.x, 8.x, 9.x, 10.xAll supported PHP versions
Symfony CLI4.x, 5.x, 6.x, 7.xAll supported PHP versions

To request support for additional CLI libraries, contact our awesome support team.

Datastore compatibility

ModuleVersionsSupport Type
Amazon RDS (using PDO or MySQLi)(Any Supported PHP)All supported PHP versions
Elasticsearch1+All supported PHP versions
EloquentLaravel supported versionsAll supported PHP versions
Laravel QueuesLaravel supported versionsAll supported PHP versions
Memcache(Any Supported PHP)All supported PHP versions
Memcached(Any Supported PHP)All supported PHP versions
MongoDB - via mongo extension1.4.xAll supported PHP versions
MySQLi(Any Supported PHP)All supported PHP versions
PDO(Any Supported PHP)All supported PHP versions
PhpRedis3, 4, 5All supported PHP versions
Predis1.1All supported PHP versions
SQLSRV(Any Supported PHP)All supported PHP versions

To request support for additional datastores, contact our awesome support team.

Library compatibility

ModuleVersionsSupport Type
php-amqplib2.x, 3.xPHP 7.1+
Curl(Any Supported PHP)All supported PHP versions
Guzzle5.x, 6.x, 7.xAll supported PHP versions
Laravel QueueLaravel supported versionsAll supported PHP versions
OpenAIOpenAI supported versionsAll supported PHP versions
Symfony Messenger4.4, 5.x, 6.x, 7.xAll supported PHP versions

To request support for additional libraries, contact our awesome support team.

Deep call stacks on PHP 5

The call stack is limited on PHP 5. See the deep call stack troubleshooting page for more details.

Generators

Instrumenting generators is not supported on PHP 5 and PHP 7.

PCNTL

Datadog supports tracing forked processes using pcntl. When a call to pcntl_fork is detected, a dedicated span is created, and the forked process is instrumented. This can be disabled with DD_TRACE_FORKED_PROCESS. Refer to the library configuration page for more details.

If the application invokes pcntl_unshare(CLONE_NEWUSER); and the tracer is installed, the application fatally crashes. This happens because unshare with CLONE_NEWUSER requires the process not to be threaded, while the PHP tracer uses a separate thread to send traces to the Datadog Agent without blocking the main process.

Further Reading

Additional helpful documentation, links, and articles: