PHP プロファイラーの有効化

Datadog PHP Profiler は公開ベータ版です。Datadog では、本番環境にデプロイする前に重要でない環境でプロファイラを評価することを推奨しています。

要件

Datadog Profiler を使用するには、64 ビットの Linux で、少なくとも PHP 7.1 が必要です。

以下は、非対応です。

  • PHP ZTS ビルド
  • PHP デバッグビルド
  • Fibers (PHP 8.1+)

glibc 2.17 以降を搭載した OS が必要です。以下のバージョン以降がこの要件を満たしています。

  • CentOS 7
  • EOL (End of Life) を迎えた Debian 8
  • EOL となった Ubuntu 14.04

Datadog では、EOL ではない OS のバージョンを実行することを推奨しています。

プロファイラーは musl v1.2 に対してビルドされているため、Alpine Linux のバージョン 3.13 以降が必要です。

Continuous Profiler は、AWS Lambda などのサーバーレスプラットフォームには対応していません。

インストール

アプリケーションのプロファイリングを開始するには

  1. すでに Datadog を使用している場合は、Agent をバージョン 7.20.2 以降または 6.20.2 以降にアップグレードしてください。

  2. GitHub リリースページから datadog-setup.php スクリプトをダウンロードします。バージョン 0.69.0 は、このインストーラーを含む最初のトレーサーのリリースです。

  3. トレーサーとプロファイラーの両方をインストールするために、例えば php datadog-setup.php --enable-profiling のようにインストーラーを実行します。このスクリプトは対話型で、検出された PHP の位置のどれにインストールするかを尋ねます。スクリプトの最後には、今後の使用のために非対話型バージョンのコマンド引数を出力します。

  4. 環境変数でプロファイラーを構成します。トレーサーとは異なり、プロファイラーでは INI 設定をサポートしていません。

    PHP を呼び出す前に環境変数を設定します。例:

    export DD_PROFILING_ENABLED=true
    export DD_SERVICE=app-name
    export DD_ENV=prod
    export DD_VERSION=1.3.2
    
    php hello.php
    

    php-fpm の www.conf ファイルの env ディレクティブを使用します。次に例を示します。

    env[DD_PROFILING_ENABLED] = true
    env[DD_SERVICE] = app-name
    env[DD_ENV] = prod
    env[DD_VERSION] = 1.3.2
    

    サーバー構成、バーチャルホスト、ディレクトリ、または .htaccess ファイルから SetEnv を使用します。

    SetEnv DD_PROFILING_ENABLED true
    SetEnv DD_SERVICE app-name
    SetEnv DD_ENV prod
    SetEnv DD_VERSION 1.3.2
    

その他の環境変数については、構成ドキュメントを参照してください。

  1. リクエストを受け取ってから 1~2 分後、APM > Profiler ページにプロファイルが表示されます。

次のステップ

プロファイラーの概要ガイドでは、パフォーマンスの問題があるサンプルサービスを例に、Continuous Profiler を使用して問題を理解し修正する方法を確認します。

その他の参考資料