Enabling the Ruby Profiler

このページは日本語には対応しておりません。随時翻訳に取り組んでいます。翻訳に関してご質問やご意見ございましたら、お気軽にご連絡ください。

The profiler is shipped within Datadog tracing libraries. If you are already using APM to collect traces for your application, you can skip installing the library and go directly to enabling the profiler.

Requirements

The Datadog Profiler requires MRI Ruby 2.1+.

The following operating systems and architectures are supported:

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

Continuous Profiler is not supported on serverless platforms, such as AWS Lambda.

Installation

To begin profiling applications:

  1. If you are already using Datadog, upgrade your agent to version 7.20.2+ or 6.20.2+.

  2. Add the ddtrace and google-protobuf gems to your Gemfile or gems.rb file:

    gem 'ddtrace', '~> 1.0'
    gem 'google-protobuf', '~> 3.0'
    
  3. Install the gems with bundle install.

  4. Enable the profiler:

    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
    

    Note: For Rails applications, create a config/initializers/datadog.rb file with the code configuration above.

  5. Add the ddtracerb exec command to your Ruby application start command:

    bundle exec ddtracerb exec ruby myapp.rb
    

    Rails example:

    bundle exec ddtracerb exec bin/rails s
    

    Note

    If starting the application via ddtracerb exec is not an option (eg. 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. A minute or two after starting your Ruby application, your profiles will show up on the Datadog APM > Profiler page.

Not sure what to do next?

The Getting Started with Profiler guide takes a sample service with a performance problem and shows you how to use Continuous Profiler to understand and fix the problem.

Further Reading