

# Criar alarmes do CloudWatch no DynamoDB
<a name="Monitoring-metrics-creating-cloudwatch-alarms"></a>

Um [alarme do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 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 ajuste de escala automático. 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB).

**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
<a name="monitoring-metrics-creating-an-alarm-cw-console"></a>

**Como criar um alarme no console do CloudWatch**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, selecione **Alarmes**, **Todos os alarmes**.

1. Selecione **Criar alarme**.

1. 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**.

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

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

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

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

1. Escolha **Próximo**.

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

1. Quando terminar, escolha **Next** (Próximo).

1. Insira um nome e uma descrição para o alarme e selecione **Avançar**.

1. 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
<a name="Monitoring-metrics-creating-an-alarm-cli"></a>

```
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
<a name="Monitoring-metrics-more-cli-examples"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html).

1. 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
   ```

1. 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html).

1. 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
   ```

1. 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
   ```