Cette documentation concerne le traceur PHP v0.x. Si vous recherchez la documentation du traceur PHP v1.x, consultez la dernière documentation la plus récente relative aux exigences de compatibilité PHP.

Politique de prise en charge du runtime pour PHP

La bibliothèque de tracing Datadog PHP est open source. Consultez le référentiel GitHub pour en savoir plus.

La solution APM Datadog pour PHP s’appuie sur des dépendances définies dans des versions spécifiques du système d’exploitation du host, du runtime PHP, de certaines bibliothèques PHP, ainsi que de l’Agent ou l’API Datadog. Lorsque ces versions cessent d’être prises en charge et maintenues, la prise en charge par APM pour PHP s’arrête également.

Niveaux de prise en charge

NiveauPrise en charge fournie
Aucune prise en chargeAucune implémentation. Contactez l’assistance clientèle pour toute demande spéciale.
BêtaImplémentation initiale. Peut ne pas encore contenir toutes les fonctionnalités. La prise en charge des nouvelles fonctionnalités, les corrections de bugs et le déploiement de patchs de sécurité sont assurés dans la mesure du possible uniquement.
Disponibilité généraleImplémentation complète de toutes les fonctionnalités. Prise en charge totale des nouvelles fonctionnalités, des corrections de bugs et des patchs de sécurité.
MaintenanceImplémentation complète des fonctionnalités existantes. Aucune nouvelle fonctionnalité n’est ajoutée. Prise en charge des corrections de bugs et des patchs de sécurité uniquement.
LegacyImplémentation legacy. Certaines fonctionnalités limitées peuvent être proposées, mais aucune maintenance n’est assurée. Contactez l’équipe d’assistance en cas de demande spéciale.
Fin de cycle de vieAucune assistance. La version peut quand même être utilisée, mais aucune correction de bug n’est assurée.

APM pour PHP prend en charge les versions suivantes de PHP (ZTS et NTS) :

Remarque : PHP 5.x est entièrement pris en charge jusqu'à la version 0.75.0. Il est désormais en mode maintenance, et seules les mises à jour de sécurité ainsi que les corrections de bugs importantes sont assurées jusqu'au 31 décembre 2023.
Si vous utilisez une version 5.x de PHP dans votre application et que votre activité nécessite impérativement une fonctionnalité essentielle, contactez l'assistance Datadog.
Nous vous conseillons d'utiliser l'une des versions officiellement prises en charge de PHP, notamment les versions 7.4, 8.0 et 8.1.
Version de PHPNiveau de prise en chargeVersion du package
8.3.xBêta (jusqu’à la version officielle de PHP)> 0.93.0+
8.2.xDisponibilité générale> 0.82.0+
8.1.xDisponibilité générale> 0.66.0+
8.0.xDisponibilité générale> 0.52.0+
7.4.xDisponibilité généraleTous
7.3.xDisponibilité généraleTous
7.2.xDisponibilité généraleTous
7.1.xDisponibilité généraleTous
7.0.xDisponibilité généraleTous
5.6.xMaintenance (jusqu’au 31 décembre 2023)Tous
5.5.xMaintenance (jusqu’au 31 décembre 2023)Tous
5.4.xMaintenance (jusqu’au 31 décembre 2023)Tous

APM pour PHP prend en charge les SAPI suivants :

SAPIType de prise en charge
apache2handlerPrise en charge complète
cliPrise en charge complète
fpm-fcgiPrise en charge complète
cgi-fcgiPrise en charge complète

Architectures de processeur prises en charge

APM pour PHP prend en charge les architectures suivantes :

Architectures de processeurNiveau de prise en chargeVersion du packageType de prise en charge
Linux GNU amd64 (x86-64-linux-gnu)Disponibilité généraleTousToutes les versions de PHP prises en charge
Linux MUSL amd64 (x86-64-linux-musl)Disponibilité généraleTousToutes les versions de PHP prises en charge
Linux GNU arm64 (aarch64-linux-gnu)Disponibilité générale> 0.78.0Toutes les versions de PHP prises en charge
Linux MUSL arm64 (aarch64-linux-musl)Disponibilité générale> 0.78.0Toutes les versions de PHP prises en charge
Windows amd64 (x86_64-windows)Disponibilité générale> 0.98.0PHP 7.2+

Intégrations

Compatibilité des frameworks Web

Datadog prend en charge tous les frameworks Web PHP par défaut, soit via une instrumentation au niveau du framework, soit via une solution de tracing Web générique.

L’instrumentation au niveau du framework implique le tracing des méthodes internes et l’application de tags spécifiques au framework.

Le tracing Web générique utilise une span web.request pour suivre la latence et les erreurs générées par l’appel, ainsi que des spans pour les bibliothèques prises en charge, par exemple pour des clients de base de données et HTTP.

Le tableau suivant énumère plusieurs frameworks et versions pour lesquels Datadog peut surveiller des traces.

Fraweworks Web :

ModuleVersionsType de prise en chargeNiveau d’instrumentation
CakePHP2.x, 3.x, 4.x, 5.xToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
CodeIgniter2.x, 3.xPHP 7+Instrumentation au niveau du framework
DrupalToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
FuelPHP1.1PHP 7+Tracing Web générique
LaminasToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Laravel4.2, 5.x, 6.xToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Laravel 8+8.x, 9.x, 10.x, 11.x (traceur 0.52.0+)Toutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Lumen5.2+Toutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Magento1Toutes les versions de PHP prises en chargeTracing Web générique
Magento2PHP 7+Instrumentation au niveau du framework
Neos Flow1.1Toutes les versions de PHP prises en chargeTracing Web générique
Phalcon1.3, 3.4Toutes les versions de PHP prises en chargeTracing Web générique
RoadRunner2.xToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Slim2.x, 3.x, 4.xToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Symfony2.x, 3.3, 3.4, 4.x, 5.x, 6.x, 7.xToutes les versions de PHP prises en chargeInstrumentation au niveau du framework
WordPress4.x, 5.x, 6.xPHP 7+Instrumentation au niveau du framework
Yii1.1, 2.0Toutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Zend Framework1.12, 1.21Toutes les versions de PHP prises en chargeInstrumentation au niveau du framework
Zend Framework2.xToutes les versions de PHP prises en chargeTracing Web générique

Attention : même si votre framework Web n’est pas répertorié, il est par défaut pris en charge avec la dernière version du traceur.

Datadog améliore continuellement le tracing des frameworks Web PHP. Pour demander la prise en charge d’autres métadonnées de span et d’autres composants internes de framework, contactez notre formidable équipe d’assistance.

Compatibilité des bibliothèques CLI

Le tracing depuis le CLI SAPI est désactivé par défaut. Pour activer le tracing des scripts CLI PHP, définissez DD_TRACE_CLI_ENABLED=true.

ModuleVersionsType de prise en charge
Console CakePHP2.xPrise en charge complète
Laravel Artisan5.x, 8.x, 9.x, 10.xPrise en charge complète
Symfony CLI4.x, 5.x, 6.xPrise en charge complète

Pour demander la prise en charge d’une autre bibliothèque CLI, contactez notre formidable équipe d’assistance.

Compatibilité des datastores

ModuleVersionsType de prise en charge
Amazon RDS (avec PDO ou MySQLi)(Toute version de PHP prise en charge)Prise en charge complète
Elasticsearch1+Prise en charge complète
EloquentVersions prises en charge par LaravelPrise en charge complète
Laravel QueuesVersions prises en charge par LaravelPrise en charge complète
Memcache(Toute version de PHP prise en charge)Prise en charge complète
Memcached(Toute version de PHP prise en charge)Prise en charge complète
MongoDB - via l’extension [mongo][4]1.4.xPrise en charge complète
MySQLi(Toute version de PHP prise en charge)Prise en charge complète
PDO(Toute version de PHP prise en charge)Prise en charge complète
PhpRedis3, 4, 5PHP 7, 8
Predis1.1Prise en charge complète
SQLSRV(Toute version de PHP prise en charge)Prise en charge complète

Pour demander la prise en charge d’un autre datastore, contactez notre formidable équipe d’assistance.

Compatibilité des bibliothèques

ModuleVersionsType de prise en charge
[php-amqplib][10]2.x, 3.xPHP 7.1+
Curl(Toute version de PHP prise en charge)Prise en charge complète
Guzzle5.x, 6.x, 7.xPrise en charge complète

Pour demander la prise en charge d’une autre bibliothèque, contactez notre formidable équipe d’assistance.

Call stacks profondes sur PHP 5

Les call stacks sont limitées sur PHP 5. Pour en savoir plus, consultez la [page de dépannage des call stacks profondes][5].

Générateurs

L’instrumentation des [générateurs][6] n’est pas prise en charge sur PHP 5 et PHP 7.

PCNTL

Datadog permet le tracing de processus forkés via [pcntl][7]. Lorsqu’un appel à pcntl_fork est détecté, un span dédié est créé et le processus forké est instrumenté. Ceci peut être désactivé avec DD_TRACE_FORKED_PROCESS. Référez-vous à la [page relative à la configuration de la bibliothèque][9] pour en savoir plus.

Si l’application invoque pcntl_unshare(CLONE_NEWUSER); et que le traceur est installé, un plantage fatal se produit. Ce problème survient car unshare avec CLONE_NEWUSER nécessite un processus [sans thread][8], alors que le traceur PHP utilise un thread séparé pour envoyer les traces à l’Agent Datadog sans bloquer le processus principal.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles:

PREVIEWING: antoine.dussault/service-representation-ga-docs-us1