Amazon Lambda

Crawler Crawler
This page is limited to documentation for ingesting AWS Lambda metrics from Amazon CloudWatch. See the Datadog Serverless documentation for collecting telemetry directly from your Lambda functions in real time.

Overview

Amazon Lambda is a compute service that runs code in response to events and automatically manages the compute resources required by that code.

Enable this integration to begin collecting CloudWatch metrics. This page also describes how to set up custom metrics, logging, and tracing for your Lambda functions.

Setup

Installation

If you haven’t already, set up the Amazon Web Services integration first.

Metric collection

AWS Lambda metrics

  1. In the AWS integration tile, ensure that Lambda is checked under metric collection.

  2. Add the following permissions to your Datadog IAM policy to collect Amazon Lambda metrics. For more information, see the Lambda policies on the AWS website.

    AWS PermissionDescription
    lambda:List*List Lambda functions, metadata, and tags.
    tag:GetResourcesGet custom tags applied to Lambda functions.
    cloudtrail:LookupEventsUse CloudTrail History to detect changes to lambda functions
  3. Install the Datadog - AWS Lambda integration.

Once this is completed, view all of your Lambda Functions in the Datadog Serverless view. This page brings together metrics, traces, and logs from your AWS Lambda functions running serverless applications into one view. Detailed documentation on this feature can be found in the Datadog Serverless documentation.

Data Collected

Metrics

aws.lambda.duration
(gauge)
Measures the average elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.maximum
(gauge)
Measures the maximum elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.minimum
(gauge)
Measures the minimum elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.sum
(gauge)
Measures the total execution time of the lambda function executing.
Shown as millisecond
aws.lambda.duration.p50
(gauge)
Measures the p50 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p80
(gauge)
Measures the p80 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p95
(gauge)
Measures the p95 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p99
(gauge)
Measures the p99 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p99.9
(gauge)
Measures the p99.9 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.timeout
(gauge)
Measures the amount of allowed execution time for the function before the Lambda runtime stops it.
Shown as second
aws.lambda.memorysize
(gauge)
Measures the amount of allocated memory available to the function during execution.
Shown as mebibyte
aws.lambda.errors
(count)
Measures the number of invocations that failed due to errors in the function.
Shown as error
aws.lambda.invocations
(count)
Measures the number of times a function is invoked in response to an event or invocation API call.
Shown as invocation
aws.lambda.throttles
(count)
Measures the number of Lambda function invocation attempts that were throttled due to invocation rates exceeding the customer's concurrent limits (error code 429). Failed invocations may trigger a retry attempt that succeeds.
Shown as throttle
aws.lambda.iterator_age
(gauge)
Measures the age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.minimum
(gauge)
Measures the minimum age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.maximum
(gauge)
Measures the maximum age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.sum
(gauge)
Measures the sum of the ages of the last record for each batch of records processed
Shown as millisecond
aws.lambda.dead_letter_errors
(count)
Measures the sum of times Lambda is unable to write the failed event payload to your configured Dead Letter Queues.
Shown as error
aws.lambda.concurrent_executions
(gauge)
Measures the average of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.minimum
(gauge)
Measures the minimum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.maximum
(gauge)
Measures the maximum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.sum
(gauge)
Measures the sum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global
(gauge)
Measures the average of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.minimum
(gauge)
Measures the minimum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.maximum
(gauge)
Measures the maximum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.sum
(gauge)
Measures the sum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.unreserved_concurrent_executions
(gauge)
Measures the sum of the concurrency of the functions that don't have a custom concurrency limit specified.
Shown as execution
aws.lambda.post_runtime_extensions_duration
(gauge)
Measures the average amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.maximum
(gauge)
Measures the maximum amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.minimum
(gauge)
Measures the minimum amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.sum
(gauge)
Measures the cumulative amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.p50
(gauge)
Measures the p50 elapsed wall time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.p99
(gauge)
Measures the p90 elapsed wall time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.provisioned_concurrent_executions
(gauge)
Measures the average number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrent_executions.minimum
(gauge)
Measures the minimum number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrent_executions.maximum
(gauge)
Measures the maximum number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrency_invocations
(count)
Measures the number of invocations that are run on provisioned concurrency
Shown as invocation
aws.lambda.provisioned_concurrency_spillover_invocations
(count)
Measures the number of invocations that are run on non-provisioned concurrency when all provisioned concurrency is in use
Shown as invocation
aws.lambda.provisioned_concurrency_utilization
(gauge)
Measures the average fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.provisioned_concurrency_utilization.minimum
(gauge)
Measures the minimum fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.provisioned_concurrency_utilization.maximum
(gauge)
Measures the maximum fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.signature_validation_errors
(count)
Measures the number of times a function is successfully deployed but fails a signature check
Shown as error
aws.lambda.url_request_count
(count)
The number of requests hit this Function URL.
Shown as request
aws.lambda.url_4xx_error
(count)
The number of requests that returned a 4xx HTTP status code.
Shown as error
aws.lambda.url_5xx_error
(count)
The number of requests that returned a 5xx HTTP status code.
Shown as error
aws.lambda.url_latency
(gauge)
The time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.minimum
(gauge)
The minimum time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.maximum
(gauge)
The maximum time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.p50
(gauge)
The 50th percentile time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.p99
(gauge)
The 99th percentile time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.enhanced.invocations
(count)
Measures the number of times a function is invoked in response to an event or invocation API call.
Shown as invocation
aws.lambda.enhanced.errors
(count)
Measures the number of invocations that failed due to errors in the function.
Shown as error
aws.lambda.enhanced.max_memory_used
(gauge)
Measures the maximum amount of memory (mb) used by the function.
Shown as mebibyte
aws.lambda.enhanced.duration
(gauge)
Measures the elapsed seconds from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as second
aws.lambda.enhanced.billed_duration
(gauge)
Measures the billed amount of time the function ran for (100ms increments).
Shown as second
aws.lambda.enhanced.init_duration
(gauge)
Measures the initialization time (second) of a function during a cold start.
Shown as second
aws.lambda.enhanced.estimated_cost
(gauge)
Measures the total estimated cost of the function invocation (US dollars).
Shown as dollar
aws.lambda.enhanced.timeouts
(count)
Measures the number of times a function times out.
Shown as timeout
aws.lambda.enhanced.out_of_memory
(count)
Measures the number of times a function runs out of memory.
Shown as error

Each of the metrics retrieved from AWS is assigned the same tags that appear in the AWS console, including but not limited to function name, security-groups, and more.

Events

The AWS Lambda integration collects Lambda deployment events from AWS CloudTrail if Datadog serverless deployment tracking is enabled.

Service Checks

The AWS Lambda integration does not include any service checks.

Real-time enhanced Lambda metrics

See the Serverless documentation to learn more.

Custom metrics

See the Serverless documentation to learn more.

Log collection

See the Serverless documentation to learn more.

Trace collection

See the Serverless documentation to learn more.

Lambda@Edge

Datadog automatically adds tags at_edge, edge_master_name, and edge_master_arn tags on your Lambda metrics to get an aggregated view of your Lambda function metrics and logs as they run in Edge locations.

Distributed tracing is not supported for Lambda@Edge functions.

Troubleshooting

Need help? Contact Datadog support.

Further Reading