After you have installed the AWS integration, follow the steps below to instrument your application to send metrics, logs, and traces to Datadog.
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.
Configure the layers for your Lambda function using the ARN in the following format:
RUNTIME options are
Ruby2-7. For more information, see the latest release.
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.
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.
After you have configured your function following the steps above, you should be able to view metrics, logs and traces on the Serverless page. If you need to submit a custom metric, refer to the sample code below:
require 'ddtrace' require 'datadog/lambda' Datadog::Lambda.configure_apm do |c| # Enable the instrumentation end def handler(event:, context:) # Apply the Datadog wrapper Datadog::Lambda::wrap(event, context) do some_operation() # Submit a custom metric Datadog::Lambda.metric( 'coffee_house.order_value', # metric name 12.45, # metric value "product":"latte", # tag "order":"online" # another tag ) end end # Instrument the function def some_operation() Datadog.tracer.trace('some_operation') do |span| # Do something here end end