Fix DynamoDB throttle alarm metric: use Read/WriteThrottleEvents

ThrottledRequests and SystemErrors are not emitted at the TableName-only
dimension (only TableName+Operation), so these table-level alarms would sit
permanently in INSUFFICIENT_DATA and never fire. Replace with
ReadThrottleEvents and WriteThrottleEvents, which AWS/DynamoDB emits at the
TableName dimension.
This commit is contained in:
Adam Moussa 2026-06-17 14:22:04 -04:00
parent efa31783e2
commit 026f8580ef

View file

@ -174,18 +174,18 @@ Resources:
- !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:site-alerts
# DynamoDB alarms — front-sla-alerts table
# ThrottledRequests and SystemErrors are documented at dimensions
# (TableName, Operation); CloudWatch also publishes the TableName-only
# aggregate, which is what we alarm on here. Neither has emitted yet
# (no throttle/5xx events to date), so the dimension was confirmed against
# the AWS DynamoDB metrics reference rather than live data.
AlertsTableThrottleAlarm:
# ReadThrottleEvents / WriteThrottleEvents are emitted at the TableName
# dimension, so these alarms transition normally. (ThrottledRequests and
# SystemErrors are only emitted at TableName+Operation granularity, never
# TableName-only, so alarms on them sit permanently in INSUFFICIENT_DATA
# and never fire — these are the correct table-level throttle signals.)
AlertsTableReadThrottleAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: front-sla-alerts-throttled-requests
AlarmDescription: front-sla-alerts DynamoDB table is throttling requests
AlarmName: front-sla-alerts-read-throttle
AlarmDescription: front-sla-alerts DynamoDB table had one or more read throttle events
Namespace: AWS/DynamoDB
MetricName: ThrottledRequests
MetricName: ReadThrottleEvents
Dimensions:
- Name: TableName
Value: !Ref AlertsTable
@ -198,13 +198,13 @@ Resources:
AlarmActions:
- !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:site-alerts
AlertsTableSystemErrorsAlarm:
AlertsTableWriteThrottleAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: front-sla-alerts-system-errors
AlarmDescription: front-sla-alerts DynamoDB table returned HTTP 500 system errors
AlarmName: front-sla-alerts-write-throttle
AlarmDescription: front-sla-alerts DynamoDB table had one or more write throttle events
Namespace: AWS/DynamoDB
MetricName: SystemErrors
MetricName: WriteThrottleEvents
Dimensions:
- Name: TableName
Value: !Ref AlertsTable