

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á.

# Monitoramento com o Performance Insights
<a name="performance-insights"></a>

O Performance Insights adiciona atributos de monitoramento existentes do Amazon DocumentDB para ilustrar o desempenho do cluster e ajudar você a analisar quaisquer problemas que o afetem. Com o painel do Performance Insights, você pode visualizar a carga do banco de dados e filtrá-la por esperas, instruções de consulta, hosts ou aplicação.

**nota**  
O Performance Insights está disponível somente para clusters baseados em instâncias do Amazon DocumentDB 3.6, 4.0, 5.0 e 8.0.

**Como isso é útil?**
+ Visualize a performance do banco de dados — Visualize a carga para determinar quando e onde ela está no banco de dados
+ Determine o que está causando a carga no banco de dados: determine quais consultas, hosts e aplicações estão contribuindo para a carga na sua instância
+ Determine quando há carga em seu banco de dados — amplie o painel Performance Insights para se concentrar em eventos específicos ou diminua o zoom para observar as tendências em um período maior
+ Alerta sobre a carga do banco de dados — Acesse novas métricas de carga do banco de dados automaticamente de CloudWatch onde você pode monitorar as métricas de carga do banco de dados junto com outras métricas do Amazon DocumentDB e definir alertas sobre elas

**Quais são as limitações do Amazon DocumentDB Performance Insights?**
+ Performance Insights nas regiões AWS GovCloud (Leste dos EUA) e AWS GovCloud (Oeste dos EUA) não estão disponíveis
+ O Performance Insights for Amazon DocumentDB retém até 7 dias de dados de performance
+ Consultas com mais de 1.024 bytes não são agregadas nos Insights de performance

**Topics**
+ [Conceitos de Performance Insights](performance-insights-concepts.md)
+ [Ativar e desativar o Performance Insights](performance-insights-enabling.md)
+ [Configurar políticas de acesso para o Performance Insights](performance-insights-policies.md)
+ [Análise de métricas usando o painel do Performance Insights](performance-insights-analyzing.md)
+ [Recuperar métricas com a API do Performance Insights](performance-insights-metrics.md)
+ [CloudWatch Métricas da Amazon para Performance Insights](performance-insights-cloudwatch.md)
+ [Métricas de contadores do Performance Insights](performance-insights-counter-metrics.md)

# Conceitos de Performance Insights
<a name="performance-insights-concepts"></a>

**Topics**
+ [Média de sessões ativas](#performance-insights-concepts-sessions)
+ [Dimensões](#performance-insights-concepts-dimensions)
+ [Máx. vCPU](#performance-insights-concepts-maxvcpu)

## Média de sessões ativas
<a name="performance-insights-concepts-sessions"></a>

Database load (DB load) (Carga do banco de dados) mede o nível de atividade no seu banco de dados. A métrica chave do Performance Insights é `DB Load`, que é coletada a cada segundo. A unidade para a métrica `DBLoad` é a *Average Active Sessions (AAS)* para uma instância do Amazon DocumentDB.

Uma sessão *ativa* é uma conexão que enviou trabalho para a instância do Amazon DocumentDB e está aguardando uma resposta. Por exemplo, se você enviar uma consulta a uma instância do Amazon DocumentDB, a sessão do banco de dados estará ativa enquanto a instância estiver processando a consulta.

Para obter a média de sessões ativas, o Performance Insights faz uma amostra do número de sessões executando simultaneamente uma consulta. O AAS é o número total de sessões divididas pelo número total de amostras. A tabela a seguir mostra 5 amostras consecutivas de uma consulta em execução.


| Amostra | Número de sessões que executam a consulta | AAS | Cálculo | 
| --- | --- | --- | --- | 
|  1  |  2  |  2  |  2 sessões/1 amostra  | 
|  2  |  0  |  1  |  2 sessões/2 amostras  | 
|  3  |  4  |  2  |  6 sessões/3 amostras  | 
|  4  |  0  |  1.5  |  6 sessões/4 amostras  | 
|  5  |  4  |  2  |  10 sessões/5 amostras  | 

No exemplo anterior, a carga do banco de dados para o intervalo de tempo 1-5 é 2 AAS. Um aumento na carga do banco de dados significa que, em média, mais sessões estão sendo executadas no banco de dados.

## Dimensões
<a name="performance-insights-concepts-dimensions"></a>

A métrica `DB Load` é diferente das outras métricas da série temporal, pois você pode fragmentá-la em subcomponentes chamados de dimensões. É possível pensar em dimensões como categorias para as diferentes características da métrica `DB Load`. Quando você está diagnosticando problemas de performance, as dimensões mais úteis são **estados de espera** e **consulta principal**.

**estados de espera**  
Um *evento de espera* faz com que uma instrução de consulta aguarde que um evento específico aconteça antes que possa continuar a execução. Por exemplo, a execução da instrução de consulta pode aguardar até que um recurso bloqueado seja desbloqueado. Ao combinar `DB Load` com estados de espera, é possível obter uma imagem completa do estado da sessão. Aqui estão vários estados de espera do Amazon DocumentDB:


| Estado de espera do Amazon DocumentDB | Descrição do estado de espera | 
| --- | --- | 
|  Latch  |  O estado de espera Latch ocorre quando a sessão está aguardando para paginar o buffer pool. A entrada e saída frequentes do buffer pool podem ocorrer com mais frequência quando há consultas grandes e frequentes sendo processadas pelo sistema, varreduras de coleção ou quando o buffer pool é muito pequeno para lidar com o conjunto de trabalho.  | 
| CPU |  O estado de espera da CPU ocorre quando a sessão está aguardando a CPU.  | 
|  CollectionLock  |  O estado de CollectionLock espera ocorre quando a sessão está aguardando para adquirir um bloqueio na coleção. Esses eventos ocorrem quando há operações de DDL na coleção.  | 
| DocumentLock |  O estado de DocumentLock espera ocorre quando a sessão está aguardando para obter um bloqueio em um documento. Um alto número de gravações simultâneas no mesmo documento contribuirá para mais estados de DocumentLock espera nesse documento.   | 
|  SystemLock  |  O estado de SystemLock espera ocorre quando a sessão está aguardando no sistema. Isso pode ocorrer quando há consultas frequentes de longa duração, transações de longa duração ou alta simultaneidade no sistema.  | 
|  IO  |  O estado de espera IO ocorre quando a sessão está aguardando pela conclusão de IO.  | 
|  BufferLock  |  O estado de BufferLock espera ocorre quando a sessão está aguardando para adquirir um bloqueio em uma página compartilhada no buffer. BufferLockos estados de espera podem ser prolongados se outros processos mantiverem cursores abertos nas páginas solicitadas.   | 
|  LowMemThrottle  |  O estado de LowMemThrottle espera ocorre quando a sessão está esperando devido à forte pressão de memória na instância do Amazon DocumentDB. Se esse estado persistir por muito tempo, considere escalar a instância para fornecer memória adicional. Para obter mais informações, consulte [Regulador de recursos](https://docs.aws.amazon.com/documentdb/latest/developerguide/how-it-works.html).  | 
|  BackgroundActivity  |  O estado de BackgroundActivity espera ocorre quando a sessão está aguardando processos internos do sistema.  | 
|  Outros  |  O estado de espera Outros é um estado de espera interno. Se esse estado persistir por muito tempo, considere encerrar essa consulta. Para mais informações, consulte [Como faço para localizar e encerrar consultas bloqueadas ou de longa execução?](https://docs.aws.amazon.com/documentdb/latest/developerguide/user_diagnostics.html#user_diagnostics-query_terminating.html)  | 

**Principais consultas**  
Enquanto os eventos de espera mostram gargalos, as principais consultas mostram quais consultas estão contribuindo mais para a carga do banco de dados. Por exemplo, muitas consultas podem estar atualmente em execução no banco de dados, mas uma única consulta pode consumir 99% da carga do banco de dados. Nesse caso, a carga alta pode indicar um problema com a consulta.

## Máx. vCPU
<a name="performance-insights-concepts-maxvcpu"></a>

No painel, o gráfico **Carga de banco de dados** coleta, agrega e exibe informações da sessão. Para ver se as sessões ativas estão excedendo o máximo de CPU, observe sua relação com a linha **Máx. vCPU**. O valor de **Máx. vCPU** é determinado pelo número de núcleos de vCPU (CPUs virtuais) da instância do Amazon DocumentDB.

Se a carga de banco de dados estiver com frequência acima da linha **Máx. vCPU** e o estado de espera primário for CPU, isso indicará que a CPU está sobrecarregada. Nesse caso, convém controlar a utilização as conexões com a instância, ajustar todas as consultas com uma alta carga de CPU ou considerar uma classe de instância maior. As instâncias altas e consistentes de qualquer estado de espera indicam que pode haver problemas de gargalos ou de contenção de recursos que você deve resolver. Isso pode ser válido mesmo quando a carga do banco de dados não ultrapassa a linha de **Máx. vCPU**.

# Ativar e desativar o Performance Insights
<a name="performance-insights-enabling"></a>

Para usar o Performance Insights, ative-o em sua instância de banco de dados. É possível desativá-lo mais tarde. Habilitar e desabilitar o Performance Insights não causa tempo de inatividade, reinicialização ou failover.

O agente do Performance Insights consome CPU e memória limitadas no host do banco de dados. Quando a carga do banco de dados é alta, o agente limita o impacto sobre a performance coletando dados com menos frequência.

## Habilitar o Performance Insights ao criar um cluster
<a name="performance-insights-enabling-create-instance"></a>

No console, você pode habilitar ou desabilitar o Performance Insights ao criar ou modificar uma nova instância de banco de dados.

### Usando o Console de gerenciamento da AWS
<a name="create-instance-console"></a>

No console, você pode ativar o recurso Performance Insights ao criar um cluster do Amazon DocumentDB. Ao criar um novo cluster do Amazon DocumentDB, ative o Performance Insights selecionando **Ativar o Performance Insights** na seção **Performance Insights**.

**Instruções do console**

1. Para criar um cluster, siga as instruções para [Criar um cluster do Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-create.html).

1. Na seção Performance Insights, escolha **Habilitar Performance Insights**.  
![\[A seção Insights de performance com Habilitar Insights de performance selecionado.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/select-performance-insights.png)
**nota**  
O período de retenção de dados do Performance Insights será de sete dias.

   ** AWS KMS chave** — Especifique sua chave AWS KMS. O Performance Insights criptografa todos os dados potencialmente confidenciais usando sua AWS KMS chave. Os dados são criptografados em repouso e em trânsito. Para obter mais informações, consulte Configurando uma AWS AWS KMS política para o Performance Insights.

## Habilitar e desabilitar ao modificar uma instância
<a name="performance-insights-enabling-modify-instance"></a>

É possível modificar uma instância de banco de dados para habilitar ou desabilitar o Performance Insights usando o console ou AWS CLI.

------
#### [ Using the Console de gerenciamento da AWS ]

**Instruções do console**

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

1. Escolha **Clusters**.

1. Escolha uma instância de banco de dados e **Modificar**.

1. Na seção Performance Insights, escolha **Habilitar o Performance Insights** ou **Desabilitar o Performance Insights**.
**nota**  
Se você escolher **Ativar Performance Insights**, poderá especificar sua AWS AWS KMS chave. O Performance Insights criptografa todos os dados potencialmente confidenciais usando sua AWS KMS chave. Os dados são criptografados em repouso e em trânsito. Para obter mais informações, consulte [Criptografando o Amazon DocumentDB de dados em repouso](https://docs.aws.amazon.com/documentdb/latest/developerguide/encryption-at-rest.html).

1. Escolha **Continue**.

1. Em **Programação das modificações**, selecione **Aplicar imediatamente**. Se você escolher **Aplicar durante a próxima janela de manutenção agendada**, sua instância ignorará essa configuração e habilitará o Performance Insights imediatamente.

1. Escolha **Modificar instância**.

------
#### [ Using the AWS CLI ]

Ao usar os `modify-db-instance` AWS AWS CLI comandos `create-db-instance` ou, você pode ativar o Performance Insights `--enable-performance-insights` especificando ou desativá-lo `--no-enable-performance-insights` especificando.

O procedimento a seguir descreve como habilitar ou desabilitar o Performance Insights para uma instância de banco de dados usando a AWS AWS CLI.



**AWS AWS CLI instruções**

Chame o `modify-db-instance` AWS AWS CLI comando e forneça os seguintes valores:
+ `--db-instance-identifer` — o nome da instância de banco de dados.
+ `--enable-performance-insights` para habilitar ou `--no-enable-performance-insights` para desabilitar

**Example**  
O exemplo a seguir habilita o Performance Insights para a `sample-db-instance`.  

```
aws docdb modify-db-instance \
    --db-instance-identifier sample-db-instance \
    --enable-performance-insights
```

```
aws docdb modify-db-instance ^
    --db-instance-identifier sample-db-instance ^
    --enable-performance-insights
```

------

# Configurar políticas de acesso para o Performance Insights
<a name="performance-insights-policies"></a>

Para acessar o Performance Insights, é necessário ter as permissões apropriadas do AWS Identity and Access Management (IAM). Você tem as seguintes opções para conceder acesso:
+ Anexe a política gerenciada `AmazonRDSPerformanceInsightsReadOnly` a um conjunto de permissões ou perfil.
+ Crie uma política do IAM personalizada e anexe ela a um conjunto de permissões ou perfil.

Além disso, se você especificou uma chave gerenciada pelo cliente quando ativou o Performance Insights, certifique-se de que os usuários em sua conta têm as permissões `kms:Decrypt` e `kms:GenerateDataKey` na chave do KMS.

**nota**  
 encryption-at-rest[Com o gerenciamento de AWS KMS chaves e grupos de segurança, o Amazon DocumentDB aproveita a tecnologia operacional que é compartilhada com o Amazon RDS.](https://aws.amazon.com/rds)

## Anexando a RDSPerformance InsightsReadOnly política da Amazon a um diretor do IAM
<a name="USER_PerfInsights.access-control.IAM-principal"></a>

`AmazonRDSPerformanceInsightsReadOnly`é uma política AWS gerenciada que concede acesso a todas as operações somente para leitura da API Amazon DocumentDB Performance Insights. Atualmente, todas as operações nesta API são somente leitura. Se você anexar `AmazonRDSPerformanceInsightsReadOnly` a um conjunto de permissões ou perfil, o destinatário poderá usar o Performance Insights com outros recursos do console.

## Criação de uma política de IAM personalizada para o Performance Insights
<a name="USER_PerfInsights.access-control.custom-policy"></a>

Para usuários que não têm a política `AmazonRDSPerformanceInsightsReadOnly`, é possível conceder acesso ao Performance Insights criando ou modificando uma política do IAM gerenciada pelo usuário. Quando você anexa a política a um conjunto de permissões ou perfil, o destinatário pode usar o Performance Insights.

**Para criar uma política personalizada**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas**.

1. Selecione **Criar política**.

1. Na página **Create Policy (Criar política)**, escolha a guia JSON. 

1. Copie e cole o texto a seguir, *us-east-1* substituindo-o pelo nome da sua AWS região e *111122223333* pelo número da sua conta de cliente.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds:DescribeDBInstances",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "rds:DescribeDBClusters",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:DescribeDimensionKeys",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetDimensionKeyDetails",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetResourceMetadata",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetResourceMetrics",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:ListAvailableResourceDimensions",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:ListAvailableResourceMetrics",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           }
       ]
   }
   ```

------

1. Escolha **Review policy (Revisar política)**.

1. Forneça um nome para a política e, se preferir, uma descrição. Em seguida, escolha **Criar política**.

Agora você pode anexar a política a um conjunto de permissões ou perfil. O procedimento a seguir pressupõe que você já tem um usuário disponível para essa finalidade.

**Como anexar a política a um usuário**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Usuários**.

1. Escolha um usuário existente na lista.
**Importante**  
Para usar o Performance Insights, você deve ter acesso ao Amazon DocumentDB e à política personalizada. [Por exemplo, a política **AmazonDocDBReadOnlyAccess**predefinida fornece acesso somente de leitura ao Amazon DocDB. Para obter mais informações, consulte Gerenciando o acesso usando políticas.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.html#security_iam_access-manage)

1. Na página **Summary (Resumo)**, escolha **Add permissions (Adicionar permissões)**.

1. Escolha **Anexar políticas existentes diretamente**. Em **Pesquisar**, digite os primeiros caracteres do nome da sua política, conforme mostrado a seguir.  
![\[Escolher uma política\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/pi-add-permissions.png)

1. Escolha a política e, em seguida, escolha **Próximo: revisar**.

1. Escolha **Adicionar permissões**.

## Configurando uma AWS KMS política para Performance Insights
<a name="USER_PerfInsights.access-control.cmk-policy"></a>

O Performance Insights usa um AWS KMS key para criptografar dados confidenciais. Ao habilitar o Performance Insights por meio da API ou do console, você tem as seguintes opções:
+ Escolha o padrão Chave gerenciada pela AWS.

  O Amazon DocumentDB usa o Chave gerenciada pela AWS para sua nova instância de banco de dados. O Amazon DocumentDB cria um Chave gerenciada pela AWS para sua AWS conta. Sua AWS conta tem uma conta diferente Chave gerenciada pela AWS para o Amazon DocumentDB para cada AWS região.
+ Escolha uma chave gerenciada pelo cliente.

  Se você especificar uma chave gerenciada pelo cliente, os usuários em sua conta que chamam a API do Performance Insights precisarão das permissões `kms:Decrypt` e `kms:GenerateDataKey` na chave do KMS. É possível configurar essas permissões por meio de políticas do IAM. No entanto, recomendamos que você gerencie essas permissões por meio da política de chaves do KMS. Para obter mais informações, consulte o tópico sobre como [Utilizar políticas de chaves no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). 

**Example**  
A política de chave de exemplo a seguir mostra como adicionar instruções à sua política da chaves do KMS. Essas instruções permitem acesso ao Performance Insights. Dependendo de como você usa o AWS KMS, talvez você queira alterar algumas restrições. Antes de adicionar instruções à política, remova todos os comentários.

# Análise de métricas usando o painel do Performance Insights
<a name="performance-insights-analyzing"></a>

O painel do Performance Insights contém informações de performance do banco de dados para ajudar você a analisar e solucionar problemas de performance. Na página do painel principal, você pode visualizar informações sobre a carga do banco de dados (DB load). É possível “fatiar” a carga de banco de dados por dimensões como eventos de espera ou consulta. 

**Topics**
+ [Visão geral do painel do Performance Insights](performance-insights-dashboard-overview.md)
+ [Abrir o painel do Performance Insights](performance-insights-dashboard-opening.md)
+ [Analisar a carga do banco de dados por estados de espera](performance-insights-analyzing-db-load.md)
+ [Visão geral da guia Principais consultas](performance-insights-top-queries.md)
+ [Ampliar o gráfico de carga de banco de dados](performance-insights-zoom-db-load.md)

# Visão geral do painel do Performance Insights
<a name="performance-insights-dashboard-overview"></a>

O painel é a maneira mais fácil de interagir com o Performance Insights. O exemplo a seguir mostra o painel de uma instância de Amazon DocumentDB. Por padrão, o painel do Performance Insights exibe dados da última hora.

![\[Painel dos Insights de performance, mostrando a utilização da CPU e a carga do banco de dados ao longo do tempo para uma instância do Amazon DocumentDB.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/overview-dashboard.png)


O painel é dividido nas seguintes partes:

1. **Counter metrics**: mostra dados das métricas de contador de performance específicas.

1. **Database load**: mostra como a carga de banco de dados se compara à capacidade da instância de banco de dados conforme representada pela linha **Máx. vCPU**.

1.  **Dimensões principais** – Mostra as principais dimensões que contribuem para a carga do banco de dados. Essas dimensões incluem `waits`, `queries`, `hosts`, `databases` e `applications`.

**Topics**
+ [Gráfico de métricas de contador](#performance-insights-overview-metrics)
+ [Gráfico de carga do banco de dados](#performance-insights-overview-db-load-chart)
+ [Tabela Top dimensions (Principais dimensões)](#performance-insights-overview-top-dimensions)

## Gráfico de métricas de contador
<a name="performance-insights-overview-metrics"></a>

Com métricas de contador, você pode personalizar o painel do Performance Insights para incluir até 10 gráficos adicionais. Esses gráficos mostram uma seleção de dezenas de métricas de performance do sistema operacional. É possível correlacionar essas informações à carga do banco de dados para ajudar a identificar e analisar problemas de performance.

O gráfico **Métricas de contador** exibe dados dos contadores de performance.

![\[Gráfico Métricas de contadores mostrando a utilização da CPU ao longo do tempo.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/counter-metrics.png)


Para alterar os contadores de performance, escolha **Gerenciar métricas**. É possível selecionar várias **Métricas de SO**, conforme mostrado na captura de tela a seguir. Para ver detalhes de qualquer métrica, passe o mouse sobre o nome da métrica.

![\[Interface de seleção de métricas do painel dos Insights de performance com opções de métricas do sistema operacional.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/overview-os-metrics.png)


## Gráfico de carga do banco de dados
<a name="performance-insights-overview-db-load-chart"></a>

O gráfico **Carga do banco de dados** mostra como a atividade do banco de dados se compara à capacidade da instância de banco de dados representada pela linha **Máximo de vCPU**. Por padrão, o gráfico de linhas empilhadas representa a carga do banco de dados como sessões ativas médias por unidade de tempo. A carga do banco de dados é separada (agrupada) por estados de espera.

![\[Gráfico Carga do banco de dados, mostrando a média de sessões ativas ao longo do tempo, com o aumento do uso da CPU próximo ao fim.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/database-load.png)


**Carga de banco de dados separada por dimensões**  
É possível optar por exibir a carga como sessões ativas agrupadas por quaisquer dimensões aceitas. A imagem a seguir mostra as dimensões de uma instância de banco de dados do Amazon DocumentDB.

![\[Gráfico mostrando a carga do banco de dados com várias opções “Fatiar por” exibidas em uma lista suspensa.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/database-load-sliced.png)


**Detalhes de carga de banco de dados para um item de dimensão**  
Para ver detalhes sobre um item de carga de banco de dados dentro de uma dimensão, passe o mouse sobre o nome do item. A imagem a seguir mostra detalhes de uma instrução de consulta.

![\[Gráfico de barras mostrando a carga do banco de dados com detalhes adicionais exibidos ao passar o mouse sobre o nome de um item.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/database-load-details.png)


Para ver detalhes de qualquer item do período selecionado na legenda, passe o mouse sobre esse item.

![\[Gráfico de barras mostrando a carga do banco de dados com detalhes adicionais exibidos ao passar o mouse sobre uma barra.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/database-load-hover.png)


## Tabela Top dimensions
<a name="performance-insights-overview-top-dimensions"></a>

A tabela **Principais dimensões** separa a carga do banco de dados com base em diferentes dimensões. Uma dimensão é uma categoria ou “pedaços” de diferentes características de uma carga de banco de dados. Se a dimensão for consulta, **Principais consultas** mostrará as instruções SQL que mais contribuem para a carga do banco de dados.

Escolha qualquer uma das guias de dimensão a seguir.

![\[A guia Dimensões das consultas principais, mostrando as duas consultas principais.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/top-dimensions.png)


A tabela a seguir fornece uma breve descrição de cada guia.


| Tab | Description | 
| --- | --- | 
|  Esperas principais  |   O evento para o qual o backend do banco de dados está aguardando  | 
|  Principais consultas  |  As instruções de consulta que estão sendo executadas no momento  | 
|  Hosts principais  |  O host IP e porta do cliente conectado  | 
|  Principais bancos de dados  |  O nome do banco de dados ao qual o cliente está conectado  | 
|  Principais aplicações  |  O nome da aplicação que está conectada ao banco de dados  | 

Para aprender a analisar consultas utilizando a guia **Principais consultas**, consulte [Visão geral da guia Principais consultas](performance-insights-top-queries.md).

# Abrir o painel do Performance Insights
<a name="performance-insights-dashboard-opening"></a>

**Para visualizar o painel do Performance Insights no AWS Management Console, use as seguintes etapas:**

1. Abra o console do Performance Insights em [https://console.aws.amazon.com/docdb/](https://console.aws.amazon.com/docdb/home#performance-insights).

1. Escolha uma instância de banco de dados. O painel do Performance Insights é exibido para essa instância dp Amazon DocumentDB.

   Para as instâncias do Amazon DocumentDB com o Performance Insights habilitado, você também pode acessar o painel escolhendo o item **Sessões** na lista de instâncias. Em **Atividade atual**, o item **Sessões** mostra a carga de banco de dados em sessões ativas médias nos últimos cinco minutos. A carga é mostrada graficamente por meio de barras. Quando a barra está vazia, a instância está ociosa. À medida que a carga aumenta, a barra é preenchida com a cor azul. Quando a carga ultrapassa o número de virtual CPUs (vCPUs) na classe da instância, a barra fica vermelha, indicando um possível gargalo.  
![\[A página Clusters, mostrando um cluster regional do Amazon DocumentDB e a CPU e a atividade atual de cada instância do cluster.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/opening-clusters.png)

1. (Opcional) Escolha um intervalo de tempo diferente selecionando um botão no canto superior direito. Por exemplo, para alterar o intervalo para 1 hora, selecione **1h**.  
![\[Botões de intervalo de tempo, variando de cinco minutos a uma semana.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/opening-time.png)

   Na captura de tela a seguir, o intervalo da carga do banco de dados é de 1 hora.  
![\[Gráfico de barras mostrando a carga do banco de dados medida na média de sessões ativas.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/opening-db-load.png)

1. Para atualizar seus dados automaticamente, habilite a **Atualização automática**.  
![\[O botão de atualização automática habilitado, aparecendo ao lado dos botões de intervalo de tempo.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/opening-auto-refresh.png)

   O painel do Performance Insights é atualizado automaticamente com novos dados. A taxa de atualização depende da quantidade de dados exibida: 
   + 5 minutos atualiza a cada 5 segundos.
   + 1 hora atualiza a cada minuto.
   + 5 horas atualiza a cada minuto.
   + 24 horas atualiza a cada 5 minutos.
   + Uma semana atualiza a cada hora.

# Analisar a carga do banco de dados por estados de espera
<a name="performance-insights-analyzing-db-load"></a>

Se o gráfico **Carregamento do banco de dados** mostrar um gargalo, será possível descobrir de onde vem essa carga. Para fazer isso, examine a tabela de principais itens de carga abaixo do gráfico **Carregamento do banco de dados**. Escolha um item específico, como uma consulta ou uma aplicação, para aprofundar neste item e ver detalhes sobre ele.

A carga do banco de dados agrupada por espera e as principais consultas normalmente fornecem mais informações sobre problemas de performance. A carga de banco de dados agrupada por espera mostra se há algum gargalo de recursos ou de concorrências no banco de dados. Nesse caso, a guia **Principais consultas** da tabela Top Load Items mostra quais consultas estão gerando essa carga.

Seu fluxo de trabalho típico para diagnosticar problemas de performance é o seguinte:

1. Analise o gráfico **Carregamento do banco de dados** e veja se há casos de cargas de banco de dados que estejam ultrapassando a linha **Máximo de CPU**.

1. Se houver, examine o gráfico **Carregamento do banco de dados** e identifique quais estados de espera são os principais responsáveis por isso.

1. Identifique as consultas resumidas que estão gerando a carga examinando quais consultas na guia **Top queries** da tabela Top Load Items estão contribuindo mais para aqueles estados de espera. É possível identificar essas consultas na coluna **Carga por espera (AAS)**.

1. Escolha uma dessas consultas resumidas na guia **Top queries** para expandi-la e exibir as consultas secundárias que a compõem.

Você também pode ver quais hosts ou aplicações estão contribuindo com a maior carga selecionando **Principais hosts** ou **Principais aplicações**, respectivamente. Os nomes das aplicações são especificados na cadeia de conexão com a instância Amazon DocumentDB. `Unknown` indica que o campo da aplicação não foi especificado. 

Por exemplo, no painel a seguir, as esperas de **CPU** compõem a maior parte da carga de banco de dados. Selecionar a consulta principal em **Principais consultas** definirá o gráfico de carga do banco de dados para se concentrar na maior carga que está sendo contribuída pela consulta selecionada.

![\[Gráfico de carga do banco de dados, mostrando o pico de uso da CPU. Uma guia Principais consultas correspondente mostra as consultas que mais contribuem para os estados de espera.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/db-load-1.png)


![\[Gráfico Carga do banco de dados, mostrando o pico de uso da CPU para a consulta que mais contribui para os estados de espera. Uma guia Principais consultas correspondente mostra as consultas secundárias dessa consulta.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/db-load-2.png)


# Visão geral da guia Principais consultas
<a name="performance-insights-top-queries"></a>

Por padrão, a guia **Principais consultas** mostra as consultas que mais estão contribuindo para a carga do banco de dados. É possível analisar o texto da consulta para ajudar a ajustar suas consultas.

**Topics**
+ [Resumos de consultas](#performance-insights-top-queries-digests)
+ [Load by waits (AAS) (Carga por esperas)](#performance-insights-top-queries-aas)
+ [Visualizando informações detalhadas da consulta](#performance-insights-top-queries-query-info)
+ [Acessando o texto da consulta da instrução](#performance-insights-top-queries-accessing-text)
+ [Visualizando e baixando o texto da consulta de instrução](#performance-insights-top-queries-viewing-downloading)

## Resumos de consultas
<a name="performance-insights-top-queries-digests"></a>

Um *resumo de consulta* é formado por várias consultas reais com estruturas semelhantes, mas que possivelmente apresentam valores literais diferentes. O resumo substitui valores codificados por um ponto de interrogação. Por exemplo, um resumo de consulta pode ser semelhante a este:

```
{"find":"customerscollection","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}
```

Esse resumo pode incluir as seguintes consultas subordinadas:

```
{"find":"customerscollection","filter":{"FirstName":"Karrie"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
{"find":"customerscollection","filter":{"FirstName":"Met"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
{"find":"customerscollection","filter":{"FirstName":"Rashin"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
```

Para ver as instruções consultas literais em um resumo, escolha a consulta e depois o sinal de mais (`+`). Na captura de tela a seguir, a consulta selecionada é um resumo.

![\[A tabela Principais consultas, mostrando um resumo de consultas expandido com uma consulta secundária selecionada.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/top-queries-literal.png)


**nota**  
Um resumo de consulta agrupa instruções de consulta semelhantes, mas não edita informações confidenciais. 

## Carga por esperas (AAS)
<a name="performance-insights-top-queries-aas"></a>

Em **Consultas principais**, a coluna **Carga por esperas (AAS)** mostra o percentual da carga do banco de dados associada a cada item de carga principal. Essa coluna reflete a carga desse item por qualquer agrupamento atualmente selecionado no **Gráfico de carga de banco de dados**. Por exemplo, é possível agrupar o gráfico **Carregamento do banco de dados** com base em estados de espera. Nesse caso, a barra **Carregamento do banco de dados por esperas** é dimensionada, segmentada e codificada por cores para mostrar com quanto de um determinado estado de espera a consulta está contribuindo. Ela também mostra quais estados de espera estão afetando a consulta selecionada.

![\[Gráfico de barras mostrando a carga do banco de dados agrupada por CPU, IO e estados de espera por trava. A tabela correspondente mostra as principais consultas com base na carga por espera.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/top-queries-aas.png)


## Visualizando informações detalhadas da consulta
<a name="performance-insights-top-queries-query-info"></a>

Na tabela **Principais consultas**, é possível abrir uma *instrução de resumo* para visualizar suas informações. As informações são exibidas no painel inferior.

![\[A tabela Principais consultas, mostrando uma instrução de consulta selecionada e suas informações de consulta abaixo.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/top-queries-detailed.png)


Os seguintes tipos de identificadores (IDs) estão associados às instruções de consulta:

1. **ID da consulta de suporte** — Um valor de hash do ID da consulta. Esse valor serve apenas para fazer referência a um ID de consulta quando você está trabalhando com o AWS Support. AWS O Support não tem acesso à sua consulta real IDs e ao texto da consulta.

1. **ID de arquivo de resumo de suporte**: um valor de hash do ID de arquivo de resumo. Esse valor serve apenas para fazer referência a uma ID de resumo quando você está trabalhando com o Support AWS . AWS O Support não tem acesso ao texto real do resumo IDs e da consulta.

## Acessando o texto da consulta da instrução
<a name="performance-insights-top-queries-accessing-text"></a>

Por padrão, cada linha na tabela **Principais consultas** mostra 500 bytes de texto para cada instrução. Quando uma instrução de resumo é maior que 500 bytes, você pode visualizar uma parte maior dela abrindo-a no painel do Performance Insights. Nesse caso, o comprimento máximo para a consulta mostrada é de 1 KB. Se você vir uma instrução de consulta completa, também poderá escolher **Download**.

## Visualizando e baixando o texto da consulta de instrução
<a name="performance-insights-top-queries-viewing-downloading"></a>

No painel do Performance Insights, é possível visualizar ou baixar o texto da consulta.

**Para visualizar mais texto de consulta no painel do Performance Insights**

1. Abra o console do Amazon DocumentDB em: [https://console.aws.amazon.com/docdb/](https://console.aws.amazon.com/docdb/) 

1. No painel de navegação, escolha **Performance Insights**.

1. Escolha uma instância de banco de dados. O painel do Performance Insights será exibido nessa instância de banco de dados.

   Instruções de consulta com texto maior que 500 bytes serão semelhantes à imagem a seguir.  
![\[A tabela Principais consultas com uma consulta secundária selecionada.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/top-queries-statement.png)

1. Examine a seção de informações de consulta para visualizar mais do texto da consulta.  
![\[A seção Informações da consulta, mostrando o texto completo da consulta selecionada.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/top-queries-query-text.png)

O painel do Performance Insights pode exibir até 1 KB para cada instrução completa de consulta.

**nota**  
Para copiar ou baixar a instrução de consulta, desabilite bloqueadores de pop-up.

# Ampliar o gráfico de carga de banco de dados
<a name="performance-insights-zoom-db-load"></a>

Há outros recursos da interface do usuário do Performance Insights para ajudar você a analisar dados de performance.

**Click-and-Drag Ampliar**  
Na interface do Performance Insights, escolha uma pequena parte do gráfico de carga e amplie os detalhes.

![\[Gráfico de barras mostrando a carga do banco de dados, com uma parte destacada para ampliação.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/pi-zoom-1.png)


Para ampliar uma parte do gráfico de carga, escolha a hora de início e arraste até o final do período desejado. Quando você faz isso, a área selecionada fica destacada. Ao soltar o mouse, o gráfico de carga amplia a área selecionada e a tabela ***Itens *principais** é recalculada.

![\[Gráfico de barras de carregamento do banco de dados, mostrando a parte ampliada e com a tabela de principais esperas correspondente abaixo.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/pi-zoom-2.png)


# Recuperar métricas com a API do Performance Insights
<a name="performance-insights-metrics"></a>

Quando o Performance Insights está habilitado, a API fornece visibilidade à performance da instância. O Amazon CloudWatch Logs fornece a fonte confiável para métricas de monitoramento de serviços vendidos. AWS 

O Performance Insights oferece uma visão específica do domínio da carga do banco de dados medida como sessões ativas médias (AAS). Essa métrica aparece para os consumidores de API como um conjunto de dados bidimensional de séries temporais. A dimensão de tempo dos dados fornece a carga do banco de dados para cada ponto de tempo no intervalo de tempo consultado. Cada ponto de tempo decompõe a carga geral em relação às dimensões solicitadas, como `Query`, `Wait-state`, `Application` ou `Host`, medidas naquele ponto de tempo.

O Performance Insights do Amazon DocumentDB monitora sua instância de banco de dados do Amazon DocumentDB, para que você possa analisar e solucionar problemas relacionados ao desempenho do seu banco de dados. Uma maneira de visualizar os dados do Performance Insights está no Console de gerenciamento da AWS. O Performance Insights também fornece uma API pública para que você possa consultar seus próprios dados. É possível usar a API para fazer o seguinte:
+ Descarregar dados em um banco de dados
+ Adicione dados do Performance Insights aos painéis de monitoramento existentes
+ Criar ferramentas de monitoramento

Para usar a API do Performance Insights, habilite o Performance Insights em uma das suas instâncias do Amazon DocumentDB. Para obter informações sobre como habilitar o Performance Insights, consulte [Ativar e desativar o Performance Insights](performance-insights-enabling.md). Para obter mais informações sobre a API Insights de performance, consulte a [Referência de API dos Insights de performance](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html).

A API do Performance Insights fornece as operações a seguir.


****  

|  Ação do Performance Insights  |  AWS CLI comando  |  Description  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html](https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html)  |  Recuperar as N principais chaves de dimensão de uma métrica por um período específico.  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html)  |  Recupera os atributos do grupo de dimensões especificado para uma instância de banco de dados ou fonte de dados. Por exemplo, se você especificar um ID de consulta e se os detalhes da dimensão estiverem disponíveis, `GetDimensionKeyDetails` recuperará o texto completo da dimensão `db.query.statement` associada a esse ID. Essa operação é útil porque `GetResourceMetrics` e `DescribeDimensionKeys` não oferecem suporte à recuperação de texto grande de instrução da consulta.   | 
| [GetResourceMetadata](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetadata.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html)  |  Recupere os metadados para diferentes recursos. Por exemplo, os metadados podem indicar que um recurso está ativado ou desativado em uma instância de banco de dados específica.   | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)  |  Recupera as métricas do Performance Insights para um conjunto de fontes de dados, ao longo de um período. É possível fornecer grupos de dimensão e dimensões específicos e fornecer critérios de filtragem e agregação para cada grupo.  | 
| [ListAvailableResourceDimensions](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceDimensions.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html)  |  Recupere as dimensões que podem ser consultadas para cada tipo de métrica especificado em uma instância especificada.   | 
| [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html)  |  Recupere todas as métricas disponíveis dos tipos de métrica especificados que podem ser consultados para uma instância de banco de dados especificada.  | 

**Topics**
+ [AWS CLI para Performance Insights](#performance-insights-metrics-CLI)
+ [Recuperar métricas de séries temporais](#performance-insights-metrics-time-series)
+ [AWS CLI exemplos de Performance Insights](#performance-insights-metrics-api-examples)

## AWS CLI para Performance Insights
<a name="performance-insights-metrics-CLI"></a>

É possível visualizar dados do Performance Insights usando o AWS CLI. É possível visualizar a ajuda dos comandos da AWS CLI para o Performance Insights, inserindo o seguinte na linha de comando.

```
aws pi help
```

Se você não tiver o AWS CLI instalado, consulte [Instalando a interface de linha de AWS comando](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) no *Guia do AWS CLI usuário* para obter informações sobre como instalá-lo.

## Recuperar métricas de séries temporais
<a name="performance-insights-metrics-time-series"></a>

A operação `GetResourceMetrics` recupera uma ou mais métricas de séries temporais dos dados do Performance Insights. `GetResourceMetrics` requer uma métrica e um período de tempo e retorna uma resposta com uma lista de pontos de dados. 

Por exemplo, os Console de gerenciamento da AWS usos `GetResourceMetrics` para preencher o gráfico **Counter Metrics** e o gráfico **Database Load**, conforme mostrado na imagem a seguir.

![\[Gráficos Counter Metrics e Database Load\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/perf-insights-api-charts.png)


Todas as métricas retornadas por `GetResourceMetrics` são métricas de séries temporais padrão, com exceção de `db.load`. Essa métrica é exibida no gráfico **Carregamento do banco de dados**. A métrica `db.load` é diferente das outras métricas da série temporal, pois você pode fragmentá-la em subcomponentes chamados de *dimensões*. Na imagem anterior, `db.load` é dividido e agrupado pelos estados de espera que compõem o `db.load`.

**nota**  
`GetResourceMetrics` também pode retornar a métrica `db.sampleload`, mas a métrica `db.load` é apropriada na maioria dos casos.

Para obter informações sobre as métricas de contador retornadas pelo `GetResourceMetrics`, consulte [Métricas de contadores do Performance Insights](performance-insights-counter-metrics.md).

Os cálculos a seguir são compatíveis com as métricas:
+ Média: o valor médio para a métrica por um período. Adicione `.avg` ao nome da métrica.
+ Mínimo: o valor mínimo para a métrica por um período. Adicione `.min` ao nome da métrica.
+ Máximo: o valor máximo para a métrica por um período. Adicione `.max` ao nome da métrica.
+ Soma: a soma dos valores da métrica por um período. Adicione `.sum` ao nome da métrica.
+ Contagem de amostra: o número de vezes que a métrica foi coletada por um período. Adicione `.sample_count` ao nome da métrica.

Por exemplo, considere que uma métrica é coletada por 300 segundos (5 minutos) e que a métrica seja coletada uma vez por minuto. Os valores de cada minuto são 1, 2, 3, 4 e 5. Nesse caso, os seguintes cálculos são retornados:
+ Média: 3
+ Mínimo: 1
+ Máximo: 5
+ Soma: 15
+ Contagem de amostras: 5

Para obter informações sobre como usar o `get-resource-metrics` AWS CLI comando, consulte [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html).

Para a opção `--metric-queries`, especifique uma ou mais consultas para as quais deseja obter resultados. Cada consulta consiste em um parâmetro obrigatório `Metric` e opcional `GroupBy` e em parâmetros `Filter`. Veja a seguir um exemplo de uma especificação de opção `--metric-queries`.

```
{
   "Metric": "string",
   "GroupBy": {
     "Group": "string",
     "Dimensions": ["string", ...],
     "Limit": integer
   },
   "Filter": {"string": "string"
     ...}
```

## AWS CLI exemplos de Performance Insights
<a name="performance-insights-metrics-api-examples"></a>

Os exemplos a seguir mostram como usar o AWS CLI for Performance Insights.

**Topics**
+ [Recuperar métricas de contador](#performance-insights-metrics-api-examples.CounterMetrics)
+ [Recuperar a média de carga de banco de dados para eventos de espera superior](#performance-insights-metrics-api-examples.DBLoadAverage)
+ [Recuperar a média de carga de banco de dados para consulta principal](#performance-insights-metrics-api-examples.topquery)
+ [Recuperação da média de carga de banco de dados filtrada por Consulta](#performance-insights-metrics-api-examples.DBLoadAverageByQuery)

### Recuperar métricas de contador
<a name="performance-insights-metrics-api-examples.CounterMetrics"></a>

A captura de tela a seguir mostra dois gráficos de métricas de contador no Console de gerenciamento da AWS.

![\[Gráficos de métricas de contador.\]](http://docs.aws.amazon.com/pt_br/documentdb/latest/developerguide/images/performance-insights/perf-insights-api-counters-charts.png)


O exemplo a seguir mostra como reunir os mesmos dados que o Console de gerenciamento da AWS usa para gerar os dois gráficos de métricas de contador.

Para Linux, macOS ou Unix:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

Para Windows:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

Você também pode tornar um comando mais fácil de ler, especificando um arquivo para a opção `--metrics-query`. O exemplo a seguir usa um arquivo chamado query.json para a opção. O arquivo tem o seguinte conteúdo.

```
[
    {
        "Metric": "os.cpuUtilization.user.avg"
    },
    {
        "Metric": "os.cpuUtilization.idle.avg"
    }
]
```

Execute o seguinte comando para usar o arquivo.

Para Linux, macOS ou Unix:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Para Windows:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

O exemplo anterior especifica os seguintes valores para as opções:
+ `--service-type`— `DOCDB` para Amazon DocumentDB
+ `--identifier` – O ID do recurso para a instância do banco de dados
+ `--start-time` e `--end-time` – Os valores ISO 8601 de `DateTime` para o período a consultar, com vários formatos compatíveis

Ele consulta um intervalo de tempo de uma hora:
+ `--period-in-seconds` – `60` para uma consulta por minuto
+ `--metric-queries` – uma matriz de duas consultas, cada uma apenas para uma métrica.

  O nome da métrica usa pontos para classificar a métrica em uma categoria útil, com o elemento final sendo uma função. No exemplo, a função é `avg` para cada consulta. Assim como na Amazon CloudWatch, as funções suportadas são `min` `max``total`,, `avg` e.

A resposta é semelhante à seguinte.

```
{
    "AlignedStartTime": "2022-03-13T08:00:00+00:00",
    "AlignedEndTime": "2022-03-13T09:00:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {
            "Key": {
                "Metric": "os.cpuUtilization.user.avg"
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-03-13T08:01:00+00:00", //Minute1
                    "Value": 3.6
                },
                {
                    "Timestamp": "2022-03-13T08:02:00+00:00", //Minute2
                    "Value": 2.6
                },
                //.... 60 datapoints for the os.cpuUtilization.user.avg metric
        {
            "Key": {
                "Metric": "os.cpuUtilization.idle.avg"
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-03-13T08:01:00+00:00",
                    "Value": 92.7
                },
                {
                    "Timestamp": "2022-03-13T08:02:00+00:00",
                    "Value": 93.7
                },
                //.... 60 datapoints for the os.cpuUtilization.user.avg metric 
            ]
        }
    ] //end of MetricList
} //end of response
```

A resposta tem `Identifier`, `AlignedStartTime` e `AlignedEndTime`. Se o valor de `--period-in-seconds` fosse `60`, as horas de início e término seriam alinhadas ao minuto. Se `--period-in-seconds` fosse `3600`, as horas de início e término teriam sido alinhadas à hora.

O `MetricList` na resposta tem um número de entradas, cada uma com uma entrada `Key` e `DataPoints`. Cada `DataPoint` tem um `Timestamp` e um `Value`. Cada lista `Datapoints` tem 60 pontos de dados, pois as consultas são para dados por minuto ao longo de uma hora, com `Timestamp1/Minute1`, `Timestamp2/Minute2` e assim por diante, até `Timestamp60/Minute60`. 

Como a consulta é para duas métricas de contador diferentes, há dois elementos na resposta `MetricList`.

### Recuperar a média de carga de banco de dados para eventos de espera superior
<a name="performance-insights-metrics-api-examples.DBLoadAverage"></a>

O exemplo a seguir é a mesma consulta Console de gerenciamento da AWS usada para gerar um gráfico de linha de área empilhada. Este exemplo recupera o `db.load.avg` para a última hora com carga dividida de acordo com os sete principais eventos de espera. O comando é o mesmo que o comando em [Recuperar métricas de contador](#performance-insights-metrics-api-examples.CounterMetrics). No entanto, o arquivo query.json tem o seguinte conteúdo.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_state", "Limit": 7 }
    }
]
```

Execute o seguinte comando.

Para Linux, macOS ou Unix:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

Para Windows:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

O exemplo especifica a métrica de `db.load.avg` e um `GroupBy` dos sete principais estados de espera. Para obter detalhes sobre valores válidos para esse exemplo, consulte [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)a *Referência da API Performance Insights.*

A resposta é semelhante à seguinte.

```
{
    "AlignedStartTime": "2022-04-04T06:00:00+00:00",
    "AlignedEndTime": "2022-04-04T06:15:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {//A list of key/datapoints
            "Key": {
                //A Metric with no dimensions. This is the total db.load.avg
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1
                    "Value": 0.0
                },
                {
                    "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2
                    "Value": 0.0
                },
                //... 60 datapoints for the total db.load.avg key
                ]
        },
        {
            "Key": {
                //Another key. This is db.load.avg broken down by CPU
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.wait_state.name": "CPU"
                }
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1
                    "Value": 0.0
                },
                {
                    "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2
                    "Value": 0.0
                },
                //... 60 datapoints for the CPU key
            ]
        },//... In total we have 3 key/datapoints entries, 1) total, 2-3) Top Wait States
    ] //end of MetricList
} //end of response
```

Nessa resposta, há três entradas no `MetricList`. Há uma entrada para o `db.load.avg` total, e três entradas cada para o `db.load.avg`, divididas de acordo com um dos três principais eventos de espera. Ao contrário do primeiro exemplo, como havia uma dimensão de agrupamento, deve haver uma chave para cada agrupamento da métrica. Não pode haver apenas uma chave para cada métrica, como no caso de uso de métricas de contador.

### Recuperar a média de carga de banco de dados para consulta principal
<a name="performance-insights-metrics-api-examples.topquery"></a>

O exemplo a seguir agrupa `db.wait_state` pelas 10 principais instruções de consulta. Existem dois grupos diferentes para instruções de consulta:
+ `db.query` – a instrução de consulta completa, como `{"find":"customers","filter":{"FirstName":"Jesse"},"sort":{"key":{"$numberInt":"1"}}}`
+ `db.query_tokenized` – a instrução de consulta tokenizada, como `{"find":"customers","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}`

Ao analisar a performance do banco de dados, pode ser útil considerar instruções de consulta que diferem apenas por seus parâmetros como um item lógico. Então, você pode usar `db.query_tokenized` ao consultar. No entanto, especialmente quando você está interessado em `explain()`, às vezes é mais útil examinar instruções de consulta completas com parâmetros. Existe um relacionamento pai-filho entre as consultas tokenizadas e completas, com várias consultas completas (filhos) agrupadas sob a mesma consulta tokenizada (pai).

O comando neste exemplo é semelhante ao comando em [Recuperar a média de carga de banco de dados para eventos de espera superior](#performance-insights-metrics-api-examples.DBLoadAverage). No entanto, o arquivo query.json tem o seguinte conteúdo.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.query_tokenized", "Limit": 10 }
    }
]
```

O exemplo a seguir usa `db.query_tokenized`.

Para Linux, macOS ou Unix:

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 3600 \
   --metric-queries file://query.json
```

Para Windows:

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z  ^
   --period-in-seconds 3600 ^
   --metric-queries file://query.json
```

Este exemplo faz consultas em mais de 1 hora, com um minuto period-in-seconds.

O exemplo especifica a métrica de `db.load.avg` e um `GroupBy` dos sete principais estados de espera. Para obter detalhes sobre valores válidos para esse exemplo, consulte [DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)a *Referência da API Performance Insights.*

A resposta é semelhante à seguinte.

```
{
    "AlignedStartTime": "2022-04-04T06:00:00+00:00",
    "AlignedEndTime": "2022-04-04T06:15:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {//A list of key/datapoints
            "Key": {
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //... 60 datapoints for the total db.load.avg key
                ]
        },
               {
            "Key": {//Next key are the top tokenized queries
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.query_tokenized.db_id": "pi-1064184600",
                    "db.query_tokenized.id": "77DE8364594EXAMPLE",
                    "db.query_tokenized.statement": "{\"find\":\"customers\",\"filter\":{\"FirstName\":\"?\"},\"sort\":{\"key\":{\"$numberInt\":\"?\"}},\"limit\"
:{\"$numberInt\":\"?\"},\"$db\":\"myDB\",\"$readPreference\":{\"mode\":\"primary\"}}"
                }
            },
            "DataPoints": [
            //... 60 datapoints 
            ]
        },
        // In total 11 entries, 10 Keys of top tokenized queries, 1 total key 
    ] //End of MetricList
} //End of response
```

Essa resposta tem 11 entradas no `MetricList` (1 total, 10 principais consultas tokenizadas), e cada entrada com 24 `DataPoints` por hora.

Para consultas tokenizadas, existem três entradas em cada lista de dimensões:
+ `db.query_tokenized.statement` – a instrução de consulta tokenizada.
+ `db.query_tokenized.db_id `— O ID sintético que o Performance Insights gera para você. Este exemplo retorna o ID sintético `pi-1064184600`.
+ `db.query_tokenized.id` – o ID da consulta dentro do Performance Insights.

  No Console de gerenciamento da AWS, esse ID é chamado de Support ID. Tem esse nome porque o ID é um dado que o AWS Support pode examinar para ajudá-lo a solucionar um problema com seu banco de dados. AWS leva a segurança e a privacidade de seus dados extremamente a sério, e quase todos os dados são armazenados criptografados com você AWS KMS key. Portanto, ninguém lá dentro AWS pode ver esses dados. No exemplo precedente, `tokenized.statement` e `tokenized.db_id` são armazenados em formato criptografado. Se você tiver um problema com seu banco de dados, o AWS Support pode ajudá-lo referenciando o Support ID.

Ao consultar, pode ser conveniente especificar `Group` em `GroupBy`. No entanto, para um controle mais refinado sobre os dados retornados, especifique a lista de dimensões. Por exemplo, se tudo o que for necessário for o `db.query_tokenized.statement`, um atributo `Dimensions` poderá ser adicionado ao arquivo query.json.

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": {
            "Group": "db.query_tokenized",
            "Dimensions":["db.query_tokenized.statement"],
            "Limit": 10
        }
    }
]
```

### Recuperação da média de carga de banco de dados filtrada por Consulta
<a name="performance-insights-metrics-api-examples.DBLoadAverageByQuery"></a>

A consulta da API correspondente neste exemplo é semelhante ao comando em [Recuperar a média de carga de banco de dados para consulta principal](#performance-insights-metrics-api-examples.topquery). No entanto, o arquivo query.json tem o seguinte conteúdo.

```
[
 {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_state", "Limit": 5  }, 
        "Filter": { "db.query_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }
    }
]
```

Nessa resposta, todos os valores são filtrados de acordo com a contribuição da consulta tokenizada AKIAIOSFODNN7 EXAMPLE especificada no arquivo query.json. As chaves também podem seguir uma ordem diferente de uma consulta sem um filtro, porque são os cinco principais estados de espera que afetaram a consulta filtrada.

# CloudWatch Métricas da Amazon para Performance Insights
<a name="performance-insights-cloudwatch"></a>

O Performance Insights publica automaticamente métricas na Amazon CloudWatch. Os mesmos dados podem ser consultados no Performance Insights, mas ter as métricas inseridas CloudWatch facilita a adição de CloudWatch alarmes. Também facilita a adição de métricas aos painéis do CloudWatch existentes.


| Métrica | Description | 
| --- | --- | 
|  DBLoad  |  O número de sessões ativas do Amazon DocumentDB. Normalmente, você deseja os dados para o número médio de sessões ativas. No Performance Insights, esses dados são consultados como `db.load.avg`.  | 
|  DBLoadCPU  |  O número de sessões ativas em que o tipo do estado de espera é CPU. No Performance Insights, esses dados são consultados como `db.load.avg`, filtrados pelo tipo de estado de espera `CPU`.  | 
|  DBLoadSem CPU  |  O número de sessões ativas em que o tipo do estado de espera não é CPU.  | 

**nota**  
Essas métricas são publicadas CloudWatch somente se houver carga na instância de banco de dados.

Você pode examinar essas métricas usando o CloudWatch console AWS CLI, o ou a CloudWatch API.

Por exemplo, você pode obter as estatísticas da `DBLoad` métrica executando o [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html)comando.

```
aws cloudwatch get-metric-statistics \
    --region ap-south-1 \
    --namespace AWS/DocDB \
    --metric-name DBLoad  \
    --period 360 \
    --statistics Average \
    --start-time 2022-03-14T8:00:00Z \
    --end-time 2022-03-14T9:00:00Z \
    --dimensions Name=DBInstanceIdentifier,Value=documentdbinstance
```

Este exemplo gera uma saída semelhante à seguinte.

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-03-14T08:42:00Z", 
            "Average": 1.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:24:00Z", 
            "Average": 2.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:54:00Z", 
            "Average": 6.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:36:00Z", 
            "Average": 5.7, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:06:00Z", 
            "Average": 4.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:00:00Z", 
            "Average": 5.2, 
            "Unit": "None"
        }
    ], 
    "Label": "DBLoad"
}
```

Você pode usar a função matemática `DB_PERF_INSIGHTS` métrica no CloudWatch console para consultar as métricas do contador do Amazon DocumentDB Performance Insights. A função `DB_PERF_INSIGHTS` também inclui a métrica `DBLoad` em intervalos de menos de um minuto. Você pode definir CloudWatch alarmes para essas métricas. Para obter mais detalhes sobre como criar um alarme, consulte [Criar um alarme nas métricas de contador do Performance Insights de um AWS banco de dados](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html). 

Para obter mais informações sobre CloudWatch, consulte [O que é a Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) no *Guia do CloudWatch usuário da Amazon*. 

# Métricas de contadores do Performance Insights
<a name="performance-insights-counter-metrics"></a>

Métricas de contador são métricas de performance do sistema operacional no painel do Performance Insights. Para ajudar a identificar e analisar problemas de performance, é possível correlacionar métricas de contadores com a carga de banco de dados.

## Contadores de sistema operacional do Performance Insights
<a name="performance-insights-counter-metrics-counters"></a>

Os contadores de sistema operacional a seguir estão disponíveis no Performance Insights para o Amazon DocumentDB.


| Contador | Type | Métrica | 
| --- | --- | --- | 
| ativo | memory | os.memory.active | 
| buffers | memory | os.memory.buffers | 
| cached | memory | os.memory.cached | 
| dirty | memory | os.memory.dirty | 
| free | memory | os.memory.free | 
| inactive | memory | os.memory.inactive | 
| mapped | memory | os.memory.mapped | 
| pageTables | memory | os.memory.pageTables | 
| slab | memory | os.memory.slab | 
| total | memory | os.memory.total | 
| writeback | memory | os.memory.writeback | 
| idle | cpuUtilization | os.cpuUtilization.idle | 
| system | cpuUtilization | os.cpuUtilization.system | 
| total | cpuUtilization | os.cpuUtilization.total | 
| user | cpuUtilization | os.cpuUtilization.user | 
| wait | cpuUtilization | os.cpuUtilization.wait | 
| one | loadAverageMinute | então. loadAverageMinute.um | 
| fifteen | loadAverageMinute | então. loadAverageMinute.quinze | 
| cinco | loadAverageMinute | então. loadAverageMinute.cinco | 
| cached | swap | os.swap.cached | 
| free | swap | os.swap.free | 
| em | swap | os.swap.in | 
| out | swap | os.swap.out | 
| total | swap | os.swap.total | 
| rx | network | os.network.rx | 
| tx | network | os.network.tx | 
| núm VCPUs | general | os.general.num VCPUs | 