Criar alarmes do CloudWatch - Amazon DynamoDB

Criar alarmes do CloudWatch

Um alarme do CloudWatch observa uma única métrica ao longo de um período especificado e realiza uma ou mais ações especificadas com base no valor da métrica em relação a um limite ao longo do tempo. A ação é uma notificação enviada para um tópico do Amazon SNS ou uma política de Auto Scaling. Também é possível adicionar alarmes aos painéis para monitorar e receber alertas sobre seus recursos da AWS e aplicações em várias regiões. Não há limite para o número de alarmes que você pode criar. Os alarmes do CloudWatch não invocam ações simplesmente por estarem em um estado específico. O estado deve ter sido alterado e mantido por um número específico de períodos. Para ver uma lista dos alarmes recomendados do DynamoDB, consulte Alarmes recomendados.

nota

Você deve especificar todas as dimensões necessárias ao criar o alarme do CloudWatch, pois o CloudWatch não agregará métricas para uma dimensão ausente. Criar um alarme do CloudWatch com uma dimensão ausente não resultará em um erro na criação do alarme.

Vamos supor que você tenha uma tabela provisionada com cinco unidades de capacidade de leitura. Você quer receber notificação antes de consumir toda a capacidade de leitura provisionada, então decide criar um alarme do CloudWatch para receber notificação quando a capacidade consumida atingir 80% do que você provisionou para a tabela. É possível criar alarmes usando o console do CloudWatch ou usando a AWS CLI.

Criar um alarme no console do CloudWatch

Como criar um alarme no console do CloudWatch
  1. Faça login no AWS Management Console e abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Alarms (Alarmes), All alarms (Todos os alarmes).

  3. Selecione Criar alarme.

  4. Encontre a linha com a tabela que você deseja monitorar e ConsumeReadCapacityUnits na coluna Nome da métrica. Marque a caixa de seleção ao lado dessa linha e escolha Selecionar métrica.

  5. Em Especificar métrica e condições, em Estatística, escolha Soma. Selecione Período de 1 minuto.

  6. Em Conditions (Condições), especifique o seguinte:

    1. Em Tipo de limite, escolha Estático.

    2. Em Sempre que ConsumedReadCapacityUnits for, escolha Maior que/igual a e especifique o limite como 240.

  7. Escolha Próximo.

  8. Em Notificação, selecione In alarm e um tópico do SNS para notificar quando o alarme estiver no estado ALARM.

  9. Quando terminar, escolha Next (Próximo).

  10. Insira um nome e uma descrição para o alarme e selecione Next (Avançar).

  11. Em Preview and create (Visualizar e criar), confirme se as informações e condições são o que você deseja e escolha Create alarm (Criar alarme).

Criar um alarme na AWS CLI

aws cloudwatch put-metric-alarm \ -\-alarm-name ReadCapacityUnitsLimitAlarm \ -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \ -\-namespace AWS/DynamoDB \ -\-metric-name ConsumedReadCapacityUnits \ -\-dimensions Name=TableName,Value=myTable \ -\-statistic Sum \ -\-threshold 240 \ -\-comparison-operator GreaterThanOrEqualToThreshold \ -\-period 60 \ -\-evaluation-periods 1 \ -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm

Teste o alarme.

aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value OK
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value ALARM

Mais exemplos de AWS CLI

O procedimento a seguir descreve como você receberá notificações se tiver solicitações que excedem as cotas de throughput provisionado de uma tabela.

  1. Crie um tópico do Amazon SNS arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput. Para obter mais informações, consulte Configurar o Amazon Simple Notification Service.

  2. Crie o alarme.

    aws cloudwatch put-metric-alarm \ -\-alarm-name ReadCapacityUnitsLimitAlarm \ -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \ -\-namespace AWS/DynamoDB \ -\-metric-name ConsumedReadCapacityUnits \ -\-dimensions Name=TableName,Value=myTable \ -\-statistic Sum \ -\-threshold 240 \ -\-comparison-operator GreaterThanOrEqualToThreshold \ -\-period 60 \ -\-evaluation-periods 1 \ -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
  3. Teste o alarme.

    aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value ALARM

O procedimento a seguir descreve como receber notificação se houver erros no sistema.

  1. Crie um tópico do Amazon SNS arn:aws:sns:us-east-1:123456789012:notify-on-system-errors. Para obter mais informações, consulte Configurar o Amazon Simple Notification Service.

  2. Crie o alarme.

    aws cloudwatch put-metric-alarm \ --alarm-name SystemErrorsAlarm \ --alarm-description "Alarm when system errors occur" \ --namespace AWS/DynamoDB \ --metric-name SystemErrors \ --dimensions Name=TableName,Value=myTable Name=Operation,Value=aDynamoDBOperation \ --statistic Sum \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --period 60 \ --unit Count \ --evaluation-periods 1 \ --treat-missing-data breaching \ --alarm-actions arn:aws:sns:us-east-1:123456789012:notify-on-system-errors
  3. Teste o alarme.

    aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value ALARM