Logging is here!

AWS DynamoDB

Crawler Crawler
DynamoDB default dashboard

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 those 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:

Cloudtrail logging

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 Cloudfront logs in the AWS console, in your Lambda, click on S3 in the trigger list:
    S3 trigger configuration
    Configure your trigger by choosing the S3 bucket that contains your ELB logs and change the event type to Object Created (All) then click on the add button.
    S3 Lambda trigger configuration

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

Data Collected

Metrics

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.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.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.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.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.user_errors
(count)
Number of requests generating an HTTP 400 status code response.
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 event at this time.

Service Checks

The AWS DynamoDB integration does not include any service check at this time.

Troubleshooting

Need help? Contact Datadog Support.