Network Performance Monitoring is now generally available! Network Monitoring is now available!

Amazon DynamoDB

Crawler Crawler

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.

Learn more about how to monitor DynamoDB performance metrics thanks to our series of posts. We detail the key performance metrics, how to collect them, and how Medium monitors DynamoDB using Datadog.

Setup

Installation

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

Metric collection

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

  2. Add these permissions to your Datadog IAM policy 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 on DynamoDB policies, review the documentation on the AWS website.

  3. Install the Datadog - AWS DynamoDB integration.

Log collection

Enable DynamoDB Logging

When you define your Trails, select a s3 bucket to write the logs in:

Send Logs to Datadog

  1. If you haven’t already, set up the Datadog log collection AWS Lambda function.
  2. Once the lambda function is installed, manually add a trigger on the S3 bucket that contains your DynamoDB logs in the AWS console, in your Lambda, click on S3 in the trigger list:Configure your trigger by choosing the S3 bucket that contains your DynamoDB logs and change the event type to Object Created (All) then click on the add button.

Once done, go in your Datadog Log section to start exploring your logs!

Data Collected

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 minute. 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 minute. 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_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.sum
(count)
The total 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_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.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.throttled_requests
(count)
Number of user requests that exceeded the preset provisioned throughput limits.
Shown as request
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.table_size
(gauge)
Approximate size of the table (updated every 6h).
Shown as byte
aws.dynamodb.item_count
(gauge)
Approximate number of items in table (updated every 6h).
Shown as item
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

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

Events

The AWS DynamoDB integration does not include any events.

Service Checks

The AWS DynamoDB integration does not include any service checks.

Troubleshooting

Need help? Contact Datadog support.