Definir o perfil das operações do Amazon DocumentDB - Amazon DocumentDB

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

É 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 ajudá-lo 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 as operações que estão demorando mais do que um valor limite definido pelo cliente (por exemplo, 100 ms) no Amazon CloudWatch Logs. Os detalhes registrados incluem o comando perfilado, a hora, o resumo do plano e os metadados do cliente. After the operations are logged to CloudWatch Logs, you can use CloudWatch Logs Insights to analyze, monitor, and archive your Amazon DocumentDB profiling data. Consultas comuns são fornecidas na seção Consultas comuns.

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 aplicativos de alta taxa de transferência. 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 operações no Amazon CloudWatch Logs com base no melhor esforço.

Embora o Amazon DocumentDB não imponha cobranças adicionais para habilitar o profiler, serão cobradas as taxas padrão pelo uso do CloudWatch Logs. Para obter informações sobre o preço do CloudWatch Logs, consulte Amazon CloudWatch pricing.

Operações compatíveis

O profiler do Amazon DocumentDB suporta as seguintes operações:

  • aggregate

  • count

  • delete

  • distinct

  • find (OP_QUERY e comando)

  • findAndModify

  • insert

  • update

Limitações

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 habilitação do profiler em um cluster é um processo de três etapas. Verifique se todas as etapas foram concluídas, ou os logs 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.

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

  3. Crie ou modifique seu cluster para usar o grupo de parâmetros de cluster personalizado e habilitar a exportação de logs do profiler para o CloudWatch Logs.

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

Using the AWS Management Console
  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 ter mais informações, consulte Criando grupos de parâmetros de cluster do Amazon DocumentDB e Criar um cluster do Amazon DocumentDB.

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

    • 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 o profiler estiver definido como enabled, todos os comandos que demorarem mais do que profiler-threshold-ms serão registrados em log no 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.

  3. Modifique seu cluster para usar o grupo de parâmetros de cluster personalizado e defina as exportações de log do profiler para publicar no Amazon CloudWatch.

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

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

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

    4. Em Log exports, selecione Profiler logs para publicar no Amazon CloudWatch.

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

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

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

    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" ] ]
  2. 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 o profiler estiver definido como enabled, todos os comandos que demorarem mais do que profiler -threshold-ms serão registrados em log no CloudWatch. Os valores permitidos são [0-INT_MAX]. Definir esse valor como 0 cria o perfil de todas as operações compatíveis. 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
  3. 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 adiciona profiler às exportações do CloudWatch Logs habilitadas.

    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

Para desabilitar o profiler, desative o parâmetro profiler e a exportação de logs do profiler para o CloudWatch Logs.

Desabilitar o profiler

Você pode desabilitar o parâmetro profiler usando o AWS Management Console ou a AWS CLI, conforme segue.

Using the AWS Management Console

O procedimento a seguir usa o AWS Management Console para desativar o Amazon DocumentDBprofiler.

  1. Faça login no AWS Management Console e abra o console do Amazon DocumentDB em https://console.aws.amazon.com/docdb.

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

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

  4. Na caixa de diálogo Modificar profiler escolha disabled na lista.

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

Você pode desabilitar a exportação de logs do profiler para o CloudWatch Logs usando o AWS Management Console ou a AWS CLI da seguinte forma.

Using the AWS Management Console

O procedimento a seguir usa o AWS Management Console para desabilitar a exportação de logs do Amazon DocumentDB para o CloudWatch.

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

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

  3. No menu Ações, escolha Modificar.

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

  5. Escolha Continuar.

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

  7. Escolha Modificar Cluster.

Using the AWS CLI

O código a seguir modifica o cluster sample-cluster e desabilita os logs do profiler do CloudWatch.

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

Siga estas etapas para acessar seus logs de perfil no Amazon CloudWatch.

  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

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

  3. No painel de navegação, selecione Logs.

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

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 Analyzing Log Data with CloudWatch Logs Insights e Sample Queries.

Obter as 10 operações mais lentas de uma coleção especificada

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

filter millis > 60 and op = "update"

Obter as 10 operações mais lentas do último mês

sort millis desc | limit 10

Obter todas as consultas com um resumo de planos COLLSCAN

filter planSummary="COLLSCAN"