Skip to content
Last9
Book demo

AWS DynamoDB

Monitor AWS DynamoDB tables with CloudWatch Metrics Streams for latency, throttling, capacity utilization, and replication lag

Monitor your Amazon DynamoDB tables with Last9 using CloudWatch Metrics Streams. This integration provides visibility into request latency, throttling, capacity utilization, errors, and Global Tables replication lag — with no agents to deploy.

Follow the AWS CloudWatch Metrics Stream setup guide to configure the stream, then return here for DynamoDB-specific namespace and metric details.

HTTP Endpoint URL

Set the HTTP endpoint as the following.

{{ .Metrics.StreamWriteURL }}

Additional Parameters

Set the following keys and values in the Parameters section. The keys are case-sensitive.

username: {{ .Metrics.Username }}

password: {{ .Metrics.WriteToken }}

Metric Namespace

Enable AWS/DynamoDB namespace in your CloudWatch Metric Stream to send DynamoDB metrics to Last9.

For the full list of available metrics, see the AWS DynamoDB metrics and dimensions reference.


Key Metrics

Latency

MetricDescriptionDimensions
SuccessfulRequestLatencyLatency of successful requests. Monitor avg and max per operation to detect table design or capacity issues.TableName, Operation

Operations: GetItem, PutItem, UpdateItem, DeleteItem, Query, Scan, BatchGetItem, BatchWriteItem, TransactGetItems, TransactWriteItems

Throttling

Throttling is the most critical DynamoDB signal. Monitor all granularities — they expose different problems.

MetricDescriptionDimensions
ThrottledRequestsRequests where at least one read/write event was throttled.TableName, Operation
ReadThrottleEventsIndividual read events throttled. A BatchGetItem of 10 items = 10 potential events. Should always be 0.TableName, GlobalSecondaryIndexName
WriteThrottleEventsIndividual write events throttled. A PutItem on a table with 3 GSIs = 4 potential events. Should always be 0.TableName, GlobalSecondaryIndexName
ReadProvisionedThroughputThrottleEventsReads throttled due to provisioned capacity limits.TableName
WriteProvisionedThroughputThrottleEventsWrites throttled due to provisioned capacity limits.TableName
ReadKeyRangeThroughputThrottleEventsReads throttled due to hot partition limits. A table can throttle well below its provisioned capacity if traffic is concentrated on a few partition keys.TableName
WriteKeyRangeThroughputThrottleEventsWrites throttled due to hot partition limits.TableName
ReadMaxOnDemandThroughputThrottleEventsReads throttled because on-demand max throughput was exceeded.TableName
WriteMaxOnDemandThroughputThrottleEventsWrites throttled because on-demand max throughput was exceeded.TableName
ReadAccountLimitThrottleEventsReads throttled due to account-level capacity limits.
WriteAccountLimitThrottleEventsWrites throttled due to account-level capacity limits.

Capacity Utilization

MetricDescriptionDimensions
ConsumedReadCapacityUnitsRead capacity units consumed. Compare against ProvisionedReadCapacityUnits to track utilization percentage.TableName, GlobalSecondaryIndexName
ConsumedWriteCapacityUnitsWrite capacity units consumed.TableName, GlobalSecondaryIndexName
ProvisionedReadCapacityUnitsProvisioned read capacity (published at 5-minute intervals).TableName, GlobalSecondaryIndexName
ProvisionedWriteCapacityUnitsProvisioned write capacity (published at 5-minute intervals).TableName, GlobalSecondaryIndexName
OnDemandMaxReadRequestUnitsMaximum on-demand read request units configured for the table.TableName
OnDemandMaxWriteRequestUnitsMaximum on-demand write request units configured for the table.TableName
AccountProvisionedReadCapacityUtilizationPercentage of provisioned read capacity used across the account.
AccountProvisionedWriteCapacityUtilizationPercentage of provisioned write capacity used across the account.
MaxProvisionedTableReadCapacityUtilizationUtilization of the single most-read table or GSI in the account.
MaxProvisionedTableWriteCapacityUtilizationUtilization of the single most-written table or GSI in the account.

Errors

MetricDescriptionDimensions
SystemErrorsHTTP 500 internal errors from DynamoDB. Should always be 0.TableName, Operation
UserErrorsHTTP 400 errors from client-side problems (bad parameters, missing tables, auth failures). Account-level aggregate.
ConditionalCheckFailedRequestsFailed conditional writes where the condition expression evaluated to false.TableName
TransactionConflictItem-level requests rejected due to concurrent transactional conflicts on the same items.TableName

Returned Data

MetricDescriptionDimensions
ReturnedItemCountItems returned by Query, Scan, or ExecuteStatement. A low ratio versus items scanned indicates inefficient queries.TableName, Operation

TTL

MetricDescriptionDimensions
TimeToLiveDeletedItemCountItems deleted by TTL expiration in the time period.TableName

Global Tables (Replication)

MetricDescriptionDimensions
ReplicationLatencyTime between an item appearing in one region’s stream and arriving in another region’s replica.TableName, ReceivingRegion
PendingReplicationCountItem updates written to one replica but not yet replicated to another. Global Tables v2017 only.TableName, ReceivingRegion

Kinesis Data Streams

MetricDescriptionDimensions
AgeOfOldestUnreplicatedRecordAge in milliseconds of the oldest record waiting for Kinesis replication.TableName, DelegatedOperation
FailedToReplicateRecordCountRecords DynamoDB failed to replicate to the Kinesis data stream.TableName, DelegatedOperation
ThrottledPutRecordCountRecords throttled by Kinesis due to insufficient stream capacity.TableName, DelegatedOperation

SignalConditionSeverity
Read throttle eventsReadThrottleEvents > 0Warning
Write throttle eventsWriteThrottleEvents > 0Warning
Hot partition — readReadKeyRangeThroughputThrottleEvents > 0Critical
Hot partition — writeWriteKeyRangeThroughputThrottleEvents > 0Critical
System errorsSystemErrors > 0Critical
Consumed read capacity ≥ 80% provisionedConsumedReadCapacityUnits / ProvisionedReadCapacityUnits > 0.8Warning
Consumed write capacity ≥ 80% provisionedConsumedWriteCapacityUnits / ProvisionedWriteCapacityUnits > 0.8Warning
Global Tables replication lagReplicationLatency > 60000 msWarning
Transaction conflictsTransactionConflict > 0 anomalyWarning

Troubleshooting

Please get in touch with us on Discord or Email if you have any questions.