Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Monitore o desempenho da query com o analisador de query

Disponível apenas em clusters M10+

O Query Profiler diagnostica e monitora problemas de performance. Esse monitoramento pode expor queries de execução lenta e suas principais estatísticas de desempenho na IU do Atlas.

O Atlas coleta e exibe estatísticas de qualquer uma das suas instâncias mongod. O profiler de query armazena seus mongod dados de query log, que podem ser acessados diretamente pelo profiler de query ou pelo Atlas CLI, e usá-los para identificar query lentas. O Atlas exibe esses dados na página Query Insights, na aba Query Profiler de uma instância.

Observação

O Analisador de query é diferente do Database Profiler. O Criador de Perfil de Consulta identifica queries específicas ineficientes com base em entradas de seus mongod logs do. O Database Profiler retorna informações detalhadas sobre os comandos executados no mongod com base no nível de criação de perfil especificado. Alterar o nível de perfil não impacto as consultas lentas exibidas no Criador de perfil de consulta.

O Atlas profiler de query mostra operações em todo o cluster por padrão. Você pode filtrar a visualização do profiler de query para somente operações provenientes de hosts especificados com o menu suspenso Filter by Hosts, que permite visualizar dados relacionados a um ou mais hosts específicos ou visualizar grupos de hosts primários ou secundários. A opção Query Insights na barra lateral Cluster exibe informações para revelar operações de banco de dados lentas em um período de tempo definido, como o seguinte:

  • Operation Execution Time
  • Docs Examined : Returned Ratio

O Atlas profiler de query suporta operações de agrupamento do mesmo tipo em execução na mesma coleção em torno do mesmo carimbo de data/hora para suportar ponto de dados adicionais.

Para suportar ponto de dados adicionais, o Atlas Profiler de Query suporta operações de agrupamento que atendem aos seguintes critérios:

  • As operações são do mesmo tipo de operação.

  • As operações estão em execução no mesmo namespace.

  • As operações têm valores booleanos hasSort e usedIndex correspondentes.

  • As operações são executadas em torno do mesmo registro de data e hora.

O Atlas gerencia o limite de operações lentas para cada mongod host com base no tempo médio de execução da operação nesse host. Este limite pode ser alterado utilizando o db.setProfilingLevel mongosh comando.

Observação

A alteração do limite para operações lentas usando db.setProfilingLevel pode impacto o desempenho e as configurações de registro do sistema. Considere cuidadosamente quaisquer implicações de desempenho e segurança antes de usar db.setProfilingLevel o para ajustar as configurações do Analisador de query em uma implantação de produção. As configurações do Analisador de query são redefinidas para os valores padrão após a reinicialização de um nó.

Além disso, aumentar o zoom no eixo x do gráfico de dispersão buscará novamente as operações lentas e poderá fornecer fidelidade mais detalhada das operações lentas durante o período de tempo selecionado.

Observação

Para recusar o limite de operação lenta gerenciado pelo Atlas e utilizar um limite de query lenta fixo de 100 milissegundos em vez disso, utilize a Atlas Administration API. Consulte Desabilitar limite de operação lenta gerenciada. Para clusters Free (anteriormente conhecido como M0) e clusters Flex, o Atlas desativa o limite de operação de query lenta gerenciado pelo Atlas como padrão e você não pode habilitá-lo.

Importante

Leia as seguintes considerações antes de habilitar o Analisador de query.

Os dados de perfil podem incluir informações confidenciais, incluindo o conteúdo de query ao banco de dados. Certifique-se de que a exposição desses dados ao Atlas seja consistente com suas práticas de segurança da informação.

O Analisador de query exibe aproximadamente 100.000 logs de amostra por vez. Ele mostra todos os logs se 100.000 ou menos logs foram registrados nos hosts selecionados e no intervalo de tempo.

O Atlas exibe não mais do que 100.000 pontos de dados nos gráficos Query Profiler .

Os dados de registro são processados em lotes. Os dados podem ser atrasados em até cinco minutos a partir de tempo real.

O Analisador de query não inclui operações em massa em sua amostragem e análise de query. As operações de gravação em massa são excluídas das queries com perfil exibidas no Analisador de query. As operações excluídas bulkWrite() incluem, updateMany com vários stmtIds e operações multidocumento semelhantes.

Se um cluster experimentar um pico de atividade e gerar uma quantidade extremamente grande de mensagens de log, o Atlas poderá parar de coletar e armazenar novos registros por um período de tempo.

Observação

Os limites da taxa de análise de log se aplicam somente à interface do usuário do Performance Advisor, à interface do usuário de insights de consulta e à interface do usuário de rastreamento de acesso. Os arquivos de log para download estão sempre completos.

Algumas operações de alta latência $lookup não geram um registro de queries lentas para a collection estrangeira. Isso pode ocorrer porque os registros de query lentos correspondem a operações relatadas no Analisador de query, enquanto as métricas de latência incrementam somente quando um bloqueio de collection é adquirido.

Se a query do $lookup em um shard puder executar uma leitura local, o $lookup não registrará uma operação separada para query da collection externa. Uma leitura local refere-se a quando a query na collection externa tem como alvo apenas o mesmo shard em que a operação atual está sendo executada. Como resultado, a operação $lookup aumenta as métricas de latência e as contagens de operações do Namespace Insights, mas não gera um registro de queries lentas para a collection externa.

Para habilitar ou desabilitar o Performance Advisor e o profiler de query para um projeto, você deve ter a função Project Owner para o projeto ou a função Organization Owner em sua organização principal.

Para visualizar o desempenho da query no Analisador de query, você deve ter acesso Project Read Only ou Project Observability Viewer ao projeto.

O Atlas habilita o Analisador de query por padrão.

Para desabilitar o Profiler de query:

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Na barra lateral, clique no ícone ao lado de Project Overview.

A página Configurações do projeto é exibida.

2

Na seção Database Monitoring Tools, alterne Performance Advisor and Profiler para Off.

A seção a seguir descreve como encontrar queries lentas usando o Analisador de query.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Clusters sob o título Database.

A página Clusters é exibida.

2
  1. Clique no nome do cluster para abrir a barra lateral Cluster.

  2. Clique em Query Insights na barra lateral Cluster.

  3. Clique na aba Query Profiler.

    O Analisador de query exibe todos os seus dados do log nos nós primário e secundário por padrão.

3

O Analisador de query usa um gráfico de dispersão e uma tabela diretamente abaixo do gráfico para ajudá-lo a encontrar operações lentas.

  1. Selecione um ou mais hosts para os quais deseja visualizar métricas no menu suspenso Filter by Hosts.

  2. Selecione o período de tempo nos menus suspensos Time Range ou Filter by Date and Time. O Analisador de query exibe dados das últimas 24 horas por padrão.

  3. Selecione a métrica no menu suspenso Operation Execution Time. As opções incluem:

    • Operation Execution Time (padrão): o tempo total, normalmente em milissegundos, que uma operação do banco de dados MongoDB levou para ser concluída.

    • Response Length: o tamanho dos documentos ou dados retornados pelo banco de dados em resposta a uma operação, medido em bytes.

    • Docs Examined: o número total de documentos digitalizados dentro da collection para encontrar os resultados de uma query.

    • Docs Returned: o número de documentos que corresponderam aos critérios de query que o Atlas retornou para a query.

    • Keys Examined: o número total de entradas de índice verificadas pelo banco de dados durante a execução da query.

    • Num Yields: o número de vezes que uma operação foi pausada para permitir que outras operações continuassem.

    • Tokens Used: O número de tokens usados por um $rerank estágio na operação.

    • Docs Examined : Returned Ratio: a proporção calculada dividindo Docs Examined por Docs Returned.

    • Keys Examined : Returned Ratio: a proporção calculada dividindo Keys Examined por Docs Returned.

  4. Clique no menu suspenso All operation types para alterar quais operações você deseja criar o perfil. O analisador de query exibe todos os tipos de operação por padrão.

4
  • Clique em um ponto de dispersão no gráfico. Isso abre um painel do lado direito com informações resumidas.

  • Clique em View more details no painel do lado direito para visualizar a forma de query completa, estatísticas de execução detalhadas, registro de consulta e sugestões para melhoria.

  • Clique e arraste ao longo dos eixos X e Y para ampliar um subconjunto específico dos dados coletados.

  • Role para baixo até a tabela abaixo do gráfico para visualizar uma lista de consultas lentas por coleção. Clique em uma linha da tabela para obter mais detalhes.

5

Ao inspecionar uma query lenta, comece examinando estas principais métricas e padrões:

  • Operation Execution Time (millis): Tempo de query em milissegundos. Este é o principal indicador de uma query lenta. Se essa métrica for consistentemente alta, considere otimizar a lógica da query, agrupar os resultados ou repensar como os dados estão sendo acessados.

  • Se você vir "planSummary": "COLLSCAN": no registro de queries, a query executou uma verificação de collection e não usou um índice. Este é um sinal forte para adicionar um índice ou reescrever a query.

  • Docs Examined (docsExamined): número de documentos que o MongoDB inspecionou para a query. Se Docs Examined for significativamente maior que Docs Returned, isso geralmente significa que:

    • A query digitalizou muitos documentos para encontrar os resultados, o que pode impacto a latência da rede e o desempenho dos aplicação .

    • Os índices existentes são ineficientes ou não são ideais para essa query específica. Para saber mais, consulte Índices.

  • Keys Examined (keysExamined): número de chaves de índice verificadas para a query. Se essa métrica for 0 para uma query que inclui condições de filtro, é altamente provável que não haja índice e o MongoDB verificou toda a collection. Essa é a principal causa de lentidão. Se Docs Examined for muito alto e Keys Examined for 0 ou muito baixo em comparação com Docs Examined, você provavelmente está examinando a coleção ou um índice muito não seletivo. Para saber mais, consulte Índices.

  • Um Docs Examined : Returned Ratio alto significa que a query está verificando muitos documentos para retornar poucos resultados, o que pode ser um sinal de uma query ineficiente ou de índices ausentes.

  • Num Yields (numYields): os rendimentos frequentes sugerem a contenção de recursos ou operações de longa duração que estão pausando, potencialmente afetando a taxa de transferência geral.

  • Tokens Used tokensUsed(): o número de tokens usados por um estágio da operação. Se essa métrica for consistentemente alta, considere $rerank reduzir numDocsToRerank ou reduzir os campos especificados em path que têm valores grandes. Use o filtro With Rerank Stage e Without Rerank Stage para filtrar as operações com um $rerank estágio.

  • Response Length: comprimentos de resposta incomumente grandes indicam que as queries estão retornando mais dados do que o necessário. Considere usar projeções para limitar os campos retornados.

  • Uses Index (usedIndex): este booleano confirma se um índice MongoDB foi usado. Se false configurado para uma query que deve ser indexada, adicione um índice.

    Observação

    Esta métrica não reflete o uso do índice de pesquisa MongoDB.

  • Se hasSort estiver definido true como, isso indica que a query contém um sort() método.sort() Métodos não indexados podem consumir muitos recursos. Verifique a configuração do índice de pesquisa e confirme se ela suporta o sort() método.