---
title: Amazon DynamoDB
description: Amazon DynamoDB is a fast and flexible NoSQL database service
breadcrumbs: Docs > Integrations > Amazon DynamoDB
---

# Amazon DynamoDB
Integration version1.0.0


## Overview{% #overview %}

Amazon DynamoDB is a fully managed NoSQL database cloud service, part of the AWS portfolio. Fast and easily scalable, it is meant to serve applications which require very low latency, even when dealing with large amounts of data. It supports both document and key-value store models, and has properties of both a database and a distributed hash table.

## Setup{% #setup %}

### Installation{% #installation %}

If you haven't already, set up the [Amazon Web Services integration](https://docs.datadoghq.com/integrations/amazon_web_services/).

### Metric collection{% #metric-collection %}

1. In the [AWS integration page](https://app.datadoghq.com/integrations/amazon-web-services), ensure that `DynamoDB` is enabled under the `Metric Collection` tab.

1. Add these permissions to your [Datadog IAM policy](https://docs.datadoghq.com/integrations/amazon_web_services/#installation) in order to collect Amazon DynamoDB metrics:

   - `dynamodb:ListTables`: Used to list available DynamoDB tables.
   - `dynamodb:DescribeTable`: Used to add metrics on a table size and item count.
   - `dynamodb:ListTagsOfResource`: Used to collect all tags on a DynamoDB resource.

For more information, see the [DynamoDB policies](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/authentication-and-access-control.html) on the AWS website.

1. Install the [Datadog - Amazon DynamoDB integration](https://app.datadoghq.com/integrations/amazon-dynamodb).

### Log collection{% #log-collection %}

#### Enable logging{% #enable-logging %}

In AWS CloudTrail, [create a Trail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) and select an S3 bucket to write the logs in.

#### Send logs to Datadog{% #send-logs-to-datadog %}

1. If you haven't already, set up the [Datadog Forwarder Lambda function](https://docs.datadoghq.com/logs/guide/forwarder/) in your AWS account.
1. Once set up, go to the Datadog Forwarder Lambda function. In the Function Overview section, click **Add Trigger**.
1. Select the **S3** trigger for the Trigger Configuration.
1. Select the S3 bucket that contains your Amazon DynamoDB logs.
1. Leave the event type as `All object create events`.
1. Click **Add** to add the trigger to your Lambda.

Go to the [Log Explorer](https://app.datadoghq.com/logs) to start exploring your logs.

For more information on collecting AWS Services logs, see [Send AWS Services Logs with the Datadog Lambda Function](https://docs.datadoghq.com/logs/guide/send-aws-services-logs-with-the-datadog-lambda-function/).

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **aws.dynamodb.account\_max\_reads**(count)                                   | The maximum number of read capacity units that can be used by an account.*Shown as read*                                                                                                                                           |
| **aws.dynamodb.account\_max\_table\_level\_reads**(count)                     | The maximum number of read capacity units that can be used by a table or global secondary index of an account.*Shown as read*                                                                                                      |
| **aws.dynamodb.account\_max\_table\_level\_writes**(count)                    | The maximum number of write capacity units that can be used by a table or global secondary index of an account.*Shown as write*                                                                                                    |
| **aws.dynamodb.account\_max\_writes**(count)                                  | The maximum number of write capacity units that can be used by an account.*Shown as write*                                                                                                                                         |
| **aws.dynamodb.account\_provisioned\_read\_capacity\_utilization**(gauge)     | The percentage of provisioned read capacity units utilized by an account.*Shown as percent*                                                                                                                                        |
| **aws.dynamodb.account\_provisioned\_write\_capacity\_utilization**(gauge)    | The percentage of provisioned write capacity units utilized by an account.*Shown as percent*                                                                                                                                       |
| **aws.dynamodb.conditional\_check\_failed\_requests**(count)                  | Number of failed attempts to perform conditional writes.*Shown as request*                                                                                                                                                         |
| **aws.dynamodb.consumed\_read\_capacity\_units**(gauge)                       | Average number of read capacity units consumed over one second. Can be directly compared to the number of provisioned read capacity units.*Shown as unit*                                                                          |
| **aws.dynamodb.consumed\_write\_capacity\_units**(gauge)                      | Average number of write capacity units consumed over one second. Can be directly compared to the number of provisioned write capacity units.*Shown as unit*                                                                        |
| **aws.dynamodb.max\_provisioned\_table\_read\_capacity\_utilization**(gauge)  | The percentage of provisioned read capacity units utilized by the highest provisioned read table or global secondary index of an account.*Shown as unit*                                                                           |
| **aws.dynamodb.max\_provisioned\_table\_write\_capacity\_utilization**(gauge) | The percentage of provisioned write capacity units utilized by the highest provisioned write table or global secondary index of an account.*Shown as unit*                                                                         |
| **aws.dynamodb.online\_index\_consumed\_write\_capacity**(gauge)              | Number of write capacity units consumed when adding a new global secondary index to a table.*Shown as unit*                                                                                                                        |
| **aws.dynamodb.online\_index\_percentage\_progress**(gauge)                   | Percentage of completion when a new global secondary index is being added to a table.*Shown as percent*                                                                                                                            |
| **aws.dynamodb.online\_index\_throttle\_events**(gauge)                       | Number of write throttle events that occur when adding a new global secondary index to a table.*Shown as event*                                                                                                                    |
| **aws.dynamodb.pending\_replication\_count**(count)                           | (This metric is for DynamoDB global tables.) The number of item updates that are written to one replica table but that have not yet been written to another replica in the global table.*Shown as unit*                            |
| **aws.dynamodb.provisioned\_read\_capacity\_units**(gauge)                    | Number of provisioned read capacity units for a table or a global secondary index.*Shown as unit*                                                                                                                                  |
| **aws.dynamodb.provisioned\_write\_capacity\_units**(gauge)                   | Number of provisioned write capacity units for a table or a global secondary index.*Shown as unit*                                                                                                                                 |
| **aws.dynamodb.read\_key\_range\_throughput\_throttle\_events**(count)        | The number of read requests throttled due to partition limits.*Shown as request*                                                                                                                                                   |
| **aws.dynamodb.read\_throttle\_events**(count)                                | Number of read events that exceeded the preset provisioned throughput limits in the specified time period.*Shown as read*                                                                                                          |
| **aws.dynamodb.replication\_latency**(gauge)                                  | (This metric is for DynamoDB global tables.) The elapsed time between an updated item appearing in the DynamoDB stream for one replica table and that item appearing in another replica in the global table.*Shown as millisecond* |
| **aws.dynamodb.returned\_bytes**(gauge)                                       | The number of bytes returned by GetRecords operations (Amazon DynamoDB Streams) during the specified time period.*Shown as byte*                                                                                                   |
| **aws.dynamodb.returned\_item\_count**(gauge)                                 | The average number of items returned by a scan or query operation.*Shown as item*                                                                                                                                                  |
| **aws.dynamodb.returned\_item\_count.maximum**(gauge)                         | The maximum number of items returned by a scan or query operation.*Shown as item*                                                                                                                                                  |
| **aws.dynamodb.returned\_item\_count.minimum**(gauge)                         | The minimum number of items returned by a scan or query operation.*Shown as item*                                                                                                                                                  |
| **aws.dynamodb.returned\_item\_count.samplecount**(count)                     | The number of scan or query operations.*Shown as item*                                                                                                                                                                             |
| **aws.dynamodb.returned\_item\_count.sum**(count)                             | The total number of items returned by a scan or query operation.*Shown as item*                                                                                                                                                    |
| **aws.dynamodb.returned\_records\_count**(count)                              | The number of stream records returned by GetRecords operations (Amazon DynamoDB Streams) during the specified time period.*Shown as item*                                                                                          |
| **aws.dynamodb.successful\_request\_latency**(gauge)                          | The average latency for successful requests.*Shown as millisecond*                                                                                                                                                                 |
| **aws.dynamodb.successful\_request\_latency.maximum**(gauge)                  | The maximum latency for successful requests.*Shown as millisecond*                                                                                                                                                                 |
| **aws.dynamodb.successful\_request\_latency.minimum**(gauge)                  | The minimum latency for successful requests.*Shown as millisecond*                                                                                                                                                                 |
| **aws.dynamodb.successful\_request\_latency.samplecount**(count)              | The total number of successful requests.*Shown as request*                                                                                                                                                                         |
| **aws.dynamodb.system\_errors**(count)                                        | Number of requests generating a 500 status code response.*Shown as request*                                                                                                                                                        |
| **aws.dynamodb.throttled\_requests**(count)                                   | Number of user requests that exceeded the preset provisioned throughput limits.*Shown as request*                                                                                                                                  |
| **aws.dynamodb.time\_to\_live\_deleted\_item\_count**(count)                  | The number of items deleted by Time To Live (TTL) during the specified time period.*Shown as item*                                                                                                                                 |
| **aws.dynamodb.transaction\_conflict**(count)                                 | Rejected item-level requests due to transactional conflicts between concurrent requests on the same items.*Shown as request*                                                                                                       |
| **aws.dynamodb.user\_errors**(count)                                          | The aggregate of HTTP 400 errors for DynamoDB or Amazon DynamoDB Streams requests for the current region and the current AWS account.*Shown as request*                                                                            |
| **aws.dynamodb.write\_throttle\_events**(count)                               | Number of write events that exceeded the preset provisioned throughput limits in the specified time period.*Shown as write*                                                                                                        |
| **aws.dynamodb.write\_key\_range\_throughput\_throttle\_events**(count)       | The number of write requests throttled due to partition limits.*Shown as request*                                                                                                                                                  |
| **aws.dynamodb.global\_secondary\_indexes.index\_size\_bytes**(gauge)         | Total size of the the specified secondary index*Shown as byte*                                                                                                                                                                     |
| **aws.dynamodb.global\_secondary\_indexes.item\_count**(gauge)                | The number of items in the specified secondary index*Shown as item*                                                                                                                                                                |
| **aws.dynamodb.item\_count**(gauge)                                           | Approximate number of items in table (updated every 6h).*Shown as item*                                                                                                                                                            |
| **aws.dynamodb.table\_size**(gauge)                                           | Approximate size of the table (updated every 6h).*Shown as byte*                                                                                                                                                                   |

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

### Events{% #events %}

The Amazon DynamoDB integration does not include any events.

### Service Checks{% #service-checks %}

The Amazon DynamoDB integration does not include any service checks.

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
