Amazon DynamoDB Monitoring


Amazon DynamoDB - An Overview

Amazon DynamoDB, a part of the Amazon Web Services portfolio, is a non-relational database that delivers reliable performance at any scale. It's a fully managed, proprietary NoSQL database service that supports key-value and document data structures, offers built-in security, backup and restore, and in-memory caching.


Monitoring Amazon DynamoDB - What We do

With Applications Manager, you can auto-discover your DynamoDB tables, gather data for performance metrics like latency, request throughput and throttling errors. Optimize resource usage and improve application performance of your Amazon Dynamodb database.

  • Analyze database performance - Track Request Latency, get Successful request latency reports for various read/write operations like GET, PUT, Scan, etc. Gather key usage stats like the count of returned records and bytes from GetRecords operations (Amazon DynamoDB Streams) during specified periods.
  • Optimize Resource usage - Make informed decisions about setting up DynamoDB Provisioned Throughput capacity. Monitor the consumed read/write capacity units to prevent throttling errors to and be up-to-date on request rates, application throughput pattern and table activity.

  • Troubleshoot request throttling - Monitor Throttled requests and Throttled read/write events. Reserve capacity so the provisioned throughput does not get exhausted and you can handle sudden increases in traffic, without returning throttling errors.

  • Handle DB errors and exceptions - Identify performance anomalies by getting a dashboard view of the break-down of System Errors and User Errors.

  • Gain insight into DB operations performed - Track the number of conditional write attempts to a table that failed. Monitor the number of items returned by database scan and query operations.

  • Get instant notifications of performance issues and bottlenecks. Take quick remedial action before your end-users experience issues.


Adding a new Amazon DynamoDB monitor

Mode of Monitoring: CloudWatch & Amazon API using SDK.

Prerequisites for setting up Amazon DynamoDB monitoring: Click here

Creating a new monitor:

To create a new Amazon monitor, follow the steps given below:

  1. Click on New Monitor link.
  2. Select Amazon under Cloud Apps category.

  3. Specify the Display Name of the Amazon server

  4. Enter the Amazon Access Key Id of the AWS for accessing the AWS through the API. The access key has 20 alpha-numeric characters.

  5. Enter the Secret Access Key of the AWS. The secret key should be 40 alpha-numeric characters long.

  6. Choose the Account Type. The default Account Type when adding a new Amazon monitor is AWS Global. Choose AWS China as the Account Type to monitor services in the AWS China regions.

  7. Specify the Polling Interval in minutes. (Default polling interval is set to 60 minutes.)

  8. If you are adding a new monitor from an Admin Server, select a Managed Server.

  9. Choose the Monitor Group with which you want to associate the Amazon monitor to, from the combo box (optional). You can choose multiple groups to associate your monitor.

  10. Click Add Monitor(s). This discovers the Amazon server from the network and starts monitoring it.

Enabling Data collection for DynamoDB Account metrics

Data collection for DynamoDB Account metrics is disabled by default.

  • Go to the Admin tab.
  • Click Performance Polling under Discovery and Data Collection.
  • Under Performance Data Collection, Click on the Optimize Data Collection tab.
  • Select DynamoDB from the Monitor Type drop-down menu.
  • Select the required metrics from the Metric Name drop-down menu.
  • Enable data collection at every poll or configure custom time intervals. (24 hours is the preferred time interval for AWS DynamoDB Account metrics as to reduce the API count).
  • Select how you wish to configure the mertics:
    • By Monitor Type - This will be the default polling status, for any new monitor added. All the monitors of this type, will have the default polling status, until any exclusive customization is done for the monitor. You can choose between three different polling settings: Never collect data, Collect data in every polling and Collect data at customized time interval. Changing the polling status of 'Monitor Type', will also change any configuration done for its 'Monitors'. You can use the options Collect data in every polling or Collect data at customized time interval to change the polling interval.
    • By Monitors - Use this option to change the polling status of any particular monitor(s).
  • Click Save.

Use the AddMonitor API to add a DynamoDB Monitor

Syntax of Rest API for adding the monitor:

http://[Host]:[Port]/AppManager/xml/AddMonitor?apikey=[APIKEY]&type=[TYPE]&accessKey=[ACCESSKEY]&SecretAccessKey=[SECRETACCESSKEY]&displayname=[DISPLAYNAME]&AccountType=[account type]

Request Parameters:

The parameters involved in the API request are described below. Also, refer the list of common Request Parameters.

FieldDescription
type The type of the monitor you want to add. Value should be Amazon.
accesskey The Amazon Access Key Id of the AWS for accessing the AWS.
secretaccesskey The Secret Access Key of the AWS. The secret key should be 40 alpha-numeric characters long.
displayname The display name of the Amazon server monitor.
AccountType

The account type. Possible Values are:

  • AwsGlobal
  • AwsChina
AmazonServices

The Amazon Services that you want to monitor. Possible values are:

  • EC2 (for Elastic Compute Cloud)
  • RDS (for Relational Database Services)
  • S3 (for S3 Buckets)
  • SNS (for Simple Notification Services)
  • DYNAMODB,EC2,RDS,S3,SNS (for multiple services)
  • ALB (for Application Load Balancer)
  • NLB (for Network Load Balancer)

Sample Request:

http://localhost:9595/AppManager/xml/AddMonitor?apikey=15212eb94d705a3b0993e30709818c4e&type=Amazon&AmazonServices=DYNAMODB&accessKey=ACCESSKEYACCESSKEYAC&SecretAccessKey=SECRETACCESSKEYSECRETACCESSKEYSECRETACCE&displayname=awsrestapi&AccountType=AwsGlobal

Monitored Parameters

Go to the Monitors Category View by clicking the Monitors tab. Click on DynamoDB in the Amazon Instances under the Cloud Apps Table. Displayed is the DynamoDB bulk configuration view distributed into three tabs:

  • Availability tab gives the Availability history for the past 24 hours or 30 days.
  • Performance tab gives the Health Status and events for the past 24 hours or 30 days.
  • List view enables you to perform bulk admin configurations.
Click on the monitor name to see all the Amazon DynamoDB Database metrics listed under the following tabs:

Overview

MetricDescription
READ CAPACITY UNITS
Provisioned Read The number of provisioned read capacity units for a table or a global secondary index between the poll interval time.
Provisioned Read - Average The average provisioned read capacity.
Provisioned Read - Minimum The lowest setting for provisioned read capacity.
Provisioned Read - Maximum The highest setting for provisioned read capacity.
Consumed Read The number of read capacity units consumed over the poll interval time. This will help you track how much of your provisioned throughput is used.
Consumed Read - Average The maximum number of read capacity units consumed by any individual request to the table or index.
Consumed Read - Minimum The minimum number of read capacity units consumed by any individual request to the table or index.
Consumed Read - Maximum The average per-request read capacity consumed.
WRITE CAPACITY UNITS
Provisioned Write The number of provisioned write capacity units for a table.
Provisioned Write - Average The average provisioned read capacity.
Provisioned Write - Minimum The lowest setting for provisioned read capacity.
Provisioned Write - Maximum The highest setting for provisioned read capacity.
Consumed Write The number of write capacity units consumed for the global secondary index between the poll interval time.
Consumed Write - Average The average per-request write capacity consumed.
Consumed Write - Minimum The minimum number of write capacity units consumed by any individual request to the table or index.
Consumed Write - Maximum The maximum number of write capacity units consumed by any individual request to the table or index.
READ THROTTLED REQUESTS
Throttled Read Requests If your read or write requests exceed the throughput settings for a table and tries to consume more than the provisioned capacity units or exceeds for an index, DynamoDB can throttle that request. Based on the type of operation (Get, Scan, Query, BatchGet) performed on the table, throttled request data can be populated.
Get Throttled Requests The Get operation returns a set of attributes for the request with the given primary key.
Scan Throttled Requests The Scan operation returns one or more requests and request attributes by accessing every request in a table or a secondary index.
Query Throttled Requests The Query operation finds requests based on primary key values. You can query any table or secondary index that has a composite primary key (a partition key and a sort key).
BatchGet Throttled Requests The BatchGet operation returns the attributes of one or more requests from one or more tables.
WRITE THROTTLED REQUESTS
Put Throttled Requests The Put operation creates a new request, or replaces an old request with a new one.
Update Throttled Requests The Update operation edits an existing request's attributes, or adds a new request to the table if it does not already exist. You can put, delete, or add attribute values.
Delete Throttled Requests The Delete operation deletes a single request in a table by primary key.
BatchWrite Throttled Requests The BatchWrite operation puts or deletes multiple requests in one or more tables.
READ THROTTLED EVENTS
Table Read Throttled Events The number of throttled write events during the time period. Throttled events occurs when any particular event or any single event in any batch operation fails.
WRITE THROTTLED EVENTS
Table Write Throttled Events The number of throttled read events during the time period. Throttled events occurs when any particular event or any single event in any batch operation fails.

Read Operations

MetricDescription
READ LATENCY
Get Latency - Average Average "Successful request latency" reports for Get operations during the specified time period. Unit - milliseconds.
BatchGet Latency - Average Average "Successful request latency" reports for BatchGet operations during the specified time period. Unit - milliseconds.
Scan Latency - Average Average "Successful request latency" reports for Scan operations during the specified time period. Unit - milliseconds.
Query Latency - Average Average "Successful request latency" reports for Query operations during the specified time period. Unit - milliseconds.
GET LATENCY
Get Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for Get operations during the specified time period. (Minimum, Maximum or Average).
BATCHGET LATENCY
BatchGet Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for BatchGet operations during the specified time period. (Minimum, Maximum or Average).
SCAN LATENCY
Scan Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for Scan operations during the specified time period. (Minimum, Maximum or Average).
QUERY LATENCY
Query Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for Query operations during the specified time period. (Minimum, Maximum or Average).
RETURNED ITEM COUNT
Scan Returned Item Count The number of items returned by Scan operations during the specified time period.
Query Returned Item Count The number of items returned by Query operations during the specified time period.

Write Operations

MetricDescription
WRITE LATENCY
Put Latency - Average Average "Successful request latency" reports for Put operations during the specified time period. Unit - milliseconds.
BatchWrite Latency - Average Average "Successful request latency" reports for BatchWrite operations during the specified time period. Unit - milliseconds.
Update Latency - Average Average "Successful request latency" reports for Update operations during the specified time period. Unit - milliseconds.
Delete Latency - Average Average "Successful request latency" reports for Delete operations during the specified time period. Unit - milliseconds.
PUT LATENCY
Put Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for Put operations during the specified time period. (Minimum, Maximum or Average).
BATCHWRITE LATENCY
BatchWrite Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for BatchWrite operations during the specified time period. (Minimum, Maximum or Average).
UPDATE LATENCY
Update Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for Update operations during the specified time period. (Minimum, Maximum or Average).
DETELE LATENCY
Delete Latency - (Average/ Minimum/ Maximum) The elapsed time for successful requests to DynamoDB for Delete operations during the specified time period. (Minimum, Maximum or Average).

Table Errors

MetricDescription
USER ERRORS
User Errors Requests to DynamoDB or Amazon DynamoDB Streams that generate an HTTP 400 status code during the specified time period.
SYSTEM ERRORS
System Errors Requests to DynamoDB or Amazon DynamoDB Streams that generate an HTTP 500 status code during the specified time period.
CONDITIONAL CHECK FAILED REQUESTS
Conditional Check Failed Requests The number of failed attempts to perform conditional writes.
TIME TO LIVE DELETED ITEM COUNT
Time To Live Deleted Item Count The number of items deleted by Time To Live (TTL) during the specified time period.

Global Secondary Index

MetricDescription
GSI READ CAPACITY UNITS
GSI Provisioned read CU The provisioned read CU for the global secondary index between the poll interval time.
GSI WRITE CAPACITY UNITS
GSI Provisioned Write CU The provisioned write CU for the global secondary index between the poll interval time.
GSI CAPACITY UNITS
GSI Name  
Provisioned Read  
Consumed Read Consumed read CU for the global secondary index between the poll interval time.
Provisioned Write  
Consumed Write The consumed write CU for the global secondary index between the poll interval time.
GSI READ THROTTLED EVENTS
Read Throttled Events  
GSI WRITE THROTTLED EVENTS
Write Throttled Events  
GSI THROTTLED EVENTS
GSI Name  
GSI Read Throttled Events The requests to DynamoDB that exceed the provisioned read CU for a GSI.
GSI Write Throttled Events The requests to DynamoDB that exceed the provisioned write CU for a GSI.
GSI INDEX CREATION
GSI Name  
Online Index Consumed Write Capacity The number of write capacity units consumed when adding a new global secondary index to a table.
Online Index Percentage Progress The percentage of completion when a new global secondary index is being added to a table.
Online Index Throttle Events The number of write throttle events that occur when adding a new global secondary index to a table
CONFIGURATION
Index Name The name of the Global Secondary Index.
Status The status of the index.
Item Count The total count of items in the index.
Size (MB) The Storage Size in MB.
Partition key The hash attribute of an index.
Sort key The range attribute of an Index.
Projection Type The set of attributes that are projected into the index.

Streams

MetricDescription
REQUEST LATENCY
GetRecords Request Latency Successful request latency for GetRecords operations during the specified time period. Unit - Milliseconds.
RETURNED BYTES
Average Returned Bytes The number of bytes returned by GetRecords operations during the specified time period. Unit - Megabytes.
Total Returned Bytes The average of bytes returned per minute. Unit - [MB/Min]
RETURNED RECORDS COUNT
Returned Records Count The number of stream records returned by GetRecords operations during the specified time period.
STREAM CONFIGURATION
Stream Label A timestamp when the stream is enabled, in ISO 8601 format.
Stream Status Specifies if DynamoDB Streams is enabled (true) or disabled (false) on the table.
Stream View Type Specifies what information is written to the stream for this table.
Stream ARN The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.

Configuration

MetricDescription
CONFIGURATION
Table Name The DynamoDB Table Name.
Region The ID of AWS region where the current DynamoDB table resides.
Region Name The name of AWS region where the current DynamoDB table resides.
Total Provisioned Read CU The total provisioned read capacity units (Both table and all GSI's provisioned).
Total Provisioned Write CU The total provisioned write capacity units (Both table and all GSI's provisioned).
Storage Size The total size of the specified table, in GB.
Item Count The number of items in the specified table.
Table Status The current state of the table.
Partition key The partition key of an item is also known as its hash attribute.
Sort key The sort key of an item is also known as its range attribute.
Creation date The date and time when the table was created.
Amazon Resource Name (ARN) The Amazon Resource Name (ARN) that uniquely identifies the table.
Last Decrease time The date and time of the last provisioned throughput increase for this table.
Last Increase time The date and time of the last provisioned throughput decrease for this table.
Number Of Decreases Today The number of provisioned throughput decreases for this table during this UTC calendar day.
Number of Global Secondary Index The total number of Global Secondary Indexes
Stream The Stream status [Enabled/Disabled].