This documentation is for the PHP tracer v0.x. If you are looking for the PHP tracer v1.x documentation, see the latest 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.
BetaInitial 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 fully supported until version 0.75.0. It is now in maintenance mode and supported with security and important bug fixes until December 31, 2023.
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 7.4, 8.0, and 8.1.
PHP VersionSupport levelPackage version
8.3.xBeta (until the official PHP release)> 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.xMaintenance (until December 31, 2023)All
5.5.xMaintenance (until December 31, 2023)All
5.4.xMaintenance (until December 31, 2023)All

PHP APM supports the following SAPI’s:

SAPISupport type
apache2handlerFully Supported
cliFully Supported
fpm-fcgiFully Supported
cgi-fcgiFully Supported

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.x, 3.x, 4.x, 5.xAll supported PHP versionsFramework-level instrumentation
CodeIgniter2.x, 3.xPHP 7+Framework-level instrumentation
DrupalAll supported PHP versionsFramework-level instrumentation
FuelPHP1.1PHP 7+Generic 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
Magento2PHP 7+Framework-level instrumentation
Neos Flow1.1All supported PHP versionsGeneric web tracing
Phalcon1.3, 3.4All supported PHP versionsGeneric web tracing
RoadRunner2.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.xPHP 7+Framework-level instrumentation
Yii1.1, 2.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.xFully Supported
Laravel Artisan5.x, 8.x, 9.x, 10.xFully Supported
Symfony CLI4.x, 5.x, 6.xFully Supported

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)Fully Supported
Elasticsearch1+Fully Supported
EloquentLaravel supported versionsFully Supported
Laravel QueuesLaravel supported versionsFully Supported
Memcache(Any Supported PHP)Fully Supported
Memcached(Any Supported PHP)Fully Supported
MongoDB - via [mongo][4] extension1.4.xFully Supported
MySQLi(Any Supported PHP)Fully Supported
PDO(Any Supported PHP)Fully Supported
PhpRedis3, 4, 5PHP 7, 8
Predis1.1Fully Supported
SQLSRV(Any Supported PHP)Fully Supported

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

Library compatibility

ModuleVersionsSupport Type
[php-amqplib][10]2.x, 3.xPHP 7.1+
Curl(Any Supported PHP)Fully Supported
Guzzle5.x, 6.x, 7.xFully Supported

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][5] for more details.

Generators

Instrumenting [generators][6] is not supported on PHP 5 and PHP 7.

PCNTL

Datadog supports tracing forked processes using [pcntl][7]. 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][9] 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][8], 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: