Cloudwatch alarmen maken voor een DynamoDB Tabel op AWS

Om DynamoDB tabellen te monitoren worden metriekgegevens automatisch naar CloudWatch gestuurd. Hieronder staan de metrieken geaggregeerd met intervallen van een minuut voor DynamoDB tabellen.

  1. ConditionalCheckFailedRequests: Dit geeft het aantal mislukte pogingen om voorwaardelijke schrijfbewerkingen uit te voeren.
  2. ConsumedReadCapacityUnits: Dit geeft het aantal verbruikte leescapaciteitseenheden terug om bij te houden hoeveel van de voorziene doorvoer over de opgegeven tijdsperiode gebruikt wordt.
  3. ConsumedWriteCapacityUnits: Dit is het aantal verbruikte schrijfcapaciteitseenheden om bij te houden hoeveel van de voorziene doorvoer in de gespecificeerde tijdsperiode gebruikt wordt.
  4. ReadThrottleEvents: Dit geeft het aantal verzoeken aan DynamoDB die de voorziene leescapaciteitseenheden voor een tabel overschrijden.
  5. GeretourneerdeBytes: Dit geeft het aantal bytes teruggegeven door GetRecords operaties gedurende de gespecificeerde tijdsperiode.
  6. ReturnedItemCount: Geeft het aantal items terug in de gespecificeerde tijdsperiode die door Query, Scan of ExecuteStatement operaties zijn geretourneerd.
  7. ReturnedRecordsCount: Dit is het aantal stroomrecords gedurende de gespecificeerde tijdsperiode die door GetRecords operaties geretourneerd worden.
  8. SuccessfulRequestLatency: Dit geeft het aantal succesvolle verzoeken aan Amazon DynamoDB Streams of DynamoDB gedurende de gespecificeerde tijdsperiode.
  9. SystemErrors (Systeemfouten): Dit geeft het aantal verzoeken aan Amazon DynamoDB Streams of DynamoDB gedurende de gespecificeerde tijdsperiode dat een HTTP 500 statuscode oplevert.
  10. TimeToLiveDeletedItemCount: Dit geeft het aantal door Time to Live verwijderde items gedurende de gespecificeerde tijdsperiode om je te helpen het tempo van Time to Live verwijderingen op je tabel in de gaten te houden.
  11. ThrottledRequests: Dit geeft de telling van verzoeken aan DynamoDB die de voorziene doorvoerlimieten overschrijden.
  12. TransactionConflict: Dit geeft de telling van afgewezen verzoeken op item-niveau als gevolg van transactieconflicten.
  13. UserErrors: Dit geeft de telling van verzoeken aan Amazon DynamoDB Streams of DynamoDB gedurende de opgegeven tijdsperiode die een HTTP 400 statuscode genereert.
  14. WriteThrottleEvents: Dit geeft de telling van verzoeken aan DynamoDB die de voorziene schrijfcapaciteitseenheden voor een tabel overschrijden.

Er zijn nog andere metrieken met een aggregatie granulariteit op vijf minuten. Om meer te weten te komen over de metrieken die beschikbaar zijn voor de DynamoDB tabel, bezoek je de officiële documentatie hier.

In dit artikel zullen we een alarm aanmaken voor een DynamoDB tabel om “ConsumedWriteCapacityUnits” te bewaken en een melding naar het SNS onderwerp te sturen. Voor we verder gaan wordt verondersteld dat je bekend bent met de DynamoDB tabel en de SNS onderwerpen. Ook wordt aangenomen dat je minstens één DynamoDB tabel en een SNS topic hebt.

Vereisten

  1. AWS Account(Maak aan als je er nog geen hebt).
  2. DynamoDB tabel (Klik hier om te leren hoe je een DynamoDB tabel maakt met Terraform).
  3. SNS Topic (Klik hier om te leren een SNS Topic te maken met Cloudformation)

Wat zullen we doen?

  1. Log in op AWS.
  2. Maak een alarm voor de bestaande DynamoDB tabel.

Inloggen op AWS

Klikhier om naar de AWS login pagina te gaan.

Je krijgt de login pagina als volgt te zien als je op de bovenstaande link klikt. Voer je credentials in om in te loggen op je AWS account.

Inlogscherm

Je ziet de hoofd AWS Management Console als volgt als je met succes op je account bent ingelogd.

AWS Beheerconsole

Maak een alarm voor de bestaande DynamoDB tabel.

Zoek naar “Cloudwatch” in het zoekvak bovenaan het scherm.

Zoek in Cloudwatch

Je ziet het Cloudwatch dashboard als volgt. Klik op “Alarms” in het linker paneel.

Dashboard van Cloudwatch

Je ziet op dit scherm de bestaande alarmen in je account. Om een nieuw alarm te maken voor de bestaande DynamoDB tabel klik je op de knop “Create alarm”.

Alarmscherm

Je krijgt een scherm om metrieken en voorwaarden op te geven voor het aan te maken alarm. Klik op de knop “Select metric”.

Specificeer metriek en voorwaarden

Zoek in het zoekveld naar “dynamodb” om de metrieken te filteren. Klik op “DynamoDB > Table Metrics” om de beschikbare metrics te zien voor de bestaande DynamoDB tabellen.

Blader door DynamoDB en kies Table Metrics

Nu zie je metrics beschikbaar voor de bestaande DynamoDB tabellen, je kunt er een van kiezen om een alarm te maken. Hier ga ik verder met “ConsumedWriteCapacityUnits”. Klik op de knop “Select metrics” om verder te gaan.

Kies metrisch

Kies de gewenste Statistiek, Drempeltype, alarmtoestand en drempelwaarde. Hier zal het alarm afgaan als de Steekproeftelling van de ConsumeWriteCapacityUnits gedurende 5 minuten groter is dan 5.

Specificeer metriek en voorwaarden

Kies de Alarmtoestand trigger en het SNS onderwerp. Als het alarm afgaat gaat het naar de toestand “In alarm” en stuurt een melding naar het opgegeven SNS onderwerp.

Configureer acties

Voeg naam en beschrijving toe aan het te maken alarm en klik op de knop “Next”.

Voeg naam en beschrijving toe

Bekijk alle configuraties voordat je een alarm maakt. Als de configuraties er goed uitzien klik je op de knop “Create alarm”.

Bekijk en maak

Zodra het alarm gemaakt is zie je het onder het “Alarms” console. Op basis van de drempelwaarde en de conditie verandert de toestand van het alarm. Omdat al aan de voorwaarde voldaan is, zie je dat het alarm in de toestand “In alarm” staat.

In Alarm

Hierdoor is het alarm afgegaan en de melding is naar het abonnement van het opgegeven SNS onderwerp gestuurd.

Alarmmelding

Conclusie

In dit artikel hebben we een alarm gemaakt voor de metriek “ConsumedWriteCapacityUnits”. Dit alarm wordt geactiveerd als “Sample Count” “Greater” is dan drempelwaarde “5” voor de periode van “5 minuten”. We zagen ook dat een melding naar het SNS onderwerp abonnement wordt gestuurd als het alarm afgaat. Je kunt nu dezelfde stappen gebruiken en alarmen maken voor verschillende metrieken, statistieken, drempeltype/waarde.