プロファイラーは、Datadog トレースライブラリ内で送信されます。アプリケーションですでに APM を使用してトレースを収集している場合は、ライブラリのインストールをスキップして、プロファイラーの有効化に直接進むことができます。

要件

Datadog プロファイラーには Ruby 2.3+ が必要です (JRuby と TruffleRuby はサポートされていません)。

以下の OS、アーキテクチャに対応しています。

  • Linux (GNU libc) x86-64、aarch64
  • Alpine Linux (musl libc) x86-64、aarch64

また、pkg-config または pkgconf Linux システムユーティリティのいずれかがインストールされている必要があります。 このユーティリティは、ほとんどの Linux ディストリビューションのソフトウェアリポジトリで入手できます。例:

  • pkg-config パッケージは HomebrewDebian および Ubuntu ベースの Linux で利用可能です
  • pkgconf パッケージは Arch および Alpine ベースの Linux で利用可能です
  • pkgconf-pkg-config パッケージは Fedora および Red-Hat ベースの Linux で利用可能です

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

インストール

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

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

  2. ddtrace および google-protobuf gem を Gemfile または gems.rb ファイルに追加します。

    gem 'ddtrace', '~> 1.0'
    gem 'google-protobuf', '~> 3.0'
    
  3. bundle install で gem をインストールします。

  4. プロファイラーを有効にします。

    export DD_PROFILING_ENABLED=true
    export DD_ENV=prod
    export DD_SERVICE=my-web-app
    export DD_VERSION=1.0.3
    
    Datadog.configure do |c|
      c.profiling.enabled = true
      c.env = 'prod'
      c.service = 'my-web-app'
      c.version = '1.0.3'
    end
    

    : Rails アプリケーションの場合は、上記のコードコンフィギュレーションで config/initializers/datadog.rb ファイルを作成します。

  5. Ruby アプリケーションの起動コマンドに ddtracerb exec コマンドを追加します。

    bundle exec ddtracerb exec ruby myapp.rb
    

    Rails の例:

    bundle exec ddtracerb exec bin/rails s
    

    アプリケーションを ddtracerb exec で起動する選択肢がない (Phusion Passenger ウェブサーバーを使用している) 場合、Web アプリケーションの config.ru などのアプリケーションエントリポイントに以下を追加してプロファイラーを起動することも可能です。

    require 'datadog/profiling/preload'
    
  6. Ruby アプリケーションの起動 1〜2 分後、Datadog APM > Profiler ページにプロファイルが表示されます。

次のステップ

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

その他の参考資料