Criação de CloudWatch alarmes para monitorar o DynamoDB - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de CloudWatch alarmes para monitorar o DynamoDB

Você pode criar um CloudWatch alarme que envia uma mensagem do Amazon SNS quando o alarme muda de estado. Um alarme observa uma única métrica ao longo de um período especificado por você e realiza uma ou mais ações com base no valor da métrica relativo a um determinado limite ao longo de vários períodos. A ação é uma notificação enviada para um tópico do Amazon SNS ou uma política de Auto Scaling. Os alarmes invocam ações somente para mudanças de estado sustentadas. CloudWatch os alarmes não invocam ações simplesmente porque estão em um determinado estado; o estado deve ter sido alterado e mantido por um determinado número de períodos.

nota

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

Para obter uma lista de métricas suportadas e suas dimensões necessárias no DynamoDB, consulteVisualizar métricas e dimensões.

Como posso ser notificado antes de consumir toda a minha capacidade de leitura?

  1. Crie um tópico do Amazon SNS, arn:aws:sns:us-east-1:123456789012:capacity-alarm.

    Para obter mais informações, consulte Configurar o Amazon Simple Notification Service.

  2. Crie o alarme. Neste exemplo, pressupomos uma capacidade provisionada de cinco unidades de leitura.

    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 ReadCapacityUnitsLimitAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name ReadCapacityUnitsLimitAlarm --state-reason "initializing" --state-value ALARM
nota

O alarme é ativado sempre que a capacidade de leitura consumida for de, pelo menos, 4 unidades por segundo (80% da capacidade de leitura provisionada de 5) para 1 minuto (60 segundos). Então, o threshold é 240 unidades de capacidade de leitura (4 unidades/s* 60 segundos). Sempre que a capacidade de leitura for atualizada, você deverá atualizar os cálculos de alarme adequadamente. Você pode evitar esse processo com a criação de alarmes por meio do DynamoDB Console. Dessa forma, os alarmes são atualizados automaticamente por você.

Como posso ser notificado caso alguma solicitação exceda 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 RequestsExceedingThroughputAlarm\ --alarm-description "Alarm when my requests are exceeding provisioned throughput quotas of a table" \ --namespace AWS/DynamoDB \ --metric-name ThrottledRequests \ --dimensions Name=TableName,Value=myTable Name=Operation,Value=aDynamoDBOperation \ --statistic Sum \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --period 300 \ --unit Count \ --evaluation-periods 1 \ --treat-missing-data notBreaching \ --alarm-actions arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput
  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

Como posso ser notificado se algum erro do sistema ocorreu?

  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