

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

# Definir o perfil das operações do Amazon DocumentDB
<a name="profiling"></a>

É possível usar o criador de perfil no Amazon DocumentDB (compativel com MongoDB) para registrar o tempo de execução e os detalhes das operações que foram realizadas no seu cluster. O criador de perfil é útil para monitorar as operações mais lentas em seu cluster para ajudar você a melhorar o desempenho de consultas individuais e o desempenho geral do cluster.

Por padrão, o recurso profiler está desabilitado. Quando ativado, o criador de perfil registra operações que estão demorando mais do que um valor limite definido pelo cliente (por exemplo, 100 ms) no Amazon Logs. CloudWatch Os detalhes registrados incluem o comando perfilado, a hora, o resumo do plano e os metadados do cliente. Depois que as operações forem registradas no CloudWatch Logs, você poderá usar o CloudWatch Logs Insights para analisar, monitorar e arquivar seus dados de perfil do Amazon DocumentDB. Consultas comuns são fornecidas na seção [Consultas comuns](#profiling.common-queries). 

Quando habilitado, o profiler usa recursos adicionais em seu cluster. Recomendamos começar com um valor limite alto (por exemplo, 500 ms) e diminuí-lo gradualmente para identificar as operações lentas. Começar com um valor limite de 50 ms pode causar problemas de desempenho no cluster para aplicações de alto throughput. O profiler é habilitado no nível do cluster e funciona em todas as instâncias e bancos de dados em um cluster. O Amazon DocumentDB registra as operações no Amazon CloudWatch Logs com base no melhor esforço.

Embora o Amazon DocumentDB não imponha nenhuma cobrança adicional para habilitar o criador de perfil, você paga as taxas padrão pelo uso de registros. CloudWatch Para obter informações sobre CloudWatch os preços do Logs, consulte os [ CloudWatch preços da Amazon](https://aws.amazon.com/cloudwatch/pricing/). 

**Topics**
+ [Operações compatíveis](#profiling.supported-commands)
+ [Limitações](#profiling.limitations)
+ [Ativar o profiler](#profiling.enable-profiling)
+ [Desativar o profiler](#profiling.disable-profiling)
+ [Desativar a exportação de logs do profiler](#profiling.disabling-logs-export)
+ [Acessar seus logs do profiler](#profiling.accessing)
+ [Consultas comuns](#profiling.common-queries)

## Operações compatíveis
<a name="profiling.supported-commands"></a>

O profiler do Amazon DocumentDB suporta as seguintes operações:
+ `aggregate`
+ `count`
+ `delete`
+ `distinct`
+ `find` (OP\$1QUERY e comando)
+ `findAndModify`
+ `insert`
+ `update`

## Limitações
<a name="profiling.limitations"></a>

O criador de perfil de consulta lenta só poderá emitir registros do criador de perfil se todo o conjunto de resultados da consulta couber em um lote e se o conjunto de resultados estiver abaixo de 16 MB (tamanho máximo do BSON). Conjuntos de resultados maiores que 16 MB são divididos automaticamente em vários lotes.

A maioria dos drivers ou shells pode definir um tamanho de lote padrão que seja pequeno. Você pode especificar o tamanho do lote como parte da sua consulta. Com o objetivo de capturar registros de consultas lentos, recomendamos um tamanho de lote que exceda o tamanho do conjunto de resultados esperado. Se você não tiver certeza do tamanho do conjunto de resultados ou se ele variar, você também pode definir o tamanho do lote para um número grande (por exemplo, 100k).

No entanto, usar um lote maior significa que mais resultados precisarão ser recuperados do banco de dados antes que uma resposta seja enviada ao cliente. Para algumas consultas, isso pode criar maiores atrasos antes de você obter resultados. Se você não planeja consumir todo o conjunto de resultados, é possível que gaste mais I/Os para processar a consulta e descartar o resultado.

## Ativar o profiler do Amazon DocumentDB
<a name="profiling.enable-profiling"></a>

A habilitação do profiler em um cluster é um processo de três etapas. Certifique-se de que todas as etapas foram concluídas, ou os registros de criação de perfil não serão enviados para o CloudWatch Logs. O profiler é definido no nível do cluster e executado em todos os bancos de dados e instâncias do cluster.

**Como habilitar o profiler em um cluster**

1. Como você não pode modificar um grupo de parâmetros de cluster padrão, verifique se tem um grupo de parâmetros de cluster personalizado disponível. Para obter mais informações, consulte [Criando grupos de parâmetros de cluster do Amazon DocumentDB](cluster_parameter_groups-create.md). 

1. Ao usar um grupo de parâmetros de cluster personalizado disponível, modifique os seguintes parâmetros: `profiler`, `profiler_threshold_ms` e `profiler_sampling_rate`. Para obter mais informações, consulte [Modificando grupos de parâmetros de cluster do Amazon DocumentDB](cluster_parameter_groups-modify.md). 

1. Crie ou modifique seu cluster para usar o grupo de parâmetros de cluster personalizado e para permitir a exportação de `profiler` CloudWatch registros para Logs.

As seções a seguir mostram como implementar essas etapas usando o Console de gerenciamento da AWS e o AWS Command Line Interface (AWS CLI).

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

1. Antes de começar, crie um cluster do Amazon DocumentDB e um grupo de parâmetros de cluster personalizado se você ainda não tiver um. Para obter mais informações, consulte [Criando grupos de parâmetros de cluster do Amazon DocumentDB](cluster_parameter_groups-create.md) e [Criar um cluster do Amazon DocumentDB](db-cluster-create.md). 

1. Ao usar um grupo de parâmetros de cluster personalizado disponível, modifique os seguintes parâmetros. Para obter mais informações, consulte [Modificando grupos de parâmetros de cluster do Amazon DocumentDB](cluster_parameter_groups-modify.md). 
   + `profiler` - Habilita ou desabilita a criação de perfis de consulta. Os valores permitidos são `enabled ` e `disabled`. O valor padrão é `disabled`. Para habilitar a criação de perfis, defina o valor como `enabled`.
   + `profiler_threshold_ms`— Quando `profiler` está definido como`enabled`, todos os comandos que estão demorando mais do que ` profiler_threshold_ms` estão registrados. CloudWatch Os valores permitidos são `[50-INT_MAX]`. O valor padrão é `100`.
   + `profiler_sampling_rate` - a parcela das operações lentas que devem ser perfiladas ou registradas em log. Os valores permitidos são `[0.0-1.0]`. O valor padrão é `1.0`.

1. Modifique seu cluster para usar o grupo de parâmetros de cluster personalizado e defina as exportações de log do profiler para publicação na Amazon CloudWatch.

   1. No painel de navegação, escolha **Clusters** para adicionar o grupo de parâmetros personalizado a um cluster.

   1. Selecione o botão à esquerda do nome do cluster que deseja associar ao grupo de parâmetros. Selecione **Actions** e **Modify** para modificar seu cluster.

   1. Em **Cluster options**, escolha o grupo de parâmetros personalizado na etapa acima para adicioná-lo ao cluster.

   1. Em **Exportações de registros**, selecione **Registros do Profiler** para publicar na Amazon CloudWatch.

   1. Escolha **Continue ** para exibir um resumo das modificações.

   1. Depois de verificar suas alterações, é possível aplicá-las imediatamente ou durante a próxima janela de manutenção em **Scheduling of modifications**.

   1. Escolha **Modify cluster ** para atualizar seu cluster com o novo grupo de parâmetros. 

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

O procedimento a seguir habilita o profiler em todas as operações compatíveis para o cluster `sample-cluster`.

1. Antes de começar, verifique se você tem um grupo de parâmetros de cluster personalizado disponível executando o seguinte comando e revisando a saída de um grupo de parâmetros de cluster que não tem `default` no nome e tem `docdb3.6` como família do grupo de parâmetros. Se você não tiver um grupo de parâmetros de cluster não padrão, consulte [Criando grupos de parâmetros de cluster do Amazon DocumentDB](cluster_parameter_groups-create.md). 

   ```
   aws docdb describe-db-cluster-parameter-groups \
       --query 'DBClusterParameterGroups[*].[DBClusterParameterGroupName,DBParameterGroupFamily]'
   ```

   Na saída a seguir, somente `sample-parameter-group ` atende ambos os critérios.

   ```
   [
          [
              "default.docdb3.6",
              "docdb3.6"
          ],
          [
              "sample-parameter-group",
              "docdb3.6"
          ]
   ]
   ```

1. Usando seu grupo de parâmetros de cluster personalizado, modifique os seguintes parâmetros:
   + `profiler` - Habilita ou desabilita a criação de perfis de consulta. Os valores permitidos são `enabled ` e `disabled`. O valor padrão é `disabled`. Para habilitar a criação de perfis, defina o valor como `enabled`.
   + `profiler_threshold_ms`— Quando `profiler` está definido como`enabled`, todos os comandos `profiler_threshold_ms` demoram mais do que os CloudWatch registrados. Os valores permitidos são `[50-INT_MAX]`. O valor padrão é `100`. 
   + `profiler_sampling_rate` - a parcela das operações lentas que devem ser perfiladas ou registradas em log. Os valores permitidos são `[0.0-1.0]`. O valor padrão é `1.0`.

   ```
   aws docdb modify-db-cluster-parameter-group \
       --db-cluster-parameter-group-name sample-parameter-group \
       --parameters ParameterName=profiler,ParameterValue=enabled,ApplyMethod=immediate \
                    ParameterName=profiler_threshold_ms,ParameterValue=100,ApplyMethod=immediate \
                    ParameterName=profiler_sampling_rate,ParameterValue=0.5,ApplyMethod=immediate
   ```

1. Modifique o cluster do Amazon DocumentDB para que ele use o grupo de parâmetro de cluster personalizado `sample-parameter-group` da etapa anterior e defina o parâmetro `--enable-cloudwatch-logs-exports` como `profiler`.

   O código a seguir modifica o cluster `sample-cluster` para usar o `sample-parameter-group` da etapa anterior e é adicionado `profiler` às exportações de CloudWatch registros ativadas.

   ```
   aws docdb modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --db-cluster-parameter-group-name sample-parameter-group \
          --cloudwatch-logs-export-configuration '{"EnableLogTypes":["profiler"]}'
   ```

   A saída dessa operação é semelhante à seguinte.

   ```
   {
       "DBCluster": {
           "AvailabilityZones": [
               "us-east-1c",
               "us-east-1b",
               "us-east-1a"
           ],
           "BackupRetentionPeriod": 1,
           "DBClusterIdentifier": "sample-cluster",
           "DBClusterParameterGroup": "sample-parameter-group",
           "DBSubnetGroup": "default",
           "Status": "available",
           "EarliestRestorableTime": "2020-04-07T02:05:12.479Z",
           "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
           "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
           "MultiAZ": false,
           "Engine": "docdb",
           "EngineVersion": "3.6.0",
           "LatestRestorableTime": "2020-04-08T22:08:59.317Z",
           "Port": 27017,
           "MasterUsername": "test",
           "PreferredBackupWindow": "02:00-02:30",
           "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
           "DBClusterMembers": [
               {
                   "DBInstanceIdentifier": "sample-instance-1",
                   "IsClusterWriter": true,
                   "DBClusterParameterGroupStatus": "in-sync",
                   "PromotionTier": 1
               },
               {
                   "DBInstanceIdentifier": "sample-instance-2",
                   "IsClusterWriter": true,
                   "DBClusterParameterGroupStatus": "in-sync",
                   "PromotionTier": 1
               }
           ],
           "VpcSecurityGroups": [
               {
                   "VpcSecurityGroupId": "sg-abcd0123",
                   "Status": "active"
               }
           ],
           "HostedZoneId": "ABCDEFGHIJKLM",
           "StorageEncrypted": true,
           "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
           "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
           "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster",
           "AssociatedRoles": [],
           "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
           "EnabledCloudwatchLogsExports": [
               "profiler"
           ],
           "DeletionProtection": true
       }
   }
   ```

------

## Desativar o profiler do Amazon DocumentDB
<a name="profiling.disable-profiling"></a>

Para desativar o criador de perfil, você desativa o `profiler` parâmetro e a exportação de `profiler` registros para o CloudWatch Logs.

### Desabilitar o profiler
<a name="profiling.disable-profiler"></a>

Você pode desativar o `profiler` parâmetro usando o Console de gerenciamento da AWS ou AWS CLI, da seguinte forma.

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

O procedimento a seguir usa o Console de gerenciamento da AWS para desativar o Amazon DocumentDB`profiler`.

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. No painel de navegação, escolha **grupos de parâmetros**. Selecione o nome do grupo de parâmetros de cluster ao qual você deseja desabilitar o profiler.

1. Na página **Parâmetros de cluster** resultante, selecione o botão à esquerda do parâmetro `profiler` e escolha **Editar**.

1. Na caixa de diálogo **Modificar profiler** escolha `disabled` na lista.

1. Escolha **Modificar parâmetro de cluster**. 

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

Para desabilitar o `profiler` em um cluster usando a AWS CLI, modifique o cluster da seguinte forma.

```
aws docdb modify-db-cluster-parameter-group \
    --db-cluster-parameter-group-name sample-parameter-group \
    --parameters ParameterName=profiler,ParameterValue=disabled,ApplyMethod=immediate
```

------

## Desativar a exportação de logs do profiler
<a name="profiling.disabling-logs-export"></a>

Você pode desativar a exportação de `profiler` registros para o CloudWatch Logs usando o Console de gerenciamento da AWS ou AWS CLI, da seguinte forma.

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

O procedimento a seguir usa o Console de gerenciamento da AWS para desativar a exportação de registros do Amazon DocumentDB para o. CloudWatch

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 **Clusters**. Escolha o botão à esquerda do nome do cluster para o qual você deseja desativar a exportação de logs.

1. No menu **Ações**, escolha **Modificar**.

1. Role para baixo até a seção **Log exports** e desmarque **Profiler logs**. 

1. Escolha **Continuar**.

1. Analise as alterações e escolha quando você deseja que essa mudança seja aplicada ao seu cluster:
   + **Aplicar durante a próxima janela de manutenção programada**
   + **Aplicar imediatamente**

1. Escolha **Modificar Cluster**.

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

O código a seguir modifica o cluster `sample-cluster ` e desativa os registros do CloudWatch profiler.

**Example**  
Para Linux, macOS ou Unix:  

```
aws docdb modify-db-cluster \
   --db-cluster-identifier sample-cluster \
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'
```
Para Windows:  

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier sample-cluster ^
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'
```
A saída dessa operação é semelhante à seguinte.  

```
{
    "DBCluster": {
        "AvailabilityZones": [
            "us-east-1c",
            "us-east-1b",
            "us-east-1a"
        ],
        "BackupRetentionPeriod": 1,
        "DBClusterIdentifier": "sample-cluster",
        "DBClusterParameterGroup": "sample-parameter-group",
        "DBSubnetGroup": "default",
        "Status": "available",
        "EarliestRestorableTime": "2020-04-08T02:05:17.266Z",
        "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
        "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
        "MultiAZ": false,
        "Engine": "docdb",
        "EngineVersion": "3.6.0",
        "LatestRestorableTime": "2020-04-09T05:14:44.356Z",
        "Port": 27017,
        "MasterUsername": "test",
        "PreferredBackupWindow": "02:00-02:30",
        "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
        "DBClusterMembers": [
            {
                "DBInstanceIdentifier": "sample-instance-1",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            },
            {
                "DBInstanceIdentifier": "sample-instance-2",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            }
        ],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-abcd0123",
                "Status": "active"
            }
        ],
        "HostedZoneId": "ABCDEFGHIJKLM",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
        "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster",
        "AssociatedRoles": [],
        "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
        "DeletionProtection": true
    }
}
```

------

## Acessar seus logs do profiler do Amazon DocumentDB
<a name="profiling.accessing"></a>

Siga estas etapas para acessar seus registros de perfil na Amazon CloudWatch.

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

1. Certifique-se de estar na mesma região que seu cluster do Amazon DocumentDB.

1. No painel de navegação, selecione **Logs**.

1. Para encontrar os logs do profiler do cluster, selecione `/aws/docdb/yourClusterName/profiler` na lista.

   Os logs de perfil para cada uma das suas instâncias estão disponíveis em cada um dos respectivos nomes de instância.

## Consultas comuns
<a name="profiling.common-queries"></a>

Veja as seguintes consultas comuns que você pode usar para analisar seus comandos perfilados. Para obter mais informações sobre o CloudWatch Logs Insights, consulte [Análise de dados de registro com o CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) e [exemplos de consultas.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html) 

### Obter as 10 operações mais lentas de uma coleção especificada
<a name="profiling.common-queries.slow-queries-on-collection"></a>

```
filter ns="test.foo" | sort millis desc | limit 10
```

### Obter todas as operações de atualização em uma coleção que levou mais de 60ms
<a name="profiling.common-queries.updates-gt-60-ms"></a>

```
filter millis > 60 and op = "update"
```

### Obter as 10 operações mais lentas do último mês
<a name="profiling.common-queries.slow-queries-last-month"></a>

```
sort millis desc | limit 10
```

### Obter todas as consultas com um resumo de planos COLLSCAN
<a name="profiling.common-queries.collscan-plan-summary"></a>

```
filter planSummary="COLLSCAN"
```