Instrumenting Ruby Applications
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Instrumenting Ruby Applications

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

After you have installed the AWS integration and the Datadog Forwarder, choose one of the following methods to instrument your application to send metrics, logs, and traces to Datadog.


Install the Datadog Lambda Library

The Datadog Lambda Library can be imported as a layer or a gem.

The minor version of the datadog-lambda gem always matches the layer version. E.g., datadog-lambda v0.5.0 matches the content of layer version 5.

Using the Layer

Configure the layers for your Lambda function using the ARN in the following format.

# For regular regions

# For us-gov regions

The available RUNTIME options are Ruby2-5 and Ruby2-7. For VERSION, see the latest release. For example:


Using the Gem

Add the following line to your Gemfile. See the latest release.

gem 'datadog-lambda'
gem 'ddtrace'

Keep in mind that ddtrace uses native extensions, which must be compiled for Amazon Linux before being packaged and uploaded to Lambda. For this reason, Datadog recommends using the layer.

Subscribe the Datadog Forwarder to the Log Groups

You need to subscribe the Datadog Forwarder Lambda function to each of your function’s log groups to send metrics, traces and logs to Datadog.

  1. Install the Datadog Forwarder if you haven’t.
  2. Ensure the option DdFetchLambdaTags is enabled.
  3. Subscribe the Datadog Forwarder to your function’s log groups.

Explore Datadog Serverless Monitoring

After you have configured your function following the steps above, you should be able to view metrics, logs and traces on the Serverless Homepage.

If you would like to submit a custom metric or manually instrument a function, see the sample code below:

require 'ddtrace'
require 'datadog/lambda'

Datadog::Lambda.configure_apm do |c|
# Enable the instrumentation

def handler(event:, context:)
    # Apply the Datadog wrapper
    Datadog::Lambda::wrap(event, context) do
        # Submit a custom metric
            'coffee_house.order_value', # metric name
            12.45, # metric value
            "product":"latte", # tag
            "order":"online" # another tag

# Instrument the function
def some_operation()
    Datadog.tracer.trace('some_operation') do |span|
        # Do something here