

# Monitorar métricas no DynamoDB com o Amazon CloudWatch
<a name="Monitoring-metrics-with-Amazon-CloudWatch"></a>

É possível monitorar o Amazon DynamoDB usando o CloudWatch, o qual coleta e processa dados brutos do DynamoDB e os transforma em métricas legíveis quase em tempo real. Essas estatísticas são mantidas por um período para que você possa acessar informações históricas e ter uma perspectiva melhor sobre a performance da aplicação web ou do serviço. Por padrão, os dados de métrica do DynamoDB são enviados para o CloudWatch automaticamente. Para obter mais informações, consulte [O que é o Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) e [Retenção de métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#metrics-retention) no *Guia do usuário do Amazon CloudWatch*.

**Topics**
+ [Como usar as métricas do DynamoDB?](#How-do-I-use-DynamoDB-metrics)
+ [Visualizar métricas no console do CloudWatch](#Viewing-metrics-in-CloudWatch-console)
+ [Visualizar métricas na AWS CLI](#Viewing-metrics-in-the-cli)
+ [Métricas e dimensões do DynamoDB](metrics-dimensions.md)
+ [Criar alarmes do CloudWatch no DynamoDB](Monitoring-metrics-creating-cloudwatch-alarms.md)

## Como usar as métricas do DynamoDB?
<a name="How-do-I-use-DynamoDB-metrics"></a>

As métricas relatadas pelo DynamoDB fornecem informações que você pode analisar de diferentes maneiras. A lista a seguir mostra alguns usos comuns para as métricas. Essas são sugestões para você começar, e não uma lista abrangente.


**Como usar as métricas do DynamoDB?**  

|  Como?  |  Métricas relevantes  | 
| --- | --- | 
|  Como monitorar a taxa de exclusões por TTL em minha tabela?   |  Você pode monitorar `TimeToLiveDeletedItemCount` ao longo do período de tempo especificado, para rastrear a taxa de exclusões de TTL em sua tabela. Para ver um exemplo de uma aplicação sem servidor que usa a métrica `TimeToLiveDeletedItemCount`, consulte [ Automatically archive items to S3 using DynamoDB time to live (TTL) with AWS Lambda and Amazon Data Firehose](https://aws.amazon.com/blogs/database/automatically-archive-items-to-s3-using-dynamodb-time-to-live-with-aws-lambda-and-amazon-kinesis-firehose/).  | 
|  Como posso determinar quanto do throughput provisionado está sendo usado?  |  Você pode monitorar `ConsumedReadCapacityUnits` ou `ConsumedWriteCapacityUnits` ao longo do período de tempo especificado, para rastrear a quantidade de throughput provisionado que está sendo usada.  | 
|  Como posso determinar quais solicitações excedem as cotas de throughput provisionado de uma tabela?  |  `ThrottledRequests` será incrementado em um se um evento em uma solicitação exceder a cota de um throughput provisionado. Para ter uma ideia sobre qual evento está controlando a utilização de uma solicitação, compare `ThrottledRequests` com as métricas `ReadThrottleEvents` e `WriteThrottleEvents` da tabela e seus índices.  | 
|  Como posso determinar se ocorreu algum erro do sistema?  |  Você pode monitorar `SystemErrors` para determinar se todas as solicitações resultaram em um código HTTP 500 (erro de servidor). Normalmente, essa métrica deve ser igual a zero. Se não for o caso, talvez você deva investigar.  | 
|  Como posso monitorar o valor de latência das minhas operações de tabela?  |  É possível monitorar `SuccessfulRequestLatency` rastreando a latência média e a latência mediana por meio de métricas de percentil (p50). Picos ocasionais na latência não são motivo de preocupação. No entanto, se a latência média ou p50 (mediana) for alta, poderá haver um problema subjacente a ser resolvido. Consulte [Solução de problemas de latência no Amazon DynamoDB](TroubleshootingLatency.md) para obter mais informações.  | 

## Visualizar métricas no console do CloudWatch
<a name="Viewing-metrics-in-CloudWatch-console"></a>

As métricas são agrupadas primeiro pelo namespace do serviço e, depois, de acordo com várias combinações de dimensão dentro de cada namespace.

**Para exibir métricas no console do CloudWatch**

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Métricas, Todas as métricas**.

1. Selecione o namespace **DynamoDB**. Também é possível selecionar o namespace **Usage** (Uso) para visualizar as métricas de uso do DynamoDB. Para obter mais informações sobre métricas de uso, consulte [Métricas de uso da AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html).

1. A guia **Procurar** exibe todas as métricas no namespace.

1. (Opcional) Para adicionar o grafo de métricas a um painel do CloudWatch, escolha **Ações, Adicionar ao painel**. 

## Visualizar métricas na AWS CLI
<a name="Viewing-metrics-in-the-cli"></a>

Para ter informações sobre métricas usando a AWS CLI, utilize o comando `list-metrics` do CloudWatch. No exemplo a seguir, você lista todas as métricas no namespace `AWS/DynamoDB`.

```
1.                 aws cloudwatch list-metrics --namespace "AWS/DynamoDB"
```

Para obter estatísticas métricas, use o comando `get-metric-statistics`. O comando a seguir extrai estatísticas `ConsumedReadCapacityUnits` para a tabela `ProductCatalog` durante o período específico de 24 horas, com detalhamento de 5 minutos.

```
aws cloudwatch get-metric-statistics —namespace AWS/DynamoDB \
     —metric-name ConsumedReadCapacityUnits \
     —start-time 2023-11-01T00:00:00Z \
     —end-time 2023-11-02T00:00:00Z \
     —period 360 \
     —statistics Average \
     —dimensions Name=TableName,Value=ProductCatalog
```

A saída da amostra é exibida da seguinte maneira:

```
{
    "Datapoints": [
        {
            "Timestamp": "2023-11-01T 09:18:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 04:36:00+00:00", 
            "Average": 22.5, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 15:12:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, ...
        {
            "Timestamp": "2023-11-01T 17:30:00+00:00", 
            "Average": 25, 
            "Unit": "Count"
        }
    ], 
    "Label": " ConsumedReadCapacityUnits "
}
```

# Métricas e dimensões do DynamoDB
<a name="metrics-dimensions"></a>

Quando você interage com o DynamoDB, ele envia as métricas e as dimensões ao CloudWatch.

As saídas do DynamoDB consumiram o throughput provisionado por períodos de um minuto. O [ajuste de escala automático](AutoScaling.md) é acionado quando a capacidade consumida ultrapassa a meta de utilização configurada em dois minutos consecutivos. Os alarmes do CloudWatch podem ter um pequeno atraso de até alguns minutos antes de acionar o ajuste de escala automático. Esse atraso garante uma avaliação precisa da métrica do CloudWatch. Se os picos de throughput consumidos tiverem mais de um minuto de intervalo, o ajuste de escala automático poderá não ser acionado. Da mesma forma, um evento de redução de escala verticalmente pode ocorrer quando 15 pontos de dados consecutivos estão abaixo da meta de utilização. Nos dois casos, depois que o ajuste de escala automático é acionado, a API [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) é invocada. Depois, leva alguns minutos para atualizar a capacidade provisionada da tabela ou do índice. Durante esse período, todas as solicitações que excederem a capacidade provisionada anterior das tabelas terão controle de utilização.

## Visualizar métricas e dimensões
<a name="dynamodb-metrics-dimensions"></a>

O CloudWatch exibe as seguintes métricas do DynamoDB:

### Métricas do DynamoDB
<a name="dynamodb-metrics"></a>

**nota**  
O Amazon CloudWatch agrega essas métricas em intervalos de um minuto:  
`ConditionalCheckFailedRequests`
`ConsumedReadCapacityUnits`
`ConsumedWriteCapacityUnits`
`ReadAccountLimitThrottleEvents`
`ReadKeyRangeThroughputThrottleEvents`
`ReadMaxOnDemandThroughputThrottleEvents`
`ReadProvisionedThroughputThrottleEvents`
`ReadThrottleEvents`
`ReturnedBytes`
`ReturnedItemCount`
`ReturnedRecordsCount`
`SuccessfulRequestLatency`
`SystemErrors`
`TimeToLiveDeletedItemCount`
`ThrottledRequests`
`TransactionConflict`
`UserErrors`
`WriteAccountLimitThrottleEvents`
`WriteKeyRangeThroughputThrottleEvents`
`WriteMaxOnDemandThroughputThrottleEvents`
`WriteProvisionedThroughputThrottleEvents`
`WriteThrottleEvents`
`FaultInjectionServiceInducedErrors`
Para todas as métricas do DynamoDB, a granularidade de agregação é de cinco minutos.

Nem todas as estatísticas, como *Média* ou *Soma*, são aplicáveis a todas as métricas. No entanto, todos esses valores estão disponíveis por meio do console do Amazon DynamoDB ou usando o console do CloudWatch, AWS CLI ou AWS SDKs para todas as métricas. 

Na tabela a seguir, cada métrica tem um conjunto de estatísticas válidas aplicáveis a essa métrica.

**Topics**<a name="available-metrics.title"></a>
+ [Métricas do DynamoDB](#dynamodb-metrics)
+ [AccountMaxReads](#AccountMaxReads)
+ [AccountMaxTableLevelReads](#AccountMaxTableLevelReads)
+ [AccountMaxTableLevelWrites](#AccountMaxTableLevelWrites)
+ [AccountMaxWrites](#AccountMaxWrites)
+ [AccountProvisionedReadCapacityUtilization](#AccountProvisionedReadCapacityUtilization)
+ [AccountProvisionedWriteCapacityUtilization](#AccountProvisionedWriteCapacityUtilization)
+ [AgeOfOldestUnreplicatedRecord](#AgeOfOldestUnreplicatedRecord)
+ [ConditionalCheckFailedRequests](#ConditionalCheckFailedRequests)
+ [ConsumedChangeDataCaptureUnits](#ConsumedChangeDataCaptureUnits)
+ [ConsumedReadCapacityUnits](#ConsumedReadCapacityUnits)
+ [ConsumedWriteCapacityUnits](#ConsumedWriteCapacityUnits)
+ [FailedToReplicateRecordCount](#FailedToReplicateRecordCount)
+ [MaxProvisionedTableReadCapacityUtilization](#MaxProvisionedTableReadCapacityUtilization)
+ [MaxProvisionedTableWriteCapacityUtilization](#MaxProvisionedTableWriteCapacityUtilization)
+ [OnDemandMaxReadRequestUnits](#OnDemandMaxReadRequestUnits)
+ [OnDemandMaxWriteRequestUnits](#OnDemandMaxWriteRequestUnits)
+ [OnlineIndexConsumedWriteCapacity](#OnlineIndexConsumedWriteCapacity)
+ [OnlineIndexPercentageProgress](#OnlineIndexPercentageProgress)
+ [OnlineIndexThrottleEvents](#OnlineIndexThrottleEvents)
+ [PendingReplicationCount](#PendingReplicationCount)
+ [ProvisionedReadCapacityUnits](#ProvisionedReadCapacityUnits)
+ [ProvisionedWriteCapacityUnits](#ProvisionedWriteCapacityUnits)
+ [ReadAccountLimitThrottleEvents](#ReadAccountLimitThrottleEvents)
+ [ReadKeyRangeThroughputThrottleEvents](#ReadKeyRangeThroughputThrottleEvents)
+ [ReadMaxOnDemandThroughputThrottleEvents](#ReadMaxOnDemandThroughputThrottleEvents)
+ [ReadProvisionedThroughputThrottleEvents](#ReadProvisionedThroughputThrottleEvents)
+ [ReadThrottleEvents](#ReadThrottleEvents)
+ [ReplicationLatency](#ReplicationLatency)
+ [ReturnedBytes](#ReturnedBytes)
+ [ReturnedItemCount](#ReturnedItemCount)
+ [ReturnedRecordsCount](#ReturnedRecordsCount)
+ [SuccessfulRequestLatency](#SuccessfulRequestLatency)
+ [SystemErrors](#SystemErrors)
+ [TimeToLiveDeletedItemCount](#TimeToLiveDeletedItemCount)
+ [ThrottledPutRecordCount](#ThrottledPutRecordCount)
+ [ThrottledRequests](#ThrottledRequests)
+ [TransactionConflict](#TransactionConflict)
+ [UserErrors](#UserErrors)
+ [WriteAccountLimitThrottleEvents](#WriteAccountLimitThrottleEvents)
+ [WriteKeyRangeThroughputThrottleEvents](#WriteKeyRangeThroughputThrottleEvents)
+ [WriteMaxOnDemandThroughputThrottleEvents](#WriteMaxOnDemandThroughputThrottleEvents)
+ [WriteProvisionedThroughputThrottleEvents](#WriteProvisionedThroughputThrottleEvents)
+ [WriteThrottleEvents](#WriteThrottleEvents)
+ [Métricas de uso](#w2aac41c15c13b7c11)
+ [FaultInjectionServiceInducedErrors](#FaultInjectionServiceInducedErrors)

### AccountMaxReads
<a name="AccountMaxReads"></a>

O número máximo de unidades de capacidade de leitura que podem ser usadas por uma conta. Esse limite não se aplica a tabelas sob demanda nem a índices secundários globais.

Unidades: `Count`

Estatística válida:
+ `Maximum`: o número máximo de unidades de capacidade de leitura que podem ser usadas por uma conta.

### AccountMaxTableLevelReads
<a name="AccountMaxTableLevelReads"></a>

O número máximo de unidades de capacidade de leitura que podem ser usadas por uma tabela ou um índice secundário global de uma conta. Em relação a tabelas sob demanda, esse valor limita o máximo de unidades de solicitação de leitura que uma tabela ou um índice secundário global pode usar.

Unidades: `Count`

Estatística válida:
+ `Maximum`: o número máximo de unidades de capacidade de leitura que podem ser usadas por uma tabela ou um índice secundário global da conta.

### AccountMaxTableLevelWrites
<a name="AccountMaxTableLevelWrites"></a>

O número máximo de unidades de capacidade de gravação que podem ser usadas por uma tabela ou um índice secundário global de uma conta. Em relação a tabelas sob demanda, esse valor limita o máximo de unidades de solicitação de gravação que uma tabela ou um índice secundário global pode usar.

Unidades: `Count`

Estatística válida:
+ `Maximum`: o número máximo de unidades de capacidade de gravação que podem ser usadas por uma tabela ou um índice secundário global da conta.

### AccountMaxWrites
<a name="AccountMaxWrites"></a>

O número máximo de unidades de capacidade de gravação que podem ser usadas por uma conta. Esse limite não se aplica a tabelas sob demanda nem a índices secundários globais.

Unidades: `Count`

Estatística válida:
+ `Maximum`: o número máximo de unidades de capacidade de gravação que podem ser usadas por uma conta.

### AccountProvisionedReadCapacityUtilization
<a name="AccountProvisionedReadCapacityUtilization"></a>

O percentual de unidades de capacidade de leitura provisionada utilizadas por uma conta.

Unidades: `Percent`

Estatística válida:
+ `Maximum`: o percentual máximo de unidades de capacidade de leitura provisionada utilizadas pela conta.
+ `Minimum`: o percentual mínimo de unidades de capacidade de leitura provisionada utilizadas pela conta.
+ `Average`: o percentual médio de unidades de capacidade de leitura provisionada utilizadas pela conta. A métrica é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de leitura provisionada, essa estatística poderá não refletir a média real.

### AccountProvisionedWriteCapacityUtilization
<a name="AccountProvisionedWriteCapacityUtilization"></a>

A porcentagem de unidades de capacidade de gravação provisionada utilizadas por uma conta.

Unidades: `Percent`

Estatística válida:
+ `Maximum`: a porcentagem máxima de unidades de capacidade de gravação provisionada utilizadas pela conta.
+ `Minimum`: a porcentagem mínima de unidades de capacidade de gravação provisionada utilizadas pela conta.
+ `Average`: a porcentagem média de unidades de capacidade de gravação provisionada utilizadas pela conta. A métrica é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de gravação provisionada, essa estatística poderá não refletir a média real.

### AgeOfOldestUnreplicatedRecord
<a name="AgeOfOldestUnreplicatedRecord"></a>

O tempo decorrido desde que um registro que ainda deve ser replicado para o fluxo de dados do Kinesis apareceu pela primeira vez na tabela do DynamoDB.

Unidades: `Milliseconds`

Dimensões: `TableName, DelegatedOperation`

Estatística válida:
+ `Maximum`.
+ `Minimum`.
+ `Average`.

### ConditionalCheckFailedRequests
<a name="ConditionalCheckFailedRequests"></a>

O número de tentativas de executar gravações condicionais que tiveram falha. As operações `PutItem`, `UpdateItem` e `DeleteItem` permitem que você forneça uma condição lógica que deve ser avaliada como true antes que a operação possa prosseguir. Se essa condição for avaliada como false, `ConditionalCheckFailedRequests` será incrementado em uma unidade. `ConditionalCheckFailedRequests` também será incrementado em uma unidade para as instruções PartiQL Update e Delete em que uma condição lógica é fornecida e essa condição é avaliada como false. 

**nota**  
Uma gravação condicional com falha resultará em um erro HTTP 400 (Solicitação inválida). Esses eventos são refletidos na métrica`ConditionalCheckFailedRequests`, mas não na métrica `UserErrors`.

Unidades: `Count`

Dimensões: `TableName`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ConsumedChangeDataCaptureUnits
<a name="ConsumedChangeDataCaptureUnits"></a>

O número de unidades de captura de dados de alteração consumidas.

Unidades: `Count`

Dimensões: `TableName, DelegatedOperation`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`

### ConsumedReadCapacityUnits
<a name="ConsumedReadCapacityUnits"></a>

O número de unidades de capacidade de leitura consumidas ao longo do período especificado para a capacidade provisionada e sob demanda para que você possa acompanhar quanto do throughput foi usado. Você pode recuperar a capacidade de leitura total consumida para uma tabela e todos os seus índices secundários globais ou para um índice secundário global específico. Para obter mais informações, consulte [Modo de capacidade de Leitura/Gravação](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html).

A dimensão `TableName` retorna o `ConsumedReadCapacityUnits` para a tabela, mas não para nenhum índice secundário global. Para visualizar `ConsumedReadCapacityUnits` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`.

**nota**  
 Isso significa que picos curtos e intensos no consumo de capacidade que duram apenas um segundo podem não ser refletidos com precisão no grafo do CloudWatch, o que pode indicar uma menor taxa de consumo aparente naquele minuto.   
 Use a estatística `Sum` para calcular o throughput consumido. Por exemplo, obtenha o valor `Sum` ao longo de um intervalo de um minuto e divida-o pelo número de segundos em um minuto (60) para calcular a média de `ConsumedReadCapacityUnits` por segundo. Você pode comparar o valor calculado com o valor do throughput provisionado fornecido ao DynamoDB. 

Unidades: `Count`

Dimensões: `TableName, GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`: o número mínimo de unidades de capacidade de leitura consumidas por qualquer solicitação individual para a tabela ou o índice.
+ `Maximum`: o número máximo de unidades de capacidade de leitura consumidas por qualquer solicitação individual para a tabela ou o índice.
+ `Average`: a capacidade de leitura por solicitação média consumida.
**nota**  
O valor `Average` é influenciado por períodos de inatividade em que o valor da amostra será zero. 
+ `Sum`: o total de unidades de capacidade de leitura consumidas. Essa é a estatística mais útil para a métrica `ConsumedReadCapacityUnits`.
+ `SampleCount`: representa a frequência com que a métrica é emitida. Mesmo tabelas com tráfego zero terão a `SampleCount` emitida regularmente, mas os valores da amostra sempre serão zero.
**nota**  
O valor `SampleCount` é influenciado por períodos de inatividade em que o valor da amostra será zero. 

### ConsumedWriteCapacityUnits
<a name="ConsumedWriteCapacityUnits"></a>

O número de unidades de capacidade de gravação consumidas ao longo do período especificado para a capacidade provisionada e sob demanda para que você possa acompanhar quanto do throughput foi usado. Você pode recuperar a capacidade de gravação total consumida para uma tabela e todos os seus índices secundários globais ou para um índice secundário global específico. Para obter mais informações, consulte [Modo de capacidade de Leitura/Gravação](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html).

A dimensão `TableName` retorna o `ConsumedWriteCapacityUnits` para a tabela, mas não para nenhum índice secundário global. Para visualizar `ConsumedWriteCapacityUnits` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`. A dimensão `Source` pode exibir um destes dois valores: `Customer` e `GlobalTable`. As gravações replicadas terão `ConsumedWriteCapacityUnits` com a origem `GlobalTable`, mas as gravações em tabelas regionais terão `ConsumedWriteCapacityUnits` com a origem `Customer`.

**nota**  
Use a estatística `Sum` para calcular o throughput consumido. Por exemplo, apure o valor `Sum` ao longo de um intervalo de um minuto e divida-o pelo número de segundos em um minuto (60) para calcular a `ConsumedWriteCapacityUnits` média por segundo (reconhecendo que essa média não destaca picos grandes, mas picos breves na atividade de gravação que ocorreram durante esse minuto). Você pode comparar o valor calculado com o valor do throughput provisionado fornecido ao DynamoDB.

Unidades: `Count`

Dimensões: `TableName, GlobalSecondaryIndexName, Source`

Estatística válida: 
+ `Minimum`: o número mínimo de unidades de capacidade de gravação consumidas por qualquer solicitação individual para a tabela ou o índice.
+ `Maximum`: o número máximo de unidades de capacidade de gravação consumidas por qualquer solicitação individual para a tabela ou o índice.
+ `Average`: a capacidade de gravação por solicitação média consumida.
**nota**  
O valor `Average` é influenciado por períodos de inatividade em que o valor da amostra será zero.
+ `Sum`: o total de unidades de capacidade de gravação consumidas. Essa é a estatística mais útil para a métrica `ConsumedWriteCapacityUnits`.
+ `SampleCount`: representa a frequência com que a métrica é emitida. Mesmo tabelas com tráfego zero terão a `SampleCount` emitida regularmente, mas os valores da amostra sempre serão zero.
**nota**  
O valor `SampleCount` é influenciado por períodos de inatividade em que o valor da amostra será zero.

### FailedToReplicateRecordCount
<a name="FailedToReplicateRecordCount"></a>

Número de registros que o DynamoDB não conseguiu replicar no fluxo de dados do Kinesis.

Unidades: `Count`

Dimensões: `TableName`, `DelegatedOperation`

Estatística válida:
+ `Sum`

### MaxProvisionedTableReadCapacityUtilization
<a name="MaxProvisionedTableReadCapacityUtilization"></a>

O percentual da capacidade de leitura provisionada utilizada pela tabela de leitura provisionada mais alta ou pelo índice secundário global de uma conta.

Unidades: `Percent`

Estatística válida:
+ `Maximum`: a porcentagem máxima de unidades de capacidade de leitura provisionada utilizada pela tabela de leitura provisionada mais alta ou pelo índice secundário global de uma conta.
+ `Minimum`: a porcentagem mínima de unidades de capacidade de leitura provisionada utilizada pela tabela de leitura provisionada mais alta ou pelo índice secundário global de uma conta.
+ `Average`: a porcentagem média de unidades capacidade de leitura provisionada utilizadas pela tabela de gravação provisionada mais alta ou pelo índice secundário global da conta. A métrica é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de leitura provisionada, essa estatística poderá não refletir a média real.

### MaxProvisionedTableWriteCapacityUtilization
<a name="MaxProvisionedTableWriteCapacityUtilization"></a>

A porcentagem da capacidade de gravação provisionada utilizada pela tabela de gravação provisionada mais alta ou pelo índice secundário global de uma conta.

Unidades: `Percent`

Estatística válida:
+ `Maximum`: a porcentagem máxima de unidades capacidade de gravação provisionada utilizadas pela tabela de gravação provisionada mais alta ou pelo índice secundário global de uma conta.
+ `Minimum`: a porcentagem mínima de unidades capacidade de gravação provisionada utilizadas pela tabela de gravação provisionada mais alta ou pelo índice secundário global de uma conta.
+ `Average`: a porcentagem média de unidades capacidade de gravação provisionada utilizadas pela tabela de gravação provisionada mais alta ou pelo índice secundário global da conta. A métrica é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de gravação provisionada, essa estatística poderá não refletir a média real.

### OnDemandMaxReadRequestUnits
<a name="OnDemandMaxReadRequestUnits"></a>

O número de unidades de solicitação de leitura sob demanda especificado para uma tabela ou um índice secundário global.

Para visualizar `OnDemandMaxReadRequestUnits` referente a uma tabela, é necessário especificar `TableName`. Para visualizar `OnDemandMaxReadRequestUnits` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`.

Unidades: contagem

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`: a configuração mais baixa para unidades de solicitação de leitura sob demanda. Se você usar `UpdateTable` para aumentar as unidades de solicitação de leitura, essa métrica mostrará o valor mais baixo de `ReadRequestUnits` sob demanda durante esse período.
+ `Maximum`: a configuração mais alta para unidades de solicitação de leitura sob demanda. Se você usar `UpdateTable` para reduzir as unidades de solicitação de leitura, essa métrica mostrará o valor mais alto de `ReadRequestUnits` sob demanda durante esse período.
+ `Average`: a média de unidades de solicitação de leitura sob demanda. A métrica `OnDemandMaxReadRequestUnits` é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de solicitação de leitura sob demanda, essa estatística poderá não refletir a média real.

### OnDemandMaxWriteRequestUnits
<a name="OnDemandMaxWriteRequestUnits"></a>

O número de unidades de solicitação de gravação sob demanda especificado para uma tabela ou um índice secundário global.

Para visualizar `OnDemandMaxWriteRequestUnits` referente a uma tabela, é necessário especificar `TableName`. Para visualizar `OnDemandMaxWriteRequestUnits` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`: a configuração mais baixa para unidades de solicitação de gravação sob demanda. Se você usar `UpdateTable` para aumentar as unidades de solicitação de gravação, essa métrica mostrará o valor mais baixo de `WriteRequestUnits` sob demanda durante esse período.
+ `Maximum`: a configuração mais alta para unidades de solicitação de gravação sob demanda. Se você usar `UpdateTable` para reduzir as unidades de solicitação de gravação, essa métrica mostrará o valor mais alto de `WriteRequestUnits` sob demanda durante esse período.
+ `Average`: a média de unidades de solicitação de gravação sob demanda. A métrica `OnDemandMaxWriteRequestUnits` é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de solicitação de gravação sob demanda, essa estatística poderá não refletir a média real.

### OnlineIndexConsumedWriteCapacity
<a name="OnlineIndexConsumedWriteCapacity"></a>

Essa métrica deve mostrar 0 durante a criação do índice. Antes, essa métrica mostrava o número de unidades de capacidade de gravação consumidas ao adicionar um novo índice secundário global a uma tabela.

Unidades: `Count`

Dimensões: `TableName, GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### OnlineIndexPercentageProgress
<a name="OnlineIndexPercentageProgress"></a>

A porcentagem de conclusão quando um novo índice secundário global está sendo adicionado a uma tabela. O DynamoDB deve primeiro alocar recursos para o novo índice e, em seguida, alocar atributos da tabela para o índice. Para tabelas grandes, esse processo pode ser demorado. Você deve monitorar essa estatística para visualizar o progresso relativo à medida que o DynamoDB constrói o índice.

Unidades: `Count`

Dimensões: `TableName, GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### OnlineIndexThrottleEvents
<a name="OnlineIndexThrottleEvents"></a>

Essa métrica deve mostrar 0 durante a criação do índice. Antes, essa métrica mostrava o número de eventos de gravação com controle de utilização ocorridos ao adicionar um novo índice secundário global a uma tabela. 

Unidades: `Count`

Dimensões: `TableName, GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### PendingReplicationCount
<a name="PendingReplicationCount"></a>

Métrica para [Global Tables versão 2017.11.29 (herdada)](globaltables.V1.md) (somente tabelas globais). O número de atualizações de itens que foram gravadas em uma tabela de réplica, mas ainda não foram gravadas em outra réplica na tabela global.

Unidades: `Count` 

Dimensões: `TableName, ReceivingRegion`

Estatística válida:
+ `Average`
+ `Sample Count`
+ `Sum`

### ProvisionedReadCapacityUnits
<a name="ProvisionedReadCapacityUnits"></a>

O número de unidades de capacidade de leitura provisionada para uma tabela ou um índice secundário global. A dimensão `TableName` retorna o `ProvisionedReadCapacityUnits` para a tabela, mas não para nenhum índice secundário global. Para visualizar `ProvisionedReadCapacityUnits` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`.

Unidades:`Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`: a configuração mais baixa para a capacidade de leitura provisionada. Se você usar `UpdateTable` para aumentar a capacidade de leitura, esta métrica mostrará o valor mais baixo de `ReadCapacityUnits` provisionado durante esse período.
+ `Maximum`: a configuração mais alta para a capacidade de leitura provisionada. Se você usar `UpdateTable` para diminuir a capacidade de leitura, esta métrica mostrará o valor mais alto de `ReadCapacityUnits` provisionado durante esse período.
+ `Average`: a capacidade média de leitura provisionada. A métrica `ProvisionedReadCapacityUnits` é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de leitura provisionada, essa estatística poderá não refletir a média real.

### ProvisionedWriteCapacityUnits
<a name="ProvisionedWriteCapacityUnits"></a>

O número de unidades de capacidade de gravação provisionada para uma tabela ou um índice secundário global.

A dimensão `TableName` retorna o `ProvisionedWriteCapacityUnits` para a tabela, mas não para nenhum índice secundário global. Para visualizar `ProvisionedWriteCapacityUnits` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Minimum`: a configuração mais baixa para capacidade de gravação provisionada. Se você usar `UpdateTable` para aumentar a capacidade de gravação, esta métrica mostrará o valor mais baixo de `WriteCapacityUnits` provisionado durante esse período.
+ `Maximum`: a configuração mais alta para a capacidade de gravação provisionada. Se você usar `UpdateTable` para diminuir a capacidade de gravação, esta métrica mostrará o valor mais alto de `WriteCapacityUnits` provisionado durante esse período.
+ `Average`: a capacidade média de gravação provisionada. A métrica `ProvisionedWriteCapacityUnits` é publicada para intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de gravação provisionada, essa estatística poderá não refletir a média real.

### ReadAccountLimitThrottleEvents
<a name="ReadAccountLimitThrottleEvents"></a>

O número de solicitações de leitura com controle de utilização devido aos limites da conta.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### ReadKeyRangeThroughputThrottleEvents
<a name="ReadKeyRangeThroughputThrottleEvents"></a>

Número de solicitações de leitura com controle de utilização devido aos limites de partição.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### ReadMaxOnDemandThroughputThrottleEvents
<a name="ReadMaxOnDemandThroughputThrottleEvents"></a>

O número de solicitações de leitura com controle de utilização devido ao throughput máximo sob demanda.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### ReadProvisionedThroughputThrottleEvents
<a name="ReadProvisionedThroughputThrottleEvents"></a>

O número de solicitações de leitura com controle de utilização devido aos limites de throughput provisionado.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### ReadThrottleEvents
<a name="ReadThrottleEvents"></a>

Solicitações ao DynamoDB que excedem as unidades de capacidade de leitura provisionada para uma tabela ou um índice secundário global.

Uma única solicitação pode resultar em vários eventos. Por exemplo, um `BatchGetItem` que lê 10 itens é processado como 10 eventos `GetItem`. Para cada evento, `ReadThrottleEvents` será incrementado em uma unidade se esse evento for limitado. A métrica `ThrottledRequests` para todo o `BatchGetItem` não será incrementada, a menos que *todos os 10* dos eventos `GetItem`sejam limitados.

A dimensão `TableName` retorna o `ReadThrottleEvents` para a tabela, mas não para nenhum índice secundário global. Para visualizar `ReadThrottleEvents` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `SampleCount`
+ `Sum`

### ReplicationLatency
<a name="ReplicationLatency"></a>

(Esta métrica é para tabelas globais do DynamoDB.) O tempo decorrido entre um item atualizado aparecer no fluxo do DynamoDB para uma tabela-réplica e aparecer em outra réplica na tabela global.

Unidades: `Milliseconds` 

Dimensões: `TableName, ReceivingRegion`

Estatística válida:
+ `Average`
+ `Minimum`
+ `Maximum`

### ReturnedBytes
<a name="ReturnedBytes"></a>

O número de bytes retornados por operações `GetRecords` (Amazon DynamoDB Streams) durante o período especificado.

Unidades: `Bytes`

Dimensões: `Operation, StreamLabel, TableName`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ReturnedItemCount
<a name="ReturnedItemCount"></a>

A quantidade de itens retornados por operações `Query`, `Scan` ou `ExecuteStatement` (selecionar) durante o período especificado.

O número de itens *retornados* não necessariamente é o mesmo que o número de itens avaliados. Por exemplo, suponha que você tenha solicitado um `Scan` em uma tabela ou um índice que tinha 100 itens, mas especificou um `FilterExpression`que reduziu os resultados para que apenas 15 itens fossem retornados. Nesse caso, a resposta de `Scan` conteria um `ScanCount` de 100 e um `Count` de 15 itens retornados.

Unidades: `Count`

Dimensões: `TableName, Operation`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### ReturnedRecordsCount
<a name="ReturnedRecordsCount"></a>

O número de registros de fluxo retornados por operações `GetRecords` (Amazon DynamoDB Streams) durante o período especificado.

Unidades: `Count`

Dimensões: `Operation, StreamLabel, TableName`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`
+ `Sum`

### SuccessfulRequestLatency
<a name="SuccessfulRequestLatency"></a>

As solicitações bem-sucedidas para o DynamoDB ou Amazon DynamoDB Streams durante o período especificado. O `SuccessfulRequestLatency` pode fornecer dois tipos diferentes de informações:
+ O tempo decorrido para solicitações bem-sucedidas (`Minimum`, `Maximum`, `Sum`, `Average` ou `Percentile`).
+ O número de solicitações bem-sucedidas (`SampleCount`).

`SuccessfulRequestLatency` reflete a atividade somente no DynamoDB ou no Amazon DynamoDB Streams e não leva em conta a latência da rede nem a atividade no lado do cliente. 

**nota**  
Para analisar valores de percentis personalizados (como p99,9), você pode inserir manualmente o percentil desejado (p. ex., p99,9) no campo de estatística de métrica do CloudWatch. Isso permite avaliar as distribuições de latência que transcendem os percentis padrão listados no menu suspenso.

Unidades: `Milliseconds` 

Dimensões: `TableName, Operation, StreamLabel`

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Sum`
+ `Average`
+ `Percentile`
+ `SampleCount`

### SystemErrors
<a name="SystemErrors"></a>

As solicitações ao DynamoDB ou Amazon DynamoDB Streams que geram um código de status HTTP 500 durante o período especificado. Um HTTP 500 geralmente indica um erro de serviço interno.

**nota**  
Quando o DynamoDB exibe um erro do sistema (HTTP 500), a maioria dos SDKs da AWS executa automaticamente um número configurável de novas tentativas. Se o problema for resolvido durante uma nova tentativa, a aplicação continuará sem ver o erro e você pode notar um aumento na latência percebida do lado do cliente. Se o erro persistir após todas as tentativas, ele se propagará para o código da aplicação. 

Unidades: `Count`

Dimensões: `TableName, Operation`

Estatística válida:
+ `Sum`
+ `SampleCount`

### TimeToLiveDeletedItemCount
<a name="TimeToLiveDeletedItemCount"></a>

A quantidade de itens excluídos por vida útil (TTL) durante o período especificado. Essa métrica ajuda a monitorar a taxa de exclusões de TTL em sua tabela. 

Unidades: `Count`

Dimensões: TableName

Estatística válida:
+ `Sum`

### ThrottledPutRecordCount
<a name="ThrottledPutRecordCount"></a>

Número de registros que foram suprimidos pelo seu fluxo de dados do Kinesis devido a capacidade insuficiente do Kinesis Data Streams.

Unidades: `Count`

Dimensões: TableName, DelegateDoperation

Estatística válida:
+ `Minimum`
+ `Maximum`
+ `Average`
+ `SampleCount`

### ThrottledRequests
<a name="ThrottledRequests"></a>

Solicitações ao DynamoDB que excedem os limites de throughput provisionado em um recurso (como uma tabela ou um índice).

`ThrottledRequests` será incrementado em uma unidade se um evento em uma solicitação exceder o limite de throughput provisionado. Por exemplo, se você atualizar um item em uma tabela com índices secundários globais, haverá vários eventos — uma gravação na tabela e uma gravação em cada índice. Se um ou mais desses eventos for limitado, `ThrottledRequests` será incrementado em uma unidade.

**nota**  
Em uma solicitação de lote (`BatchGetItem` ou `BatchWriteItem`), `ThrottledRequests` será incrementado somente se houver limitação para *cada uma* das solicitações no lote.  
Se qualquer solicitação individual dentro do lote for limitada, uma das seguintes métricas será incrementada:  
`ReadThrottleEvents`: para um evento `GetItem` limitado em `BatchGetItem`.
`WriteThrottleEvents`: para um evento `PutItem` ou `DeleteItem` limitado em `BatchWriteItem`.

Para ter uma ideia sobre qual evento está controlando a utilização de uma solicitação, compare `ThrottledRequests` com `ReadThrottleEvents` e `WriteThrottleEvents` para a tabela e seus índices.

**nota**  
Uma solicitação com limitação resultará em um código de status HTTP 400. Esses eventos são refletidos na métrica `ThrottledRequests`, mas não na métrica `UserErrors`.

Unidades: `Count`

Dimensões: `TableName, Operation`

Estatística válida:
+ `Sum`
+ `SampleCount`

### TransactionConflict
<a name="TransactionConflict"></a>

Solicitações em nível de item rejeitadas devido a conflitos transacionais entre solicitações concorrentes nos mesmos itens. Para obter mais informações, consulte [Tratamento de conflitos de transações no DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-conflict-handling). 

Unidades: `Count`

Dimensões: `TableName`

Estatística válida:
+ `Sum`: o número de solicitações rejeitadas em nível do item devido a conflitos de transação.
**nota**  
Se várias solicitações de nível de item dentro de uma chamada para `TransactWriteItems` ou `TransactGetItems` foram rejeitadas, `Sum` será incrementado em uma unidade para cada solicitação `Put`, `Update`, `Delete` ou `Get` em nível de item.
+ `SampleCount`: o número de solicitações rejeitadas devido a conflitos de transação.
**nota**  
Se várias solicitações de nível de item dentro de uma chamada para `TransactWriteItems` ou `TransactGetItems` forem rejeitadas, `SampleCount`só será incrementado em uma unidade.
+ `Min`: o número mínimo de solicitações em nível de item rejeitadas em uma chamada para `TransactWriteItems`, `TransactGetItems`, `PutItem`, `UpdateItem` ou `DeleteItem`.
+ `Max`: o número máximo de solicitações em nível de item rejeitadas em uma chamada para `TransactWriteItems`, `TransactGetItems`, `PutItem`, `UpdateItem` ou `DeleteItem`.
+ `Average`: o número médio de solicitações em nível de item rejeitadas em uma chamada para `TransactWriteItems`, `TransactGetItems`, `PutItem`, `UpdateItem` ou `DeleteItem`. 

### UserErrors
<a name="UserErrors"></a>

Solicitações ao DynamoDB ou Amazon DynamoDB Streams que geram um código de status HTTP 400 durante o período especificado. Um código HTTP 400 geralmente indica um erro no lado do cliente, como uma combinação inválida de parâmetros, uma tentativa de atualizar uma tabela inexistente ou uma assinatura de solicitação incorreta.

 Alguns exemplos de exceções que registrarão em log métricas relacionadas a `UserErrors`: 
+ `ResourceNotFoundException`
+ `ValidationException`
+ `TransactionConflict`

Todos esses eventos são refletidos na métrica `UserErrors`, com exceção de:
+ *ProvisionedThroughputExceededException*: consulte a métrica `ThrottledRequests` nesta seção.
+ *ConditionalCheckFailedException*: consulte a métrica `ConditionalCheckFailedRequests` nesta seção.

`UserErrors` representa o agregado de erros HTTP 400 para solicitações do DynamoDB ou do Amazon DynamoDB Streams para a região da AWS atual e a conta da AWS atual.

Unidades: `Count`

Estatística válida:
+ `Sum`
+ `SampleCount`

### WriteAccountLimitThrottleEvents
<a name="WriteAccountLimitThrottleEvents"></a>

O número de solicitações de gravação com controle de utilização devido aos limites da conta.

Unidades: `Count`

Dimensões: `TableName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### WriteKeyRangeThroughputThrottleEvents
<a name="WriteKeyRangeThroughputThrottleEvents"></a>

O número de solicitações de gravação com controle de utilização devido aos limites de partição.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### WriteMaxOnDemandThroughputThrottleEvents
<a name="WriteMaxOnDemandThroughputThrottleEvents"></a>

O número de solicitações de gravação com controle de utilização devido ao throughput máximo sob demanda.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### WriteProvisionedThroughputThrottleEvents
<a name="WriteProvisionedThroughputThrottleEvents"></a>

O número de solicitações de gravação com controle de utilização devido aos limites de throughput provisionado.

Unidades: `Count`

Dimensões: `TableName`, `GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`: número total de eventos com controle de utilização.
+ `SampleCount`: número de ocorrências de controle de utilização.
+ `Minimum`: número mínimo de eventos com controle de utilização em qualquer amostra.
+ `Maximum`: número máximo de eventos com controle de utilização em qualquer amostra.

### WriteThrottleEvents
<a name="WriteThrottleEvents"></a>

Solicitações ao DynamoDB que excedem as unidades de capacidade de gravação provisionada para uma tabela ou um índice secundário global.

Uma única solicitação pode resultar em vários eventos. Por exemplo, uma solicitação `PutItem` em uma tabela com três índices secundários globais resultaria em quatro eventos: a gravação da tabela e cada uma das três gravações do índice. Para cada evento, a métrica `WriteThrottleEvents` será incrementada em uma unidade se esse evento for limitado. Para solicitações `PutItem` individuais, se houver limitação para qualquer um dos eventos, `ThrottledRequests` também será incrementado em uma unidade. Para `BatchWriteItem`, a métrica `ThrottledRequests` para todo o `BatchWriteItem` não será incrementada, a menos que todos os eventos `PutItem` ou `DeleteItem` individuais tenham limitação.

A dimensão `TableName` retorna o `WriteThrottleEvents` para a tabela, mas não para nenhum índice secundário global. Para visualizar `WriteThrottleEvents` para um índice secundário global, você deve especificar `TableName` e `GlobalSecondaryIndexName`. 

Unidades: `Count`

Dimensões: `TableName, GlobalSecondaryIndexName`

Estatística válida:
+ `Sum`
+ `SampleCount`

### Métricas de uso
<a name="w2aac41c15c13b7c11"></a>

As métricas de uso no CloudWatch permitem gerenciar o uso visualizando proativamente métricas no console do CloudWatch, criando painéis personalizados, detectando alterações na atividade com a detecção de anomalias do CloudWatch e configurando alarmes que avisam quando o uso se aproxima de um limite.

O DynamoDB também integra essas métricas de uso ao Service Quotas. É possível usar o CloudWatch para gerenciar o uso das service quotas por sua conta. Para obter mais informações, consulte [Visualizar service quotas e definir alarmes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Quotas-Visualize-Alarms.html).

**Topics**<a name="ddb-usage-metrics.title"></a>
+ [AccountProvisionedWriteCapacityUnits](#w2aac41c15c13b7c11b9)
+ [AccountProvisionedReadCapacityUnits](#w2aac41c15c13b7c11c11)
+ [TableCount](#w2aac41c15c13b7c11c13)

#### AccountProvisionedWriteCapacityUnits
<a name="w2aac41c15c13b7c11b9"></a>

A soma de unidades de capacidade de gravação provisionadas para todos os índices secundários globais e tabelas de uma conta.

Unidades: `Count`

Estatística válida:
+ `Minimum`: o menor número de unidades de capacidade de gravação provisionadas durante um período. 
+ `Maximum`: o maior número de unidades de capacidade de gravação provisionadas durante um período. 
+ `Average`: o número médio de unidades de capacidade de gravação provisionadas durante um período. 

A métrica é publicada em intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de gravação provisionada, essa estatística poderá não refletir a média real.

#### AccountProvisionedReadCapacityUnits
<a name="w2aac41c15c13b7c11c11"></a>

A soma de unidades de capacidade de leitura provisionadas para todos os índices secundários globais e tabelas de uma conta.

Unidades: `Count`

Estatística válida:
+ `Minimum`: o menor número de unidades de capacidade de leitura provisionadas durante um período. 
+ `Maximum`: o maior número de unidades de capacidade de leitura provisionadas durante um período.
+ `Average`: o número médio de unidades de capacidade de leitura provisionadas durante um período.

A métrica é publicada em intervalos de cinco minutos. Portanto, se você ajustar rapidamente as unidades de capacidade de leitura provisionada, essa estatística poderá não refletir a média real.

#### TableCount
<a name="w2aac41c15c13b7c11c13"></a>

O número de tabelas ativas de uma conta.

Unidades: `Count`

Estatística válida:
+ `Minimum`: o menor número de tabelas durante um período.
+ `Maximum`: o maior número de tabelas durante um período.
+ `Average`: o número médio de tabelas durante um período. 

### FaultInjectionServiceInducedErrors
<a name="FaultInjectionServiceInducedErrors"></a>

As solicitações ao DynamoDB que geram um código de status HTTP 500 simulado durante o período especificado e durante a recuperação em consequência do experimento do AWS FIS.

Unidades: `Count`

Dimensões: `TableName`, `Operation`

Estatística válida:
+ `Sum` 
+ `SampleCount` 

## Informações sobre métricas e dimensões para o DynamoDB
<a name="ddb-understanding-metric-dimensions"></a>

As métricas para o DynamoDB são qualificadas de acordo com os valores para a conta, nome da tabela, nome do índice secundário global ou operação. Você pode usar o console do CloudWatch para recuperar dados do DynamoDB em qualquer uma das dimensões da tabela abaixo.

**Topics**<a name="available-metrics.title"></a>
+ [DelegatedOperation](#w2aac41c15c13b9b7)
+ [GlobalSecondaryIndexName](#w2aac41c15c13b9b9)
+ [Operation](#w2aac41c15c13b9c11)
+ [OperationType](#w2aac41c15c13b9c13)
+ [Verb](#w2aac41c15c13b9c15)
+ [ReceivingRegion](#w2aac41c15c13b9c17)
+ [StreamLabel](#w2aac41c15c13b9c19)
+ [TableName](#w2aac41c15c13b9c21)

### DelegatedOperation
<a name="w2aac41c15c13b9b7"></a>

Essa dimensão limita os dados às operações que o DynamoDB executa em seu nome. As seguintes operações são capturadas:
+ Alterar captura de dados para o Kinesis Data Streams.

### GlobalSecondaryIndexName
<a name="w2aac41c15c13b9b9"></a>

Esta dimensão limita os dados a um índice secundário global em uma tabela. Se você especificar `GlobalSecondaryIndexName`, também deverá especificar `TableName`.

### Operation
<a name="w2aac41c15c13b9c11"></a>

Esta dimensão limita os dados a uma das seguintes operações do DynamoDB:
+ `PutItem`
+ `DeleteItem`
+ `UpdateItem`
+ `GetItem`
+ `BatchGetItem`
+ `Scan`
+ `Query`
+ `BatchWriteItem`
+ `TransactWriteItems`
+ `TransactGetItems`
+ `ExecuteTransaction`
+ `BatchExecuteStatement`
+ `ExecuteStatement`

Além disso, você pode limitar os dados à seguinte operação do Amazon DynamoDB Streams:
+ `GetRecords`

### OperationType
<a name="w2aac41c15c13b9c13"></a>

Esta dimensão limita os dados a um dos seguintes tipos de operação:
+ `Read`
+ `Write`

Esta dimensão é emitida para solicitações `ExecuteTransaction` e `BatchExecuteStatement`.

### Verb
<a name="w2aac41c15c13b9c15"></a>

Esta dimensão limita os dados a um dos seguintes verbos PartiQL do DynamoDB:
+ Inserir: `PartiQLInsert`
+ Selecionar: `PartiQLSelect`
+ Atualizar: `PartiQLUpdate`
+ Excluir: `PartiQLDelete`

Essa dimensão é emitida para a operação `ExecuteStatement`.

### ReceivingRegion
<a name="w2aac41c15c13b9c17"></a>

Esta dimensão limita os dados a uma região da AWS específica. Ela é usada com métricas provenientes de tabelas de réplica em uma tabela global do DynamoDB.

### StreamLabel
<a name="w2aac41c15c13b9c19"></a>

Esta dimensão limita os dados a um rótulo de fluxo específico. Ela é usada com métricas provenientes de operações `GetRecords` do Amazon DynamoDB Streams

### TableName
<a name="w2aac41c15c13b9c21"></a>

Esta dimensão limita os dados a uma tabela específica. Este valor pode ser qualquer nome de tabela na região atual e na conta da AWS atual.

# 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
   ```