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

要件

すべての言語におけるランタイムとトレーサーの最小バージョンと推奨バージョンの要約については、サポートされている言語とトレーサーのバージョンをお読みください。

The Datadog Profiler requires Ruby 2.5+. JRuby and TruffleRuby are not supported.

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

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

You also need either the pkg-config or the pkgconf system utility installed. This utility is available on the software repositories of most Linux distributions. For example:

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

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

Single Step Instrumentation is not supported for Linux hosts, VMs, or Docker. Single Step Instrumentation is supported for Kubernetes (using the Datadog Helm chart), but you need to manually set the DD_PROFILING_ENABLED=true environment variable to enable profiling.

インストール

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

  1. Ensure Datadog Agent v6+ is installed and running. Datadog recommends using Datadog Agent v7+.

  2. Add the datadog gem to your Gemfile or gems.rb file:

    gem 'datadog', '~> 2.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. Add the ddprofrb exec command to your Ruby application start command:

    bundle exec ddprofrb exec ruby myapp.rb
    

    Rails の例:

    bundle exec ddprofrb exec bin/rails s
    

    If you’re running a version of ddtrace older than 1.21.0, replace ddprofrb exec with ddtracerb exec.

    If starting the application with ddprofrb exec is not an option (for example, when using the Phusion Passenger web server), you can alternatively start the profiler by adding the following to your application entry point (such as config.ru, for a web application):

    require 'datadog/profiling/preload'
    
  6. Optional: Set up Source Code Integration to connect your profiling data with your Git repositories.

  7. A minute or two after starting your Ruby application, your profiles will show up on the Datadog APM > Profiler page.

次のステップ

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

その他の参考資料