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

Saída do analisador de banco de dados

O analisador de banco de dados captura informações de dados sobre operações de leitura e gravação, operações do cursor e comandos do banco de dados. Para configurar o perfil do banco de dados e definir os limites para a captura de dados de perfil, consulte a seção Analisador de Banco de Dados.

O perfil do banco de dados escreve dados na collection system.profile, que é uma capped collection. Para visualizar o resultado do perfil, use queries do MongoDB normais na collection system.profile.

Observação

Como o perfil do banco de dados grava dados na coleção system.profile em um banco de dados, o perfil cria perfis de alguma atividade de gravação, mesmo para bancos de dados que são somente leitura.

currentOp e o analisador de banco de dados relatam as mesmas informações de diagnóstico básicas para operações CRUD, incluindo o seguinte:

Essas operações também são incluídas no logging de queries lentas. Consulte slowOpThresholdMs para obter mais informações sobre registro de queries lentas.

Ao usar a Queryable Encryption, as operações CRUD em coleções criptografadas são omitidas da coleção system.profile. Para obter detalhes, consulte Redação.

Não é mais possível executar qualquer operação, inclusive leituras, na coleção system.profile em uma transação.

Para qualquer operação individual, os documentos criados pelo analisador de banco de dados incluem um subconjunto dos seguintes campos. A seleção precisa de campos nesses documentos depende do tipo de operação.

Observação

Para a saída específica para a versão do seu MongoDB, consulte a versão apropriada do Manual MongoDB.

system.profile.op

O tipo de operação. Os valores possíveis são:

  • command

  • count

  • distinct

  • geoNear

  • getMore

  • group

  • insert

  • mapReduce

  • query

  • remove

  • update

system.profile.ns

O namespace que a operação visa. Os namespaces no MongoDB assumem a forma do database, seguido por um ponto (.), seguido pelo nome da coleção.

system.profile.command

Um documento contendo o objeto de comando completo associado a esta operação.

Por exemplo, a seguinte saída contém o objeto de comando para uma operação find em uma collection denominada items em um banco de dados denominado test:

"command" : {
"find" : "items",
"filter" : {
"sku" : 1403978
},
...
"$db" : "test"
}

O seguinte exemplo de saída contém o objeto de comando para uma operação getMore gerada por um comando com ID de cursor 19234103609 em uma collection denominada items em um banco de dados denominado test:

"command" : {
"getMore" : Long("19234103609"),
"collection" : "items",
"batchSize" : 10,
...
"$db" : "test"
},

Se o documento de comando exceder 50 kilobytes, o documento terá o seguinte formulário:

"command" : {
"$truncated": <string>,
"comment": <string>
}

O campo $truncated contém um resumo de strings do documento, excluindo o campo comment do documento, se presente. Se, mesmo assim, o resumo exceder 50 kilobytes, ele será ainda mais truncado, indicado por uma reticência (...) no final da string.

O campo comment está presente se algum comentário foi passado para a operação. Um comentário pode ser anexado a qualquer comando de banco de dados.

system.profile.originatingCommand

Para operações do "getmore" que recuperam o próximo lote de resultados de um cursor, o campo originatingCommand contém o objeto de comando completo (por exemplo, find ou aggregate) que originalmente criou esse cursor.

system.profile.cursorid

O ID do cursor acessado pelas operações query e getmore .

system.profile.keysExamined

O número de chaves de índice que o MongoDB verificou para realizar a operação.

In general, if keysExamined is much higher than nreturned, the database is scanning many index keys to find the result documents. Consider creating or adjusting indexes to improve query performance..

keysExamined está disponível para os seguintes comandos e operações:

system.profile.docsExamined

O número de documentos na coleção que o MongoDB digitalizou para realizar a operação.

docsExamined está disponível para os seguintes comandos e operações:

Observação

Para operações de gravação, keysExamined e docsExamined incluem leituras realizadas durante tentativas de conflito de gravação. Se uma atualização encontrar conflitos de gravação e tentar novamente, o MongoDB lerá novamente as chaves de índice e os documentos em cada tentativa. Como resultado, esses valores podem exceder o número de documentos correspondidos ou modificados pela operação.

system.profile.inUseTrackedMemBytes

Novidades na versão 8.3.

Número de bytes de memória monitorada em uso pela operação de query atual.

system.profile.peakTrackedMemBytes

Novidades na versão 8.3.

Número máximo de bytes de memória monitorada em uso pela operação de query atual.

system.profile.hasSortStage

hasSortStage is a boolean that is true when a query cannot use the ordering in the index to return the requested sorted results; i.e. MongoDB must sort the documents after it receives the documents from a cursor. The field only appears when the value is true.

hasSortStage está disponível para os seguintes comandos e operações:

system.profile.usedDisk

Um booleano que indica se algum estágio de agregação gravou dados em arquivos temporários devido a restrições de memória.

Aparece apenas se usedDisk for verdadeiro.

system.profile.ndeleted

O número de documentos excluídos pela operação.

system.profile.ninserted

O número de documentos inseridos pela operação.

system.profile.nMatched

O número de documentos que correspondem à condição de querypara a operação de atualização.

system.profile.nModified

O número de documentos modificados pela operação de atualização.

system.profile.upsert

Um booleano que indica o valor da opção upsert da operação de atualização. Aparece apenas se upsert for verdadeiro.

system.profile.fromMultiPlanner

Um booleano que indica se o planejador de queryavaliou vários planos antes de escolher o plano de execução vencedor para a query.

Somente presente quando o valor é true.

system.profile.replanned

Um booleano que indica se o query removeu um plano armazenado em cache e reavaliou todos os planos candidatos.

Somente presente quando o valor é true.

system.profile.replanReason

Uma string que indica o motivo específico pelo qual um plano em cache foi removido.

Somente presente quando o valor de replanned for true.

system.profile.keysInserted

O número de chaves de índice inseridas para uma operação de gravação fornecida.

system.profile.writeConflicts

O número de conflitos encontrados durante a operação de gravação; por exemplo, uma operação de update tenta modificar o mesmo documento que outra operação update . Consulte também conflito de escrita.

system.profile.numYield

O número de vezes que a operação cedeu para permitir a conclusão de outras operações. Normalmente, as operações rendem quando precisam de acesso a dados que o MongoDB ainda não leu totalmente na memória. Isso permite que outras operações que tenham dados na memória sejam concluídas enquanto o MongoDB lê os dados da operação de produção. Para obter mais informações, consulte as perguntas frequentes sobre quando as operações resultam.

system.profile.queryHash

A partir do MongoDB 8.0, o campo queryHash existente é duplicado em um novo campo chamado planCacheShapeHash. Se você estiver usando uma versão anterior do MongoDB , verá apenas o campo queryHash. As futuras versões do MongoDB removerão o campo queryHash obsoleto, e você precisará usar o campo planCacheShapeHash em seu lugar.

system.profile.queryShapeHash

Novidades na versão 8.0.

queryShapeHash é uma string hexadecimal com o hash de uma forma de query. Para obter detalhes, consulte Formas de query.

system.profile.planCacheShapeHash

Uma string hexadecimal que representa um hash da forma da query em cache do plano e depende apenas da forma da query em cache do plano. planCacheShapeHash pode ajudar a identificar queries lentas, inclusive o filtro de query de operações de gravação, com a mesmo forma de query em cache do plano.

Observação

Como acontece com qualquer função de hash, duas formas de query de cache de plano diferentes podem resultar no mesmo valor de hash. No entanto, a ocorrência de colisões de hash entre diferentes formas de query de cache de plano é improvável.

Para obter mais informações sobre planCacheShapeHash e planCacheKey, consulte planCacheShapeHash e planCacheKey.

A partir do MongoDB 8.0, o campo queryHash existente é duplicado em um novo campo chamado planCacheShapeHash. Se você estiver usando uma versão anterior do MongoDB , verá apenas o campo queryHash. As futuras versões do MongoDB removerão o campo queryHash obsoleto, e você precisará usar o campo planCacheShapeHash em seu lugar.

system.profile.planCacheKey

Um hash da chave para a entrada de cache do plano associada à query.

Unlike planCacheShapeHash, planCacheKey is a function of both the plan cache query shape and the currently available indexes for that shape. Specifically, if indexes that can support the query shape are added or dropped, the planCacheKey value may change but planCacheShapeHash would not.

Para obter mais informações sobre planCacheShapeHash e planCacheKey, consulte planCacheShapeHash e planCacheKey.

A partir do MongoDB 8.0, o campo queryHash existente é duplicado em um novo campo chamado planCacheShapeHash. Se você estiver usando uma versão anterior do MongoDB , verá apenas o campo queryHash. As futuras versões do MongoDB removerão o campo queryHash obsoleto, e você precisará usar o campo planCacheShapeHash em seu lugar.

system.profile.queryFramework

A estrutura de query utilizada para processar uma operação.

system.profile.locks

The system.profile.locks provides information for various lock types and lock modes held during the operation.

Os possíveis tipos de trava são:

Bloquear tipo
Descrição

ParallelBatchWriterMode

Representa um bloqueio para o modo de escrita em lote paralelo.

Em versões anteriores, as informações do PBWM foram relatadas como parte das informações de bloqueio do Global.

ReplicationStateTransition

Representa o bloqueio obtido para transições de estado membro do conjunto de réplicas.

Global

Representa bloqueio global.

Database

Representa bloqueio de banco de dados.

Collection

Representa bloqueio de coleção.

Mutex

Representa mutex.

Metadata

Representa bloqueio de metadados.

DDLDatabase

Representa um reconhecimento de data center DDL .

Novidades na versão 7.1.

DDLCollection

Representa um bloqueio de collection DDL .

Novidades na versão 7.1.

oplog

Representa bloqueio no oplog.

Os possíveis modos de bloqueio para os tipos de bloqueio são os seguintes:

Modo de bloqueio
Descrição

R

Representa bloqueio compartilhado (S).

W

Representa bloqueio exclusivo (X).

r

Representa bloqueio de Intent Shared (IS).

w

Representa bloqueio Intent Exclusive (IX).

As informações de bloqueio devolvidas para os vários tipos de bloqueio incluem:

system.profile.locks.acquireCount

Número de vezes que a operação adquiriu a trava no modo especificado.

system.profile.locks.acquireWaitCount

Number of times the operation had to wait for the acquireCount lock acquisitions because the locks were held in a conflicting mode. acquireWaitCount is less than or equal to acquireCount.

system.profile.locks.timeAcquiringMicros

Tempo cumulativo em microssegundos que a operação teve que esperar para adquirir as travas.

timeAcquiringMicros divided by acquireWaitCount gives an approximate average wait time for the particular lock mode.

system.profile.locks.deadlockCount

O número de vezes que a operação encontrou impasses enquanto aguardava aquisições de trava.

Para obter mais informações sobre lock modes, consulte Que tipo de locking o MongoDB usa?.

system.profile.authorization

Novidades na versão 5.0.0.

O número de vezes que o cache do usuário é acessado para cada operação. Essas métricas só são exibidas quando uma operação acessa o cache do usuário pelo menos uma vez.

Essas métricas só estão disponíveis quando o log de operação lenta ou a criação de perfil de banco de dados está habilitada.

system.profile.authorization is not included in db.currentOp() output.

system.profile.authorization.startedUserCacheAcquisitionAttempts

O número de vezes que a operação tentou acessar o cache do usuário.

system.profile.authorization.completedUserCacheAcquisitionAttempts

O número de vezes que a operação recuperou os dados do usuário do cache do usuário.

system.profile.authorization.userCacheWaitTimeMicros

O tempo total que a operação gastou aguardando respostas de cache do usuário.

system.profile.storage

The system.profile.storage information provides metrics on the storage engine data and wait time for the operation.

Métricas de armazenamento específicas são retornadas somente se os valores forem maiores que zero.

system.profile.storage.data.bytesRead

Número de bytes lidos pela operação do disco para o cache.

A leitura de dados do disco no cache inclui tudo o que é necessário para executar a query. Se os dados já estiverem no cache, o número de bytes lidos do disco poderá ser 0.

O número de bytes lidos do disco inclui mais do que os documentos consultados:

  • O WiredTiger lê em unidades de páginas e uma página pode conter um ou vários documentos. Se um documento estiver em uma página, todos os documentos nessa página serão lidos no cache e incluídos no valor bytesRead.

  • Se o cache exigir gerenciamento de página (como remoção ou releituras), o valor bytesRead incluirá dados lidos do disco nessas operações.

  • Se o índice não estiver no cache ou se o índice no cache estiver obsoleto, o WiredTiger lerá várias páginas internas e de folha do disco para reconstruir o índice no cache.

system.profile.storage.data.timeReadingMicros

Tempo em microssegundos que a operação tinha que gastar para ler a partir do disco.

system.profile.storage.data.bytesWritten

Número de bytes gravados pela operação do cache para o disco.

O WiredTiger normalmente não exige que a queryseja gravada no disco. Os dados modificados pela query são gravados em um cache na memória que o WiredTiger libera para o disco como parte de uma operação de remoção ou checkpoint. Nesses casos, bytesWritten mostra como 0.

Se o thread que executa a query exigir gerenciamento de página forçado (como remoção), o WiredTiger gravará o conteúdo da página no disco. Essa liberação provavelmente inclui dados não relacionados às alterações feitas pela própria bytesWritten, o que pode fazer com que mostre um valor mais alto do que o esperado.

system.profile.storage.data.timeWritingMicros

Tempo em microssegundos que a operação teve que gastar para escrever no disco.

system.profile.storage.timeWaitingMicros.cache

Tempo em microssegundos que a operação teve que esperar por espaço no cache.

system.profile.storage.timeWaitingMicros.schemaLock

Tempo em microssegundos em que a operação (se estiver modificando o esquema) teve que esperar para adquirir um trava de esquema.

system.profile.storage.timeWaitingMicros.handleLock

Tempo em microssegundos que a operação teve que esperar para adquirir o trava nos manipuladores de dados necessários.

system.profile.nreturned

O número de documentos devolvidos pela operação.

system.profile.responseLength

The length in bytes of the operation's result document. A large responseLength can affect performance. To limit the size of the result document for a query operation, you can use any of the following:

Observação

When MongoDB writes query profile information to the log, the responseLength value is in a field named reslen.

system.profile.cpuNanos

Novidades na versão 6.3.

O tempo total da CPU gasto por uma operação de queryem nanossegundos. Este campo está disponível apenas em sistemas Linux.

system.profile.protocol

O formato de mensagem de solicitação do MongoDB Wire Protocol.

system.profile.millis

O tempo em milésimos de segundo da perspectiva do mongod desde o início da operação até o final da operação.

planningTimeMicros

Novidades na versão 6.2.

O tempo, em microssegundos, que o comando find ou aggregate passou no planejamento de query.

Observação

Antes do MongoDB 7.0.22, 8.0.5 e 8.1.0, planningTimeMicros pode incluir trabalho que não seja de planejamento, como uma atualização de metadados de sharding. planningTimeMicros também pode incluir tempo de executar de teste de plano em cache, mesmo que a query não seja replanejada.

Don't rely on this field alone to evaluate query-planning performance. Review the total operation duration, keysExamined, docsExamined, and relevant sharding or lock-wait metrics.

Para mais informações, consulte servidor-92476 e servidor-106502 no JIRA.

system.profile.planSummary

Um resumo do plano de execução.

system.profile.execStats

Um documento que contém as estatísticas de execução da operação de query. Para outras operações, o valor é um documento vazio.

The system.profile.execStats presents the statistics as a tree; each node provides the statistics for the operation executed during that stage of the query operation.

Observação

The following fields list for execStats is not meant to be exhaustive as the returned fields vary per stage.

system.profile.execStats.stage

O nome descritivo da operação executada como parte da execução da query; por exemplo,

  • COLLSCAN para uma verificação de collection

  • IXSCAN para varredura de chaves de índice

  • FETCH para recuperar documentos

system.profile.execStats.inputStages

Uma array que contém estatísticas para as operações que são os estágios de entrada do estágio atual.

system.profile.ts

O timestamp da operação.

system.profile.client

O endereço IP ou nome de host da conexão do cliente onde a operação se origina.

system.profile.appName

O identificador do aplicativo cliente que executou a operação. Use uma opção appName de connection string para definir um valor personalizado para o campo appName.

system.profile.allUsers

Uma array de informações de usuário autenticadas (nome de usuário e banco de dados de dados) para a sessão. Consulte também Usuários em implementações autogerenciadas.

system.profile.user

O usuário autenticado que executou a operação. Se a operação não foi executada por um usuário autenticado, o valor deste campo é uma string vazia.

Os exemplos a seguir apresentam exemplos de documentos encontrados na coleção system.profile para operações em um standalone:

O documento a seguir na collection system.profile mostra métricas para uma operação de query de amostra na collection test.report:

{
"op" : "query",
"ns" : "test.report",
"command" : {
"find" : "report",
"filter" : { "a" : { "$lte" : 500 } },
"lsid" : {
"id" : UUID("5ccd5b81-b023-41f3-8959-bf99ed696ce9")
},
"$db" : "test"
},
"cursorid" : 33629063128,
"keysExamined" : 101,
"docsExamined" : 101,
"inUseTrackedMemBytes" : Long(368),
"peakTrackedMemBytes" : Long(795),
"fromMultiPlanner" : true,
"numYield" : 2,
"nreturned" : 101,
"planCacheShapeHash" : "811451DD",
"planCacheKey" : "759981BA",
"queryFramework" : "classic",
"locks" : {
"Global" : {
"acquireCount" : {
"r" : Long(3),
"w" : Long(3)
}
},
"Database" : {
"acquireCount" : { "r" : Long(3) },
"acquireWaitCount" : { "r" : Long(1) },
"timeAcquiringMicros" : { "r" : Long(69130694) }
},
"Collection" : {
"acquireCount" : { "r" : Long(3) }
}
},
"storage" : {
"data" : {
"bytesRead" : Long(14736),
"timeReadingMicros" : Long(17)
}
},
"responseLength" : 1305014,
"protocol" : "op_msg",
"millis" : 69132,
"planningTimeMicros" : 129,
"planSummary" : "IXSCAN { a: 1, _id: -1 }",
"execStats" : {
"stage" : "FETCH",
"nReturned" : 101,
"executionTimeMillisEstimate" : 0,
"works" : 101,
"advanced" : 101,
"needTime" : 0,
"needYield" : 0,
"saveState" : 3,
"restoreState" : 2,
"isEOF" : 0,
"docsExamined" : 101,
"alreadyHasObj" : 0,
"inputStage" : {
...
}
},
"ts" : ISODate("2019-01-14T16:57:33.450Z"),
"client" : "127.0.0.1",
"appName" : "MongoDB Shell",
"allUsers" : [
{
"user" : "someuser",
"db" : "admin"
}
],
"user" : "someuser@admin"
}