Cómo crear alarmas Cloudwatch para una tabla DynamoDB en AWS
Para supervisar las tablas de DynamoDB, los datos de las métricas se envían automáticamente a CloudWatch. A continuación se muestran las métricas agregadas a intervalos de un minuto para las tablas de DynamoDB.
- ConditionalCheckFailedRequests: Devuelve el número de intentos fallidos de realizar escrituras condicionales.
- Unidades de capacidad de lecturaconsumidas: Devuelve el número de unidades de capacidad de lectura consumidas para hacer un seguimiento de cuánto rendimiento provisionado se utiliza durante el periodo de tiempo especificado.
- ConsumedWriteCapacityUnits: Es el número de unidades de capacidad de escritura consumidas para hacer un seguimiento de cuánto rendimiento provisionado se utiliza durante el periodo de tiempo especificado.
- Eventos de Aceleración de Lectura: Indica el número de peticiones a DynamoDB que superan las unidades de capacidad de lectura provisionadas para una tabla.
- BytesDevueltos: Esto devuelve el número de bytes devueltos por las operaciones GetRecords durante el periodo de tiempo especificado.
- ReturnedItemCount: Devuelve el número de elementos devueltos por las operaciones Query, Scan o ExecuteStatement durante el periodo de tiempo especificado.
- Número de registros devueltos: Es el número de registros de flujo durante el periodo de tiempo especificado devuelto por las operaciones GetRecords.
- SuccessfulRequestLatency: Indica las solicitudes realizadas con éxito a Amazon DynamoDB Streams o DynamoDB durante el periodo de tiempo especificado.
- Errores del sistema: Indica el número de solicitudes a Amazon DynamoDB Streams o DynamoDB durante el periodo de tiempo especificado que generan un código de estado HTTP 500.
- Recuento de elementos eliminados por tiempo de vida: Indica el número de elementos eliminados por Time to Live durante el periodo de tiempo especificado para ayudarte a monitorizar la tasa de eliminaciones de Time to Live en tu tabla.
- PeticionesRestranguladas: Indica el número de solicitudes a DynamoDB que superan los límites de rendimiento provisionados.
- ConflictoDeTransacciones: Devuelve el recuento de solicitudes rechazadas a nivel de elemento debido a conflictos transaccionales.
- ErroresDelUsuario: Proporciona el recuento de solicitudes a Amazon DynamoDB Streams o DynamoDB durante el periodo de tiempo especificado que generan un código de estado HTTP 400.
- WriteThrottleEvents: Indica el recuento de solicitudes a DynamoDB que superan las unidades de capacidad de escritura provisionadas para una tabla.
Existen otras métricas con una granularidad de agregación a cinco minutos. Para saber más sobre las métricas disponibles para la tabla DynamoDB, visita la documentación oficial aquí.
En este artículo, crearemos una alarma para una tabla DynamoDB para supervisar «ConsumedWriteCapacityUnits» y enviar una notificación al tema SNS. Antes de continuar, se supone que estás familiarizado con la tabla DynamoDB y los temas SNS. Además, se supone que tienes al menos una tabla DynamoDB y un tema SNS.
Requisitos previos
- Cuenta de AWS(Créala si no tienes una).
- Tabla DynamoDB (Haz clic aquí para aprender a crear una tabla DynamoDB utilizando Terraform).
- Tema SNS (Haz clic aquí para aprender a crear un Tema SNS utilizando Cloudformation)
¿Qué vamos a hacer?
- Inicia sesión en AWS.
- Crea una alarma para la tabla DynamoDB existente.
Iniciar sesión en AWS
Haz clic aquí para ir a la página de inicio de sesión de AWS.
Verás la siguiente página de inicio de sesión cuando pulses el enlace anterior. Introduce tus credenciales para iniciar sesión en tu cuenta de AWS.
Verás la Consola de Administración de AWS principal de la siguiente manera una vez que hayas iniciado sesión con éxito en tu cuenta.
Crea una alarma para la tabla DynamoDB existente.
Busca «Cloudwatch» en el cuadro de búsqueda de la parte superior de la pantalla.
Verás el panel de control de Cloudwatch de la siguiente manera. Haz clic en «Alarmas» en el panel izquierdo.
En esta pantalla verás las alarmas existentes en tu cuenta. Para crear una nueva alarma para la tabla DynamoDB existente, haz clic en el botón «Crear alarma».
Aparecerá una pantalla para especificar la métrica y las condiciones de la alarma que se va a crear. Haz clic en el botón «Seleccionar métrica».
En el cuadro de búsqueda, busca «dynamodb» para filtrar las métricas. Haz clic en «DynamoDB > Métricas de Tabla» para ver las métricas disponibles para las tablas DynamoDB existentes.
Ahora verás las métricas disponibles para las tablas DynamoDB existentes, puedes elegir cualquiera de ellas para crear una alarma. En este caso, procederé con «ConsumedWriteCapacityUnits». Haz clic en el botón «Seleccionar métricas» para continuar.
Elige la Estadística deseada, el tipo de Umbral, la Condición de la alarma y el valor del Umbral. Aquí, la alarma se activará si el Recuento de Muestras de las «ConsumeWriteCapacityUnits» es superior a 5 durante 5 minutos.
Elige el Activador del estado de alarma y el Tema SNS. Cuando se active la alarma, pasará al estado «En alarma» y enviará una notificación al tema SNS especificado.
Añade un nombre y una descripción a la alarma que vas a crear y pulsa el botón «Siguiente».
Revisa todas las configuraciones antes de crear una alarma. Una vez que las configuraciones parezcan correctas, haz clic en el botón «Crear alarma».
Una vez creada la alarma, podrás verla en la consola «Alarmas». En función del valor umbral y de la condición, el estado de la alarma cambiará. Como ya se ha cumplido la condición, puedes ver que la alarma está en estado «En alarma».
Esto ha activado la alarma y la notificación se ha enviado a la suscripción del tema SNS especificado.
Conclusión
En este artículo hemos creado una alarma para la métrica «ConsumedWriteCapacityUnits». Esta alarma se activa cuando el «Recuento de muestras» es «Mayor» que el umbral «5» durante el periodo de «5 minutos». También observamos que se envía una notificación a la suscripción temática SNS cuando se activa la alarma. Ahora puedes utilizar los mismos pasos y crear alarmas para diferentes métricas, estadísticas, tipo/valor de umbral.