PHP 互換性要件

PHP APM のランタイムサポートポリシー

PHP Datadog Trace ライブラリはオープンソースです。詳細については、GitHub リポジトリをご覧ください。

Datadog APM for PHP は、ホスト OS や PHP ランタイム、特定の PHP ライブラリ、 Datadog Agent や API の特定のバージョンで定義される依存関係に基づいて構築されています。 これらのバージョンがメンテナによってサポートされなくなった場合、 Datadog APM for PHP はこれらのサポートにも制限をかけます。

サポートレベル

レベルサポート内容
非対応実装していません。特別なご要望はカスタマーサポートチームにお問い合わせください
ベータ版初期実装です。まだすべての機能が含まれていない可能性があります。新機能のサポート、バグやセキュリティの修正は、ベストエフォートで提供されます。
一般提供 (GA)全機能の完全実装。新機能、バグ、セキュリティフィックスを完全サポート。
メンテナンス既存機能の完全実装。新機能は受けません。バグフィックス、セキュリティフィックスのみの対応となります。
レガシーレガシーな実装。機能は限定されますが、メンテナンスは提供されません。[特別なご要望がある場合は、サポートチームにお問い合わせください。
サポート終了 (EOL)サポートなし。このバージョンはまだ使用可能ですが、バグ修正は提供されません。

PHP APM は以下のバージョンの PHP に対応しています。

注: PHP 5.x はバージョン 0.75.0 まで完全にサポートされています。現在はメンテナンスモードに移行しており、2023 年 12 月 31 日までセキュリティや重要なバグの修正でサポートされています。
もし、アプリケーションで PHP 5.x バージョンを使用していて、ビジネスニーズにとって重要な機能要求がある場合は、Datadog サポートにご連絡ください。
PHP は公式にサポートされているバージョン、特に 7.4、8.0、8.1 を使用することが推奨されています。
PHP バージョンサポートレベルパッケージバージョン
8.1.x一般提供> 0.66.0+
8.0.x一般提供> 0.52.0+
7.4.x一般提供すべて
7.3.x一般提供すべて
7.2.x一般提供すべて
7.1.x一般提供すべて
7.0.x一般提供すべて
5.6.xメンテナンス (2023 年 12 月 31 日まで)すべて
5.5.xメンテナンス (2023 年 12 月 31 日まで)すべて
5.4.xメンテナンス (2023 年 12 月 31 日まで)すべて

PHP APM は以下の SAPI に対応しています。

SAPIサポートの種類
apache2handler完全対応
cli完全対応
fpm-fcgi完全対応
cgi-fcgi完全対応

対応プロセッサアーキテクチャー

PHP APM は以下のアーキテクチャに対応しています。

プロセッサアーキテクチャーサポートレベルパッケージバージョン
Linux GNU amd64 (x86-64-linux-gnu)GAすべて
Linux MUSL amd64 (x86-64-linux-musl)GAすべて
Linux GNU arm64 (aarch64-linux-gnu)GA> 0.78.0
Linux MUSL arm64 (aarch64-linux-musl)GA> 0.78.0

インテグレーション

Web フレームワークの互換性

Datadog はデフォルトで、すべての PHP Web フレームワークをサポートし、フレームワークレベルのインスツルメンテーション、または一般的な Web トレースを行うことができます。

フレームワークレベルのインスツルメンテーションには、内部メソッドのトレースとフレームワーク固有のタグ付けが含まれます。

一般的な Web トレースには、データベースや HTTP クライアントなどのサポートされたライブラリのスパンに加えて、コールから発生したレイテンシーやエラーを追跡するための web.request スパンが含まれています。

次の表は、Datadog が正常にトレースするフレームワークとバージョンの一部を示しています。

ウェブフレームワーク:

モジュールバージョンサポートの種類インスツルメンテーションレベル
CakePHP2.xサポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
CodeIgniter2.xPHP 7+フレームワークレベルのインスツルメンテーション
CodeIgniter3.xPHP 7+一般的な Web トレース
Laravel4.2、5.x、6.xサポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Laravel 88.x (トレーサー 0.52.0+)サポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Lumen5.2+サポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Symfony 33.3、3.4サポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Symfony 44.xサポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Symfony 55.x (トレーサー 0.50.0+)サポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
WordPress4.x、5.xPHP 7+フレームワークレベルのインスツルメンテーション
Zend Framework1.12サポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Zend Framework2.xサポートされているすべての PHP バージョン一般的な Web トレース
Yii1.1、2.0サポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Drupalサポートされているすべての PHP バージョン一般的な Web トレース
Magento1、2サポートされているすべての PHP バージョン一般的な Web トレース
Phalcon1.3、3.4サポートされているすべての PHP バージョン一般的な Web トレース
Slim2.x、3.x、4.xサポートされているすべての PHP バージョンフレームワークレベルのインスツルメンテーション
Neos Flow1.1サポートされているすべての PHP バージョン一般的な Web トレース
FuelPHP1.1PHP 7+一般的な Web トレース

このリストにウェブフレームワークがない場合でも、トレーサーの最新リリースではそのまま使用できます。

Datadog では、PHP ウェブフレームワークのより詳細なトレースのためのサポートを継続的に追加しています。スパンメタデータおよびフレームワーク内部に対するさらなるサポートをご希望の場合は、サポートチームまでお気軽にお問い合わせください。

CLI ライブラリの互換性

デフォルトで、CLI SAPI からのトレースは無効になっています。PHP CLI スクリプトのトレースを有効にするには、DD_TRACE_CLI_ENABLED=true とします。

モジュールバージョンサポートの種類
CakePHP Console2.x完全対応
Laravel Artisan5.x完全対応

追加 CLI ライブラリに関するサポートをご希望の場合は、サポートチームまでお気軽にお問い合わせください。

データストアの互換性

モジュールバージョンサポートの種類
Amazon RDS (PDO または MySQLi 使用)(対応する PHP)完全対応
Elasticsearch1.x完全対応
EloquentLaravel 対応バージョン完全対応
Memcached(対応する PHP)完全対応
MongoDB - mongo 拡張機能を使用1.4.x完全対応
MySQLi(対応する PHP)完全対応
PDO (MySQL、PostgreSQL、MariaDB)(対応する PHP)完全対応
PhpRedis3、4、5PHP 7、8
Predis1.1完全対応

追加データストアに関するサポートをご希望の場合は、サポートチームまでお気軽にお問い合わせください。

ライブラリの互換性

モジュールバージョンサポートの種類
Curl(対応する PHP)完全対応
Guzzle5.x完全対応
Guzzle6.x完全対応

ライブラリに関するサポートをご希望の場合は、サポートチームまでお気軽にお問い合わせください。

PHP 5 の深いコールスタック

コールスタックは PHP 5 のみに限定されます。詳細は深いコールスタックのトラブルシューティングページを参照してください。

ジェネレータ

ジェネレータのインスツルメントは、PHP 5 および PHP 7 ではサポートされていません。

PCNTL

Datadog は、pcntl を使ってフォークされたプロセスのトレースをサポートしません。pcntl_fork のコールが検出されると、フォークされたプロセスのトレースは無効化されます。メインプロセスはまだトレースすることができます。

アプリケーションが pcntl_unshare(CLONE_NEWUSER); を実行し、トレーサーがインストールされている場合、アプリケーションは致命的にクラッシュします。これは、CLONE_NEWUSER を持つ unshare がプロセスをスレッド化しないことを要求し、PHP トレーサーが別スレッドを使用してメインプロセスをブロックせずに Datadog Agent にトレースを送信するために起こります。

その他の参考資料

お役に立つドキュメント、リンクや記事: