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

$currentOp (estágio de agregação )

$currentOp

Retorna um fluxo de documentos contendo informações sobre operações ativas e/ou dormentes, bem como sessões inativas que estão retendo bloqueios como parte de uma transação. O estágio retorna um documento para cada operação ou sessão. Para executar o $currentOp, utilize o auxiliar db.aggregate() no banco de dados do admin.

The $currentOp aggregation stage is preferred over the currentOp command and its mongosh helper method db.currentOp(). Because the currentOp command and db.currentOp() helper method return the results in a single document, the total size of the currentOp result set is subject to the maximum 16MB BSON size limit for documents. The $currentOp stage returns a cursor over a stream of documents, each of which reports a single operation. Each operation document is subject to the 16MB BSON limit, but unlike the currentOp command, there is no limit on the overall size of the result set.

$currentOp também permite que você realize transformações arbitrárias dos resultados conforme os documentos passam pelo pipeline.

{ $currentOp: { allUsers: <boolean>, idleConnections: <boolean>, idleCursors: <boolean>, idleSessions: <boolean>, localOps: <boolean> } }

$currentOp toma um documento de opções como seu operando:

Opção
Descrição

Boolean.

  • Se definido como false, $currentOp apenas relata operações/conexões ociosas/cursores ociosos/sessões ociosas pertencentes ao usuário que executou o comando.

  • Se definido para true, o $currentOp reporta operações pertencentes a todos os usuários.

Para conjuntos de réplicas e independentes que impõem controle de acesso, o privilégio do inprog é exigido se o allUsers: true.

Para clusters fragmentados que impõem controle de acesso, o privilégio do inprog é exigido para executar o $currentOp.

Padrão é false.

Booleano. Se definido como false, $currentOp relata apenas operações ativas. Se definido para true, $currentOp retorna todas as operações, incluindo conexões ociosas.

Padrão é false.

Boolean.

Se definido como true, $currentOp relata os cursores que estão "ociosos "; ou seja, abertos, mas não ativos atualmente em uma operação getMore.

Information on idle cursors have the type set to "idleCursor".

Information on cursors currently active in a getMore operation information have the type set to "op" and op set to getmore.

Padrão é false.

Boolean.

  • Se definido como true, além de operações ativas/inativas, $currentOp reporta sobre:

    • Sessões inativas que estão mantendo bloqueios como parte de uma transação. Cada sessão inativa aparece como um documento separado no fluxo $currentOp.

      The document for a session includes information on the session ID in the lsid field and the transaction in the transaction field.

      Information on idle sessions have the type set to "idleSession".

  • Se definido como false, $currentOp, não reporta sobre:

Padrão é true.

Booleano. Se definido como true para uma aggregation em execução em mongos, $currentOp relata somente as operações executadas localmente nesse mongos. Se false, então $currentOp reportará operações em execução nos fragmentos.

O parâmetro localOps não tem efeito para aggregations $currentOp em execução em mongod.

Padrão é false.

Boolean. Determines whether callstack information is returned as part of the waitingForLatch output field.

Padrão é false.

A omissão de qualquer um dos parâmetros acima faz com que $currentOp utilize o valor predefinido desse parâmetro. Especifique um documento vazio, como mostrado abaixo, para usar os valores padrão de todos os parâmetros.

{ $currentOp: { } }
  • $currentOp deve ser o primeiro estágio do pipeline.

  • Os pipelines que começam com $currentOp podem ser executados somente no banco de dados do admin.

  • For standalone and replica sets that enforce access control, inprog privilege is required to run $currentOp if allUsers: true.

  • Para cluster fragmentados que impõem controle de acesso, o privilégio do inprog é exigido para executar o $currentOp.

Ao usar a Queryable Encryption, a saída $currentOp edita certas informações:

  • A saída omite todos os campos após "command".

  • A saída edita "command" para incluir apenas o primeiro elemento $commente $db.

Este exemplo cria os seguintes estágios para retornar informações sobre sessões inativas que estão bloqueando travas como parte de uma transação:

  • O primeiro estágio retorna documentos para todas as operações ativas, bem como para as sessões inativas que estão mantendo travas como parte de uma transação.

  • O segundo estágio filtra documentos relacionados a sessões inativas que mantêm bloqueios como parte de uma transação.

db.getSiblingDB("admin").aggregate( [
{ $currentOp : { allUsers: true, idleSessions: true } },
{ $match : { active: false, transaction : { $exists: true } } }
] )

You can use $currentOp.type to specify an equivalent filter:

db.getSiblingDB("admin").aggregate( [
{ $currentOp : { allUsers: true, idleSessions: true } },
{ $match : { type: "idleSession" } }
] )

Dica

Para transações em um cluster fragmentado, inclua localOps:true nos exemplos anteriores para obter uma visão composta das transações.

Ambas as operações retornam documentos no seguinte formato:

Ao executar em um mongod que faz parte de um conjunto de réplica:

{
"type" : "idleSession",
"host" : "example.mongodb.com:27017",
"desc" : "inactive transaction",
"client" : "198.51.100.1:50428",
"connectionId" : Long(32),
"appName" : "",
"clientMetadata" : {
"driver" : {
"name" : "PyMongo",
"version" : "3.9.0"
},
"os" : {
"type" : "Darwin",
"name" : "Darwin",
"architecture" : "x86_64",
"version" : "10.14.5"
},
"platform" : "CPython 3.7.1.final.0"
},
"lsid" : {
"id" : UUID("ff21e1a9-a130-4fe0-942f-9e6b6c67ea3c"),
"uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=")
},
"transaction" : {
"parameters" : {
"txnNumber" : Long(4),
"autocommit" : false,
"readConcern" : {
"level" : "snapshot",
"afterClusterTime" : Timestamp(1563892246, 1)
}
},
"readTimestamp" : Timestamp(0, 0),
"startWallClockTime" : "2019-07-23T10:30:49.461-04:00",
"timeOpenMicros" : Long(1913590),
"timeActiveMicros" : Long(55),
"timeInactiveMicros" : Long(1913535),
"expiryTime" : "2019-07-23T10:31:49.461-04:00"
},
"waitingForLock" : false,
"active" : false,
"locks" : {
"ReplicationStateTransition" : "w",
"Global" : "w",
"Database" : "w",
"Collection" : "w"
},
"lockStats" : {
"ReplicationStateTransition" : {
"acquireCount" : {
"w" : Long(5)
}
},
"Global" : {
"acquireCount" : {
"r" : Long(3),
"w" : Long(1)
}
},
"Database" : {
"acquireCount" : {
"r" : Long(2),
"w" : Long(1)
}
},
"Collection" : {
"acquireCount" : {
"w" : Long(1)
}
},
"Mutex" : {
"acquireCount" : {
"r" : Long(3)
}
},
"oplog" : {
"acquireCount" : {
"r" : Long(2)
}
}
},
"waitingForFlowControl" : false,
"flowControlStats" : {},
}

Este exemplo Gera informações sobre o progresso da amostragem de queries.

  • O primeiro estágio retorna documentos para todas as operações ativas.

  • Os filtros de segunda etapa para documentos relacionados ao analisador de query.

db.getSiblingDB("admin").aggregate( [
{ $currentOp: { allUsers: true, localOps: true } },
{ $match: { desc: "query analyzer" } }
] )

Esse pipeline retorna uma saída semelhante a esta:

Ao executar em um mongod que faz parte de um conjunto de réplica:

{
"desc" : "query analyzer",
"ns" : "testDb.testColl",
"collUuid" : UUID("ed9dfb1d-5b7c-4c6b-82e9-b0f537335795"),
"samplesPerSecond" : 5,
"startTime" : ISODate("2023-08-08T16:23:22.846Z"),
"sampledReadsCount" : Long(2),
"sampledReadsBytes" : Long(346),
"sampledWritesCount" : Long(3),
"sampledWritesBytes" : Long(904)
}

Cada documento de saída pode conter um subconjunto dos seguintes campos, conforme relevante para a operação:

$currentOp.type

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

  • op

  • idleSession

  • idleCursor

If the $currentOp.type is op, $currentOp.op provides details on the specific operation.

$currentOp.host

O nome do host em que a operação é executada.

$currentOp.shard

O nome do fragmento onde a operação está em execução.

Somente presente para clusters fragmentados.

$currentOp.desc

Uma descrição da operação.

$currentOp.connectionId

Um identificador para a conexão onde a operação específica se originou.

$currentOp.client

O endereço IP (ou nome do host) e a porta efêmera da conexão do cliente onde a operação se origina.

For multi-document transactions, $currentOp.client stores information about the most recent client to run an operation inside the transaction.

Somente para standalone e conjunto de réplicas

$currentOp.client_s

O endereço IP (ou nome do host) e a porta efêmera do mongos de onde a operação se origina.

Somente para clusters fragmentados

$currentOp.clientMetadata

Informações adicionais sobre o cliente.

For multi-document transactions, $currentOp.client stores information about the most recent client to run an operation inside the transaction.

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

$currentOp.active

Um valor boolean especificando se a operação começou. O valor é true se a operação foi iniciada ou false se a operação estiver ociosa, como uma conexão ociosa, uma sessão inativa ou um thread interno que esteja ocioso no momento. Uma operação pode estar ativa mesmo que tenha resultado em outra operação.

$currentOp.twoPhaseCommitCoordinator

Informações sobre:

  • As métricas de coordenação de cometimento para uma transação cujas operações de gravação abrangem vários shards.

    A coordenação do commit é tratada por um fragmento e $currentOp (executado em um mongos ou em um membro do fragmento) retorna as informações de coordenação de um fragmento somente para as transações que o fragmento está coordenando no momento.

    O exemplo a seguir filtra apenas as métricas de coordenação de commit:

    db.getSiblingDB("admin").aggregate( [
    { $currentOp: { allUsers: true, idleSessions: true } },
    { $match: { desc: "transaction coordinator" } }
    ] )
$currentOp.twoPhaseCommitCoordinator.lsid

O identificador da sessão para a transação com vários fragmentos.

The combination of the lsid and txnNumber identifies the transaction.

Available for both the commit coordination metrics and for specific coordination operation.

$currentOp.twoPhaseCommitCoordinator.txnNumber

O número da transação para a transação multi-shard.

The combination of the txnNumber and lsid identifies the transaction.

Available for both the commit coordination metrics and for specific coordination operation.

$currentOp.twoPhaseCommitCoordinator.action

A operação de coordenação de cometimento específica gerada pelo coordenador de transações:

  • "sendingPrepare"

  • "sendingCommit"

  • "sendingAbort"

  • "writingParticipantList"

  • "writingDecision"

  • "deletingCoordinatorDoc"

Only available for specific coordination operation.

$currentOp.twoPhaseCommitCoordinator.startTime

The start date and time of the action.

Only available for specific coordination operation.

$currentOp.twoPhaseCommitCoordinator.numParticipants

Número de fragmentos participantes neste commit.

Only available for the commit coordination metrics.

$currentOp.twoPhaseCommitCoordinator.state

A etapa/estado atual do processo de coordenação de commit.

Etapa/estágio
Descrição

inactive

Não faz parte ativamente de um commit.

writingParticipantList

Escrevendo um registro local da lista de fragmentos que fazem parte dessa transação com vários fragmentos.

waitingForVotes

Aguardando que os participantes respondam com voto para confirmar ou cancelar.

writingDecision

Escrevendo um registro local da decisão do coordenador de cometer ou cancelar com base em votos.

waitingForDecisionAck

Aguardando que os participantes reconheçam a decisão do coordenador de cometer ou cancelar.

deletingCoordinatorDoc

Excluindo o registro local da decisão de commit.

Only available for the commit coordination metrics.

See also $currentOp.twoPhaseCommitCoordinator.stepDurations.

$currentOp.twoPhaseCommitCoordinator.commitStartTime

A data e a hora em que o commit começou.

Only available for the commit coordination metrics.

$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover

Um booleano que indica se a coordenação de commit foi reiniciada devido ao failover no fragmento que está coordenando o commit.

If hasRecoveredFromFailover is true, then the times specified in $currentOp.twoPhaseCommitCoordinator.stepDurations may not be accurate for all steps.

Only available for the commit coordination metrics.

$currentOp.twoPhaseCommitCoordinator.stepDurations

A document that contains the duration, in microseconds, of the completed or in-progress steps/state of the active process as well as the cumulative total duration; for example:

"stepDurations" : {
"writingParticipantListMicros" : Long(17801),
"totalCommitDurationMicros" : Long(42488463),
"waitingForVotesMicros" : Long(30378502),
"writingDecisionMicros" : Long(15015),
"waitingForDecisionAcksMicros" : Long(12077145),
"deletingCoordinatorDocMicros" : Long(6009)
},

If $currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover is true, then the times specified in stepDurations may not be accurate for all steps.

Para um coordenador em um estado inactive, o documento está vazio:

"stepDurations" : {
}

Only available for the commit coordination metrics.

See $currentOp.twoPhaseCommitCoordinator.state.

$currentOp.twoPhaseCommitCoordinator.decision

Um documento que contém a decisão de cometer/abortar, por exemplo:

  • Para uma decisão de cometimento:
"decision" : {
"decision" : "commit",
"commitTimestamp" : Timestamp(1572034669, 3)
}
  • Para uma decisão de cancelamento:
"decision" : {
"decision" : "abort",
"abortStatus" : {
"code" : 282,
"codeName" : "TransactionCoordinatorReachedAbortDecision",
"errmsg" : "Transaction exceeded deadline"
}
}

Only available for the commit coordination metrics.

$currentOp.twoPhaseCommitCoordinator.deadline

A data e a hora em que o commit deve terminar.

Only available for the commit coordination metrics.

$currentOp.currentOpTime

A hora de início da operação.

$currentOp.effectiveUsers

Uma array que contém um documento para cada usuário associado à operação. Cada documento de usuário contém o nome user e a autenticação db.

$currentOp.runBy

An array that contains a document for each user who is impersonating the effectiveUser(s) for the operation. The runBy document contains the user name and the authentication db. In general, the impersonating user is the __system user; e.g.

"runBy" : [
{
"user" : "__system",
"db" : "local"
}
]
$currentOp.opid

The identifier for the operation. You can pass this value to db.killOp() in mongosh to terminate the operation.

Aviso

Encerre as operações em execução com extrema cautela. Use apenasdb.killOp() para encerrar operações iniciadas por clientes e não encerre operações internas de banco de dados.

$currentOp.secs_running

A duração da operação em segundos. O MongoDB calcula este valor subtraindo o tempo atual da hora de início da operação.

Only present if the operation is running; i.e. if active is true.

$currentOp.microsecs_running

A duração da operação em microssegundos. O MongoDB calcula este valor subtraindo o tempo atual da hora de início da operação.

Presente somente se a operação estiver em execução; ou seja, se active for true.

$currentOp.lsid

O identificador da sessão.

Somente presente se a operação estiver associada a uma sessão.

$currentOp.transaction

Um documento que contém informações de transação multidocumento.

Presente somente se a operação fizer parte de uma transação:

  • Em um conjunto de réplicas.

  • Em um cluster fragmentado se $currentOp for executado sem localOps:true. As informações da transação são por fragmento.

  • Em um cluster fragmentado, se $currentOp for executado com localOps:true. As informações da transação são uma visualização composta e não por shard.

$currentOp.transaction.parameters

Um documento que contém informações sobre transações com vários documentos.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.parameters.txnNumber

O número da transação.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.parameters.autocommit

Uma bandeira booleana que indica se o envio automático está ativado para a transação.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.parameters.readConcern

A read concern com a transação.

As transações com vários documentos são compatíveis com read concern "snapshot", "local" e "majority".

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.globalReadTimestamp

O carimbo de data/hora do instantâneo lido pelas operações na transação de cluster fragmentado que usa "snapshot" como preocupação de leitura. Para transações em clusters fragmentados, a preocupação de leitura "snapshot" dos dados é sincronizada entre fragmentos; ou seja, outras preocupações de leitura não podem garantir que os dados sejam da mesma visualização instantânea entre os fragmentos.

Only present when run with localOps: true for sharded cluster transactions.

$currentOp.transaction.readTimestamp

O carimbo de data/hora do snapshot que está sendo lido pelas operações nesta transação

Somente presente se a operação fizer parte de uma transação com vários documentos. No entanto, o campo não é retornado se:

Instead, $currentOp.transaction.globalReadTimestamp is returned.

$currentOp.transaction.startWallClockTime

A data e hora (com fuso horário) do início da transação.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.timeOpenMicros

A duração, em microssegundos, da transação.

The timeActiveMicros value added to the timeInactiveMicros should equal the timeOpenMicros.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.timeActiveMicros

A quantidade total de tempo em que a transação esteve ativa; ou seja, quando a transação teve operações em execução.

The timeActiveMicros value added to the timeInactiveMicros should equal the timeOpenMicros.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.timeInactiveMicros

O tempo total em que a transação ficou inativa; ou seja, quando a transação não tinha operações em execução.

The timeInactiveMicros value added to the timeActiveMicros should equal the timeOpenMicros.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.transaction.numParticipants

Número de shards que participam nesta transação.

Only present if the operation is part of a transaction on a sharded cluster and $currentOp is run with localOps: true

$currentOp.transaction.participants

Uma série de documentos detalhando os fragmentos participantes nesta transação. Cada documento contém o nome, uma bandeira que indica se o fragmento atua como coordenador de confirmação e uma bandeira que indica se o fragmento está envolvido apenas em operações de leitura para a transação.

{
"name" : "shardA",
"coordinator" : false,
"readOnly" : false
}

Only present if the operation is part of a transaction on a sharded cluster and $currentOp is run with localOps: true

$currentOp.transaction.numReadOnlyParticipants

Número de fragmentos afetados apenas pelas operações de leitura nesta transação.

Only present if the operation is part of a transaction on a sharded cluster and $currentOp is run with localOps: true

$currentOp.transaction.numNonReadOnlyParticipants

Número de fragmentos afetados por operações que não sejam leituras nesta transação.

Only present if the operation is part of a transaction on a sharded cluster and $currentOp is run with localOps: true

$currentOp.transaction.expiryTime

A data e a hora (com fuso horário) em que a transação irá expirar e cancelar.

The $currentOp.transaction.expiryTime equals the $currentOp.transaction.startWallClockTime + the transactionLifetimeLimitSeconds.

Para obter mais informações, consulte o Limite de tempo de execução para transações.

Somente presente se a operação fizer parte de uma transação multidocumento.

$currentOp.op

A string that identifies the specific operation type. Only present if $currentOp.type is op.

Os valores possíveis são:

  • "none"

  • "update"

  • "insert"

  • "query"

  • "command"

  • "getmore"

  • "remove"

  • "killcursors"

"command" as operações incluem a maioria dos comandos, como createIndexes, aggregate e findAndModify.

"query" as operações incluem find operações e OP_QUERY operações.

$currentOp.ns

O namespace que a operação tem como alvo. Um namespace consiste no nome do banco de dados e o nome da coleção concatenado com um ponto (.); isto é, "<database>.<collection>".

$currentOp.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 1 kilobyte, 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 1 kilobyte, 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.

$currentOp.cursor

Um documento que contém as informações do cursor para operações do idleCursor e getmore; ou seja, onde type é idleCursor ou op é getmore.

Se estiver reportando uma operação getmore antes que o getmore tenha acessado as informações de cursor, o campo cursor não estará disponível.

$currentOp.cursor.cursorId

A ID do cursor.

$currentOp.cursor.createdDate

A data e a hora em que o cursor foi criado.

$currentOp.cursor.lastAccessDate

A data e a hora em que o cursor foi usado pela última vez.

If the cursor is actively in use (i.e. op is getmore and the type is not idleCursor), then lastAccessDate reports either the time the previous getmore ended or the time the cursor was created if this is the first getmore.

$currentOp.cursor.nDocsReturned

O número cumulativo de documentos retornados pelo cursor.

$currentOp.cursor.nBatchesReturned

O número cumulativo de lotes gerados pelo cursor.

$currentOp.cursor.noCursorTimeout

O sinalizador que indica que o cursor não expira quando ocioso; p. ex., se o cursor tiver a opção noTimeout definida.

  • Se verdadeiro, o cursor não expira quando ocioso.

  • Se falso, o cursor expira quando ocioso.

$currentOp.cursor.tailable

O sinalizador que indica se o cursor é um cursor caudal para uma coleção limitada. Os cursores de ocorrências permanecem abertos após o cliente esgotar os resultados no cursor inicial.

$currentOp.cursor.awaitData

O sinalizador que indica se o cursor tailable deve bloquear temporariamente um comando getMore no cursor enquanto aguarda novos dados, em vez de retornar nenhum dado.

Para cursores não rastreáveis, o valor é sempre falso.

$currentOp.cursor.originatingCommand

O campo originatingCommand contém o objeto de comando completo (por exemplo, find ou aggregate) que originalmente criou o cursor.

$currentOp.cursor.planSummary

Uma string que especifica se o cursor usa uma digitalização de coleção (COLLSCAN) ou uma verificação de índice (IXSCAN { ... }).

O IXSCAN também inclui o documento de especificação do índice utilizado.

Não disponível ao executar com localOps: true no mongos ou ao reportar no idleCursors.

$currentOp.cursor.operationUsingCursorId

O opid da operação usando o cursor.

Somente presente se o cursor não estiver ocioso.

$currentOp.cursor.queryFramework

Novidades na versão 6.2.

Uma string que especifica a estrutura de query utilizada para processar uma operação.

$currentOp.planSummary

Uma string que especifica se o cursor usa uma digitalização de coleção (COLLSCAN) ou uma verificação de índice (IXSCAN { ... }).

Não disponível ao executar com localOps: true no mongos.

$currentOp.prepareReadConflicts

O número de vezes que a operação atual precisou aguardar uma transação preparada com uma gravação para cometer ou abortar.

Enquanto aguarda, a operação continua mantendo todas as travas e recursos de mecanismo de armazenamento necessários.

$currentOp.writeConflicts

O número de vezes que a operação atual entrou em conflito com outra operação de gravação no mesmo documento.

$currentOp.numYields

numYields é um contador que relata o número de vezes que a operação rendeu para permitir que outras operações sejam concluídas.

Normalmente, as operações são realizadas quando precisam acessar dados que o MongoDB ainda não leu completamente na memória. Isso permite que outras operações que tenham dados na memória sejam concluídas rapidamente enquanto o MongoDB lê os dados para a operação de produção.

$currentOp.dataThroughputLastSecond

Quantidade de dados (em MiB) processados pela operação validate no último segundo. Disponível somente para uma operação validate que esteja digitalizando documentos no momento. Por exemplo:

"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%",
"progress" : {
"done" : 7258,
"total" : 24000
},
"numYields" : 0,
"dataThroughputLastSecond" : 15.576952934265137,
"dataThroughputAverage" : 15.375944137573242,
$currentOp.dataThroughputAverage

A quantidade média de dados (em MiB) processados pela operação validate . Disponível somente para uma operação validate que esteja digitalizando documentos no momento. Por exemplo:

"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%",
"progress" : {
"done" : 7258,
"total" : 24000
},
"numYields" : 0,
"dataThroughputLastSecond" : 15.576952934265137,
"dataThroughputAverage" : 15.375944137573242,
$currentOp.waitingForLatch

The waitingForLatch document is only available if the operation is waiting to acquire an internal locking primitive (a.k.a. a latch) or for an internal condition to be met.

Por exemplo,

"waitingForLatch" : {
"timestamp" : ISODate("2020-03-19T23:25:58.412Z"),
"captureName" : "FutureResolution",
"backtrace" : [ ] // Only if backtrace: true
},
Campo de Saída
Descrição

timestamp

A data e hora em que a operação começou a aguardar.

nome da captura

O nome interno da seção onde a operação está bloqueada no momento.

backtrace

The callstack, if available. The field is only included if backtrace: true.

$currentOp.locks

The locks document reports the type and mode of locks the operation currently holds. The possible lock types are as follows:

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.

oplog

Representa bloqueio no oplog.

Veja os modos possíveis:

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

$currentOp.lockStats

For each lock type and mode (see locks for descriptions of lock types and modes), returns the following information:

$currentOp.lockStats.acquireCount

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

$currentOp.lockStats.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.

$currentOp.lockStats.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.

$currentOp.lockStats.deadlockCount

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

$currentOp.waitingForLock

Returns a boolean value. waitingForLock is true if the operation is waiting for a lock and false if the operation has the required lock.

$currentOp.msg

The msg provides a message that describes the status and progress of the operation. In the case of indexing or mapReduce operations, the field reports the completion percentage.

$currentOp.progress

Reports on the progress of mapReduce or indexing operations. The progress fields corresponds to the completion percentage in the msg field. The progress specifies the following information:

$currentOp.progress.done

Reporta o número de itens de trabalho concluídos.

$currentOp.progress.total

Relata o número total de itens de trabalho.

$currentOp.killPending

Gera true se a operação estiver sinalizada para encerramento. Quando a operação encontra seu próximo ponto de encerramento seguro, a operação termina.

$currentOp.waitingForFlowControl

Um booleano que indica se a operação teve que esperar devido ao controle de fluxo.

$currentOp.flowControlStats

As estatísticas de controle de fluxo desta operação.

$currentOp.flowControlStats.acquireCount

O número de vezes que esta operação adquiriu um bilhete.

$currentOp.flowControlStats.acquireWaitCount

O número de vezes que esta operação esperou para adquirir um ticket.

$currentOp.flowControlStats.timeAcquiringMicros

O tempo total que esta operação esperou para adquirir um ticket.

$currentOp.totalOperationTimeElapsed

O tempo total decorrido, em segundos, para a operação de refragmentação atual. O tempo é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente somente se uma operação de refragmentação estiver ocorrendo.

Novidade na versão 5.0.

$currentOp.remainingOperationTimeEstimated

O tempo restante estimado em segundos para a operação de refragmentação atual. O tempo é definido como -1 quando uma nova operação de refragmentação é iniciada.

Presente apenas quando uma operação de reestilhaçamento está ocorrendo. Este campo pode não estar presente se uma estimativa não puder ser calculada.

Novidade na versão 5.0.

$currentOp.approxDocumentsToCopy

O número aproximado de documentos a serem copiados dos shards do doador para os shards do destinatário durante a operação de refragmentação. Esse número é uma estimativa que é definida no início da operação de refragmentação e não muda depois de definida. O número é definido como 0 quando uma nova operação de refragmentação é iniciada. É possível que $currentOp.documentsCopied e $currentOp.bytesCopied acabem excedendo $currentOp.approxDocumentsToCopy e $currentOp.approxBytesToCopy, respectivamente, se a distribuição de dados após a refragmentação não for perfeitamente uniforme.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.documentsCopied

O número de documentos copiados de shards de doador para shards de destinatários durante a operação de refragmentação. O número é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.approxBytesToCopy

O número aproximado de bytes a serem copiados dos shards do doador para os do destinatário durante a operação de refragmentação. Esse número é uma estimativa que é definida no início da operação de refragmentação e não muda depois de definida. O número é definido como 0 quando uma nova operação de refragmentação é iniciada. É possível que $currentOp.documentsCopied e $currentOp.bytesCopied acabem excedendo $currentOp.approxDocumentsToCopy e $currentOp.approxBytesToCopy, respectivamente, se a distribuição de dados após a refragmentação não for perfeitamente uniforme.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.bytesCopied

O número de bytes copiados dos shards doadores para os shards receptores durante a operação de refragmentação. O número é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.totalCopyTimeElapsed

O tempo total decorrido, em segundos, para tarefas de cópia de dados contínuas de fragmentos de doadores para fragmentos de receptores para a operação de refragmentação atual. O tempo é configurado para 0 quando uma nova atualização da operação inicia.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.oplogEntriesFetched

O número de entradas obtidas do oplog para a operação de refragmentação atual. O número é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.oplogEntriesApplied

O número de entradas aplicadas ao oplog para a operação de refragmentação atual. O número é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.totalApplyTimeElapsed

O tempo total decorrido, em segundos, para a etapa de aplicação da operação de atualização atual. Na etapa de aplicação, os fragmentos do destinatário aplicam entradas de oplog para modificar seus dados com base em novos registros recebidos de fragmentos do doador. O tempo é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.countWritesDuringCriticalSection

O número de gravações realizadas na seção crítica para a operação de refragmentação atual. A seção crítica evita novas gravações recebidas na collection que está sendo refragmentada. O número é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente apenas em um shard de doador quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.totalCriticalSectionTimeElapsed

O tempo total decorrido, em segundos, para a seção crítica da operação de refragmentação atual. A seção crítica evita novas gravações recebidas na collection sendo refragmentada. O tempo é definido como 0 quando uma nova operação de refragmentação é iniciada.

Presente apenas em um shard de doador quando uma operação de refragmentação está ocorrendo.

Novidade na versão 5.0.

$currentOp.donorState

O estado atual de um shard doador para a operação de refragmentação. O estado é definido como unused quando uma nova operação de refragmentação é iniciada.

Presente apenas em um shard de doador quando uma operação de refragmentação está ocorrendo.

Estado
Descrição

unused

A operação de refragmentação está prestes a ser iniciada ou se recuperando de um failover primário.

preparing-to-donate

O shard do doador está se preparando para doar dados para os shards do destinatário.

donating-initial-data

O shard do doador está doando dados para os shards do destinatário.

donating-oplog-entries

O shard do doador está doando entradas do oplog para os shards do destinatário.

preparing-to-block-writes

O shard do doador está prestes a impedir a entrada de novas operações de gravação na collection que está sendo refragmentada.

error

Ocorreu um erro durante a operação de refragmentação.

blocking-writes

O shard do doador está evitando novas operações de escrita recebidas e o shard do doador notificou todos os shards do destinatário de que novas gravações recebidas são evitadas.

done

O shard do doador descartou a collection fragmentada antiga e a operação de refragmentação foi concluída.

Novidade na versão 5.0.

$currentOp.recipientState

O estado atual de um shard destinatário para uma operação de refragmentação. O estado é definido como unused quando uma nova operação de refragmentação é iniciada.

Presente somente em um fragmento destinatário quando uma operação de refragmentação está ocorrendo.

Estado
Descrição

unused

A operação de refragmentação está prestes a ser iniciada ou se recuperando de um failover primário.

awaiting-fetch-timestamp

O shard do destinatário está esperando que os shards do doador estejam preparados para doar seus dados.

creating-collection

O shard do destinatário está criando a nova collection fragmentada.

cloning

O shard do destinatário está recebendo dados dos shards do doador.

applying

O shard do destinatário está aplicando entradas do oplog para modificar sua cópia dos dados com base nas novas gravações recebidas dos shards do doador.

error

Ocorreu um erro durante a operação de refragmentação.

strict-consistency

O shard do destinatário tem todas as alterações de dados armazenadas em uma collection temporária.

done

A operação de refragmentação foi concluída.

Novidade na versão 5.0.

$currentOp.coordinatorState

O estado do coordenador de refragmentação para a operação de refragmentação atual. O coordenador de refragmentação é uma operação executada no servidor de configuração primary. O estado é definido como unused quando uma nova operação de refragmentação é iniciada.

Presente somente no servidor de configuração de coordenação.

Estado
Descrição

unused

A operação de refragmentação está prestes a ser iniciada ou se recuperando de um failover primário.

initializing

O coordenador de refragmentação inseriu o documento do coordenador no config.reshardingOperations e adicionou o reshardingFields à entrada config.collections para a collection original.

preparing-to-donate

O coordenador de refragmentação

  • criou uma entrada config.collections para o temporário
    refragmentando a coleção.
  • inseriu entradas em config.chunks para faixas baseadas em
    nova chave de shard.
  • inseriu entradas em config.tags para quaisquer zonas associadas
    com a nova chave de shard.

O coordenador informa aos shards participantes para que iniciem a operação de refragmentação. O coordenador então aguarda até que todos os shards doadores tenham escolhido um minFetchTimestamp e estejam prontos para doar.

cloning

O coordenador de refragmentação informa os shards do doador para doar dados aos shards do destinatário. O coordenador espera que todos os destinatários terminem de clonar os dados do doador.

applying

O coordenador de refragmentação informa aos shards do destinatário que modifiquem suas cópias dos dados com base nas novas gravações recebidas dos shards do doador. O coordenador espera que todos os destinatários terminem de aplicar as entradas do oplog.

blocking-writes

O coordenador de refragmentação informa os shards doadores para impedir novas operações de gravação de entrada na collection que está sendo redistribuída. O coordenador então espera que todos os destinatários tenham todas as alterações de dados.

aborting

Ocorreu um erro irrecuperável durante a operação de refragmentação ou o comando abortReshardCollection (ou o método sh.abortReshardCollection()) foi executado.

committing

O coordenador de refragmentação remove a entrada config.collections para a collection de refragmentação temporária. O coordenador então adiciona o recipientFields à entrada da collection de origem.

Novidade na versão 5.0.

$currentOp.opStatus

O estado atual de uma operação de atualização.

Presente somente se uma operação de refragmentação estiver ocorrendo. Depois que a operação for concluída, ela será removida da saída currentOp.

Estado
Descrição

actively running

A operação de refragmentação está sendo executada ativamente.

success

A operação de refragmentação foi bem-sucedida.

failure

A operação de refragmentação falhou.

canceled

A operação de refragmentação foi cancelada.

Novidade na versão 5.0.

$currentOp.collUuid

O UUID da coleção amostrada.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.

$currentOp.startTime

A hora em que a amostragem de query começou.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.

$currentOp.samplesPerSecond

O número máximo de queries a serem amostradas por segundo.

Reportado apenas ao executar $currentOp em mongos.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.

$currentOp.sampledReadsCount

O número de amostras de queries de leitura.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.

$currentOp.sampledWritesCount

O número de queries de escrita como amostras.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.

$currentOp.sampledReadsBytes

O tamanho das amostras de queries de leitura, em bytes.

Em um conjunto de réplicas, isso é relatado a cada mongod.

Em um cluster fragmentado, isso só foi relatado em mongod com --shardsvr.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.

$currentOp.sampledWritesBytes

Tamanho total das queries de escrita amostradas, em bytes.

Em um conjunto de réplicas, isso é relatado a cada mongod.

Em um cluster fragmentado, isso só foi relatado em mongod com --shardsvr.

This field only appears on documents related to query sampling. For details, see Sampled Queries.

Novidades na versão 7.0.