El monitoreo de DynamoDB con CloudWatch te permite observar el rendimiento, consumo de recursos y detectar posibles problemas en tus tablas. Aquí tienes un resumen claro con lo esencial para que lo uses de forma efectiva:
📊 ¿Qué métricas de DynamoDB se monitorean en CloudWatch?
AWS DynamoDB envía métricas automáticamente a CloudWatch. Algunas de las más importantes incluyen:
MétricaDescripciónConsumedReadCapacityUnitsUnidades de lectura consumidas por segundoConsumedWriteCapacityUnitsUnidades de escritura consumidas por segundoProvisionedReadCapacityUnitsCapacidad de lectura aprovisionadaProvisionedWriteCapacityUnitsCapacidad de escritura aprovisionadaThrottledRequestsNúmero de solicitudes rechazadas por exceder capacidadReadThrottleEventsLecturas rechazadasWriteThrottleEventsEscrituras rechazadasSuccessfulRequestLatencyLatencia promedio de solicitudes exitosasReturnedItemCountNúmero de ítems devueltos por operaciones de consulta o escaneo
🛠️ ¿Cómo ver estas métricas?
Opción 1: Consola de AWS
- Ve a CloudWatch > Métricas > DynamoDB.
- Selecciona una tabla específica o un grupo de métricas.
- Puedes crear gráficas, paneles y alarmas personalizadas.
Opción 2: Línea de comandos (AWS CLI)
aws cloudwatch get-metric-statistics \
--namespace AWS/DynamoDB \
--metric-name ConsumedReadCapacityUnits \
--dimensions Name=TableName,Value=MiTablaDynamo \
--statistics Average \
--period 60 \
--start-time 2025-05-21T00:00:00Z \
--end-time 2025-05-22T00:00:00Z
🚨 Alarmas con CloudWatch
Puedes configurar alarmas para ser notificado (por email, SMS, Lambda, etc.) si una métrica supera cierto umbral.
Ejemplo: Crear una alarma por escritura limitada
aws cloudwatch put-metric-alarm \
--alarm-name "AlarmaEscrituraLimitada" \
--metric-name WriteThrottleEvents \
--namespace AWS/DynamoDB \
--statistic Sum \
--period 60 \
--threshold 1 \
--comparison-operator GreaterThanOrEqualToThreshold \
--evaluation-periods 1 \
--dimensions Name=TableName,Value=MiTablaDynamo \
--alarm-actions arn:aws:sns:us-east-1:123456789012:mi-topic-sns
🧠 Buenas prácticas
- Usa Auto Scaling para evitar rechazos (
ThrottledRequests).
- Monitorea la latencia (
SuccessfulRequestLatency) si tienes tiempos de respuesta altos.
- Crea tableros de CloudWatch Dashboards para ver todo en un solo lugar.
- Si usas Streams o TTL, también puedes ver métricas relacionadas.