Docs Menu
Docs Home
/
MongoDB Manual
/ / /

serverStatus

On this page

  • Definition
  • Syntax
  • Behavior
  • Output
  • Output Changelog
serverStatus

The serverStatus command returns a document that provides an overview of the database's state. Monitoring applications can run this command at a regular interval to collect statistics about the instance.

The command has the following syntax:

db.runCommand( { serverStatus: 1 } )

The value (i.e. 1 above) does not affect the operation of the command. The db.serverStatus() command returns a large amount of data. To return a specific object or field from the output append the object or field name to the command.

For example:

db.runCommand({ serverStatus: 1}).metrics
db.runCommand({ serverStatus: 1}).metrics.commands
db.runCommand({ serverStatus: 1}).metrics.commands.update

The mongo shell provides the db.serverStatus() wrapper for the serverStatus command.

Tip

See also:

Much of the output of serverStatus is also displayed dynamically by mongostat. See the mongostat command for more information.

By default, serverStatus excludes in its output:

  • some content in the repl document.

  • mirroredReads document. (Available starting in version 4.4)

To include fields that are excluded by default, specify the top-level field and set it to 1 in the command. To exclude fields that are included by default, specify the top-level field and set to 0 in the command.

For example, the following operation suppresses the repl, metrics and locks information in the output.

db.runCommand( { serverStatus: 1, repl: 0, metrics: 0, locks: 0 } )

The following example includes all repl information in the output:

db.runCommand( { serverStatus: 1, repl: 1 } )

The statistics reported by serverStatus are reset when the mongod server is restarted.

This command will always return a value, even on a fresh database. The related command db.serverStatus() does not always return a value unless a counter has started to increment for a particular metric.

After you run an update query, db.serverStatus() and db.runCommand({ serverStatus: 1}) both return the same values.

{
"arrayFilters" : NumberLong(0),
"failed" : NumberLong(0),
"pipeline" : NumberLong(0),
"total" : NumberLong(1)
}

By default, the mirroredReads information (available starting in version 4.4) is not included in the output. To return mirroredReads information, you must explicitly specify the inclusion:

db.runCommand( { serverStatus: 1, mirroredReads: 1 } )

By default, the latchAnalysis information (available starting in version 4.4) is not included in the output. To return latchAnalysis information, you must explicitly specify the inclusion:

db.runCommand( { serverStatus: 1, latchAnalysis: 1 } )

By default, tcmalloc information is included in the output. This section provides memory allocation statistics for your database. To change the verbosity of the tcmalloc section, specify an integer between 0 and 2 (inclusive):

db.runCommand( { serverStatus: 1, tcmalloc: <int> } )

The command has the following behavior:

  • By default, tcmalloc is set to 1.

  • Passing a larger integer value increases the verbosity.

  • Passing 0 or false omits the tcmalloc section from the output.

  • Passing any other input results in the default setting.

For more information about how MongoDB allocates memory, see TCMalloc.

Note

The output fields vary depending on the version of MongoDB, underlying operating system platform, the storage engine, and the kind of node, including mongos, mongod or replica set member.

For the serverStatus output specific to the version of your MongoDB, refer to the appropriate version of the MongoDB Manual.

"host" : <string>,
"advisoryHostFQDNs" : <array>,
"version" : <string>,
"process" : <"mongod"|"mongos">,
"pid" : <num>,
"uptime" : <num>,
"uptimeMillis" : <num>,
"uptimeEstimate" : <num>,
"localTime" : ISODate(""),
host

The system's hostname. In Unix/Linux systems, this should be the same as the output of the hostname command.

advisoryHostFQDNs

New in version 3.2.

An array of the system's fully qualified domain names (FQDNs).

version

The MongoDB version of the current MongoDB process.

process

The current MongoDB process. Possible values are: mongos or mongod.

pid

The process id number.

uptime

The number of seconds that the current MongoDB process has been active.

uptimeMillis

The number of milliseconds that the current MongoDB process has been active.

uptimeEstimate

The uptime in seconds as calculated from MongoDB's internal course-grained time keeping system.

localTime

The ISODate representing the current time, according to the server, in UTC.

"asserts" : {
"regular" : <num>,
"warning" : <num>,
"msg" : <num>,
"user" : <num>,
"rollovers" : <num>
},
asserts

A document that reports on the number of assertions raised since the MongoDB process started. While assert errors are typically uncommon, if there are non-zero values for the asserts, you should check the log file for more information. In many cases, these errors are trivial, but are worth investigating.

asserts.regular

The number of regular assertions raised since the MongoDB process started. Check the log file for more information about these messages.

asserts.warning

This field always returns zero 0.

asserts.msg

The number of message assertions raised since the MongoDB process started. Check the log file for more information about these messages.

asserts.user

The number of "user asserts" that have occurred since the last time the MongoDB process started. These are errors that user may generate, such as out of disk space or duplicate key. You can prevent these assertions by fixing a problem with your application or deployment. Check the MongoDB log for more information.

asserts.rollovers

The number of times that the assert counters have rolled over since the last time the MongoDB process started. The counters will roll over to zero after 2 30 assertions. Use this value to provide context to the other values in the asserts data structure.

"connections" : {
"current" : <num>,
"available" : <num>,
"totalCreated" : <num>,
"active" : <num>,
"exhaustIsMaster" : <num>,
"exhaustHello" : <num>,
"awaitingTopologyChanges" : <num>
},
connections

A document that reports on the status of the connections. Use these values to assess the current load and capacity requirements of the server.

connections.current

The number of incoming connections from clients to the database server . This number includes the current shell session. Consider the value of connections.available to add more context to this datum.

The value will include all incoming connections including any shell connections or connections from other servers, such as replica set members or mongos instances.

connections.available

The number of unused incoming connections available. Consider this value in combination with the value of connections.current to understand the connection load on the database, and the UNIX ulimit Settings document for more information about system thresholds on available connections.

connections.totalCreated

Count of all incoming connections created to the server. This number includes connections that have since closed.

connections.active

The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress.

connections.exhaustIsMaster

The number of connections whose last request was an isMaster request with exhaustAllowed.

New in version 4.4.

connections.exhaustHello

The number of connections whose last request was a hello request with exhaustAllowed.

New in version 4.4.2.

connections.awaitingTopologyChanges

The number of clients currently waiting in a hello or an isMaster request for a topology change.

New in version 4.4.

Available starting in 4.4

The defaultRWConcern section provides information on the local copy of the global default read or write concern settings. The data may be stale or out of date. See getDefaultRWConcern for more information.

"defaultRWConcern" : {
"defaultReadConcern" : {
"level" : <string>
},
"defaultWriteConcern" : {
"w" : <string> | <int>,
"wtimeout" : <int>,
"j" : <bool>
},
"updateOpTime" : Timestamp,
"updateWallClockTime" : Date,
"localUpdateWallClockTime" : Date
}
defaultRWConcern

The last known global default read or write concern settings.

New in version 4.4.

defaultRWConcern.defaultReadConcern

The last known global default read concern setting.

If serverStatus does not return this field, the global default read concern has either not been set or has not yet propagated to the instance.

New in version 4.4.

defaultRWConcern.defaultReadConcern.level

The last known global default read concern level setting.

If serverStatus does not return this field, the global default for this setting has either not been set or has not yet propagated to the instance.

New in version 4.4.

defaultRWConcern.defaultWriteConcern

The last known global default write concern setting.

If serverStatus does not return this field, the global default write concern has either not been set or has not yet propagated to the instance.

New in version 4.4.

defaultRWConcern.defaultWriteConcern.w

The last known global default w setting.

If serverStatus does not return this field, the global default for this setting has either not been set or has not yet propagated to the instance.

New in version 4.4.

defaultRWConcern.defaultWriteConcern.wtimeout

The last known global default wtimeout setting.

If serverStatus does not return this field, the global default for this setting has either not been set or has not yet propagated to the instance.

New in version 4.4.

defaultRWConcern.updateOpTime

The timestamp when the instance last updated its copy of any global read or write concern settings. If the defaultRWConcern.defaultReadConcern and defaultRWConcern.defaultWriteConcern fields are absent, this field indicates the timestamp when the defaults were last unset.

New in version 4.4.

defaultRWConcern.updateWallClockTime

The wall clock time when the instance last updated its copy of any global read or write concern settings. If the defaultRWConcern.defaultReadConcern and defaultRWConcern.defaultWriteConcern fields are absent, this field indicates the time when the defaults were last unset.

New in version 4.4.

defaultRWConcern.localUpdateWallClockTime

The local system wall clock time when the instance last updated its copy of any global read or write concern setting. If this field is the only field under defaultRWConcern, the instance has never had knowledge of a global default read or write concern setting.

New in version 4.4.

New in version 4.2.1.

The electionMetrics section provides information on elections called by this mongod instance in a bid to become the primary:

"electionMetrics" : {
"stepUpCmd" : {
"called" : <NumberLong>,
"successful" : <NumberLong>
},
"priorityTakeover" : {
"called" : <NumberLong>,
"successful" : <NumberLong>
},
"catchUpTakeover" : {
"called" : <NumberLong>,
"successful" : <NumberLong>
},
"electionTimeout" : {
"called" : <NumberLong>,
"successful" : <NumberLong>
},
"freezeTimeout" : {
"called" : <NumberLong>,
"successful" : <NumberLong>
},
"numStepDownsCausedByHigherTerm" : <NumberLong>,
"numCatchUps" : <NumberLong>,
"numCatchUpsSucceeded" : <NumberLong>,
"numCatchUpsAlreadyCaughtUp" : <NumberLong>,
"numCatchUpsSkipped" : <NumberLong>,
"numCatchUpsTimedOut" : <NumberLong>,
"numCatchUpsFailedWithError" :<NumberLong>,
"numCatchUpsFailedWithNewTerm" : <NumberLong>,
"numCatchUpsFailedWithReplSetAbortPrimaryCatchUpCmd" : <NumberLong>,
"averageCatchUpOps" : <double>
}
electionMetrics.stepUpCmd

Metrics on elections that were called by the mongod instance as part of an election handoff when the primary stepped down.

The stepUpCmd includes both the number of elections called and the number of elections that succeeded.

New in version 4.2.1.

electionMetrics.priorityTakeover

Metrics on elections that were called by the mongod instance because its priority is higher than the primary's.

The electionMetrics.priorityTakeover includes both the number of elections called and the number of elections that succeeded.

New in version 4.2.1.

electionMetrics.catchUpTakeover

Metrics on elections called by the mongod instance because it is more-up-to-date than the primary.

The catchUpTakeover includes both the number of elections called and the number of elections that succeeded.

New in version 4.2.1.

electionMetrics.electionTimeout

Metrics on elections called by the mongod instance because it has not been able to reach the primary within settings.electionTimeoutMillis.

The electionTimeout includes both the number of elections called and the number of elections that succeeded.

New in version 4.2.1.

electionMetrics.freezeTimeout

Metrics on elections called by the mongod instance after its freeze period (during which the member cannot seek an election) has expired.

The electionMetrics.freezeTimeout includes both the number of elections called and the number of elections that succeeded.

..versionadded:: 4.2.1

electionMetrics.numStepDownsCausedByHigherTerm

Number of times the mongod instance stepped down because it saw a higher term (i.e. other member/members have participated in additional elections).

New in version 4.2.1.

electionMetrics.numCatchUps

Number of elections where the mongod instance as the newly-elected primary had to catch up to the highest known oplog entry.

New in version 4.2.1.

electionMetrics.numCatchUpsSucceeded

Number of times the mongod instance as the newly-elected primary successfully caught up to the highest known oplog entry.

New in version 4.2.1.

electionMetrics.numCatchUpsAlreadyCaughtUp

Number of times the mongod instance as the newly-elected primary concluded its catchup process because it was already caught up when elected

New in version 4.2.1.

electionMetrics.numCatchUpsSkipped

Number of times the mongod instance as the newly-elected primary skipped the catchup process.

New in version 4.2.1.

electionMetrics.numCatchUpsTimedOut

Number of times the mongod instance as the newly-elected primary concluded its catchup process because of the settings.catchUpTimeoutMillis limit.

New in version 4.2.1.

electionMetrics.numCatchUpsFailedWithError

Number of times the newly-elected primary's catchup process failed with an error.

New in version 4.2.1.

electionMetrics.numCatchUpsFailedWithNewTerm

Number of times the newly-elected primary's catchup process concluded because another member(s) had a higher term (i.e. other member/members have participated in additional elections).

New in version 4.2.1.

electionMetrics.numCatchUpsFailedWithReplSetAbortPrimaryCatchUpCmd

Number of times the newly-elected primary's catchup process concluded because the mongod received the replSetAbortPrimaryCatchUp command.

New in version 4.2.1.

electionMetrics.averageCatchUpOps

Average number of operations applied during the newly-elected primary's catchup processes.

New in version 4.2.1.

"extra_info" : {
"note" : "fields vary by platform.",
"page_faults" : <num>
},
extra_info

A document that provides additional information regarding the underlying system.

extra_info.note

A string with the text "fields vary by platform."

extra_info.page_faults

The total number of page faults. The extra_info.page_faults counter may increase dramatically during moments of poor performance and may correlate with limited memory environments and larger data sets. Limited and sporadic page faults do not necessarily indicate an issue.

Windows draws a distinction between "hard" page faults involving disk I/O, and "soft" page faults that only require moving pages in memory. MongoDB counts both hard and soft page faults in this statistic.

New in version 4.2.

"flowControl" : {
"enabled" : <boolean>,
"targetRateLimit" : <int>,
"timeAcquiringMicros" : <NumberLong>,
"locksPerKiloOp" : <double>, // Available in 4.4+. In 4.2, returned locksPerOp instead.
"sustainerRate" : <int>,
"isLagged" : <boolean>,
"isLaggedCount" : <int>,
"isLaggedTimeMicros" : <NumberLong>,
},
flowControl

A document that returns statistics on the Flow Control. With flow control enabled, as the majority commit point lag grows close to the flowControlTargetLagSeconds, writes on the primary must obtain tickets before taking locks. As such, the metrics returned are meaningful when run on the primary.

New in version 4.2.

flowControl.enabled

A boolean that indicates whether Flow Control is enabled(true) or disabled (false).

See also enableFlowControl.

New in version 4.2.

flowControl.targetRateLimit

When run on the primary, the maximum number of tickets that can be acquired per second.

When run on a secondary, the returned number is a placeholder.

New in version 4.2.

flowControl.timeAcquiringMicros

When run on the primary, the total time write operations have waited to acquire a ticket.

When run on a secondary, the returned number is a placeholder.

New in version 4.2.

flowControl.locksPerKiloOp

Note

Starting in MongoDB 4.4

locksPerKiloOp replaces locksPerOp field. locksPerOp field is available only on version 4.2.

When run on the primary, an approximation of the number of locks taken per 1000 operations.

When run on a secondary, the returned number is a placeholder.

New in version 4.4.

flowControl.locksPerOp

Note

Available on MongoDB 4.2 only

MongoDB 4.4 replaces locksPerOp with flowControl.locksPerKiloOp.

When run on the primary, an approximation of the number of locks taken per operation.

When run on a secondary, the returned number is a placeholder.

New in version 4.2.

flowControl.sustainerRate

When run on the primary, an approximation of operations applied per second by the secondary that is sustaining the commit point.

When run on a secondary, the returned number is a placeholder.

New in version 4.2.

flowControl.isLagged

When run on the primary, a boolean that indicates whether flow control has engaged. Flow control engages when the majority committed lag is greater than some percentage of the configured flowControlTargetLagSeconds.

When run on a secondary, the returned boolean is a placeholder.

New in version 4.2.

flowControl.isLaggedCount

When run on a primary, the number of times flow control has engaged since the last restart. Flow control engages when the majority committed lag is greater than some percentage of the flowControlTargetLagSeconds.

When run on a secondary, the returned number is a placeholder.

New in version 4.2.

flowControl.isLaggedTimeMicros

When run on the primary, the amount of time flow control has spent being engaged since the last restart. Flow control engages when the majority committed lag is greater than some percentage of the flowControlTargetLagSeconds.

When run on a secondary, the returned number is a placeholder.

New in version 4.2.

"globalLock" : {
"totalTime" : <num>,
"currentQueue" : {
"total" : <num>,
"readers" : <num>,
"writers" : <num>
},
"activeClients" : {
"total" : <num>,
"readers" : <num>,
"writers" : <num>
}
},
globalLock

A document that reports on the database's lock state.

Generally, the locks document provides more detailed data on lock uses.

globalLock.totalTime

The time, in microseconds, since the database last started and created the globalLock. This is roughly equivalent to total server uptime.

globalLock.currentQueue

A document that provides information concerning the number of operations queued because of a lock.

globalLock.currentQueue.total

The total number of operations queued waiting for the lock (i.e., the sum of globalLock.currentQueue.readers and globalLock.currentQueue.writers).

A consistently small queue, particularly of shorter operations, should cause no concern. The globalLock.activeClients readers and writers information provides context for this data.

globalLock.currentQueue.readers

The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern.

globalLock.currentQueue.writers

The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern.

globalLock.activeClients

A document that provides information about the number of connected clients and the read and write operations performed by these clients.

Use this data to provide context for the globalLock.currentQueue data.

globalLock.activeClients.total

The total number of internal client connections to the database including system threads as well as queued readers and writers. This metric will be higher than the total of activeClients.readers and activeClients.writers due to the inclusion of system threads.

globalLock.activeClients.readers

The number of the active client connections performing read operations.

globalLock.activeClients.writers

The number of active client connections performing write operations.

New in version 4.4: For mongos instances only.

"hedgingMetrics" : {
"numTotalOperations" : <num>,
"numTotalHedgedOperations" : <num>,
"numAdvantageouslyHedgedOperations" : <num>
},
hedgingMetrics

Provides metrics on hedged reads for the mongos instance.

New in version 4.4: For mongos instances only.

hedgingMetrics.numTotalOperations

The total number of the operations issued with the hedged read option enabled to this mongos instance.

New in version 4.4: For mongos instances only.

hedgingMetrics.numTotalHedgedOperations

The number of all operations for which the mongos instance hedged the read operation; i.e. sent the operation to an additional member of each queried shard.

New in version 4.4: For mongos instances only.

hedgingMetrics.numAdvantageouslyHedgedOperations

The total number of the operation where the additional read sent to hedge the read operation fulfilled the client request.

New in version 4.4: For mongos instances only.

"indexBulkBuilder": {
"count": <long>,
"resumed": <long>,
"filesOpenedForExternalSort": <long>,
"filesClosedForExternalSort": <long>,
}
indexBulkBuilder

Provides metrics for index bulk builder operations. Use these metrics to diagnose index build issues with createIndexes, collection cloning during initial sync, index builds that resume after startup, and statistics on disk usage by the external sorter.

indexBulkBuilder.count

The number of instances of the bulk builder created.

indexBulkBuilder.filesClosedForExternalSort

The number of times the external sorter closed a file handle to spill data to disk. Combine this value with filesOpenedForExternalSort to determine the number of open file handles in use by the external sorter.

indexBulkBuilder.filesOpenedForExternalSort

The number of times the external sorter opened a file handle to spill data to disk. Combine this value with filesClosedForExternalSort to determine the number of open file handles in use by the external sorter.

indexBulkBuilder.resumed

The number of times the bulk builder was created for a resumable index build.

New in version 4.4.

"latchAnalysis" : {
<latch name> : {
"created" : <num>,
"destroyed" : <num>,
"acquired" : <num>,
"released" : <num>,
"contended" : <num>,
"hierarchicalAcquisitionLevelViolations" : {
"onAcquire" : <num>,
"onRelease" : <num>
}
},
...
latchAnalysis

A document that reports on metrics related to internal locking primitives (a.k.a. latches).

To return latchAnalysis information, you must explicitly specify the inclusion:

db.runCommand( { serverStatus: 1, latchAnalysis: 1 } )

The latchAnalysis returns for each latch the <latch name> and the following associated metrics:

Metric
Description
created
Number of times the latch was created.
destroyed
Number of times the latch was destroyed.
acquired
Number of times the latch was acquired.
released
Number of times the latch was released.
contended
Number of times the latch had contention.
hierarchicalAcquisitionLevelViolations

Only returned if violations exist

Contains the following fields:

  • onAcquire

    • Number of times the latch hierarchy (i.e. the latch level ordering) has been violated during latch acquisition.

  • onRelease

    • Number of times the latch hierarchy (i.e. the latch level ordering) has been violated during latch release.

New in version 4.4.

New in version 3.6.

"logicalSessionRecordCache" : {
"activeSessionsCount" : <num>,
"sessionsCollectionJobCount" : <num>,
"lastSessionsCollectionJobDurationMillis" : <num>,
"lastSessionsCollectionJobTimestamp" : <Date>,
"lastSessionsCollectionJobEntriesRefreshed" : <num>,
"lastSessionsCollectionJobEntriesEnded" : <num>,
"lastSessionsCollectionJobCursorsClosed" : <num>,
"transactionReaperJobCount" : <num>,
"lastTransactionReaperJobDurationMillis" : <num>,
"lastTransactionReaperJobTimestamp" : <Date>,
"lastTransactionReaperJobEntriesCleanedUp" : <num>,
"sessionCatalogSize" : <num> // Starting in MongoDB 4.2
},
logicalSessionRecordCache

Provides metrics around the caching of server sessions.

logicalSessionRecordCache.activeSessionsCount

The number of all active local sessions cached in memory by the mongod or mongos instance since the last refresh period.

logicalSessionRecordCache.sessionsCollectionJobCount

The number that tracks the number of times the refresh process has run on the config.system.sessions collection.

logicalSessionRecordCache.lastSessionsCollectionJobDurationMillis

The length in milliseconds of the last refresh.

logicalSessionRecordCache.lastSessionsCollectionJobTimestamp

The time at which the last refresh occurred.

logicalSessionRecordCache.lastSessionsCollectionJobEntriesRefreshed

The number of sessions that were refreshed during the last refresh.

logicalSessionRecordCache.lastSessionsCollectionJobEntriesEnded

The number of sessions that ended during the last refresh.

logicalSessionRecordCache.lastSessionsCollectionJobCursorsClosed

The number of cursors that were closed during the last config.system.sessions collection refresh.

logicalSessionRecordCache.transactionReaperJobCount

The number that tracks the number of times the transaction record cleanup process has run on the config.transactions collection.

logicalSessionRecordCache.lastTransactionReaperJobDurationMillis

The length (in milliseconds) of the last transaction record cleanup.

logicalSessionRecordCache.lastTransactionReaperJobTimestamp

The time of the last transaction record cleanup.

logicalSessionRecordCache.lastTransactionReaperJobEntriesCleanedUp

The number of entries in the config.transactions collection that were deleted during the last transaction record cleanup.

logicalSessionRecordCache.sessionCatalogSize
  • For a mongod instance,
    The size of its in-memory cache of the config.transactions entries. This corresponds to retryable writes or transactions whose sessions have not expired within the localLogicalSessionTimeoutMinutes.
  • For a mongos instance,
    The number of the in-memory cache of its sessions that have had transactions within the most recent localLogicalSessionTimeoutMinutes interval.

New in version 4.2.

"locks" : {
<type> : {
"acquireCount" : {
<mode> : NumberLong(<num>),
...
},
"acquireWaitCount" : {
<mode> : NumberLong(<num>),
...
},
"timeAcquiringMicros" : {
<mode> : NumberLong(<num>),
...
},
"deadlockCount" : {
<mode> : NumberLong(<num>),
...
}
},
...
locks

A document that reports for each lock <type>, data on lock <modes>.

The possible lock <types> are:

Lock Type
Description
ParallelBatchWriterMode

Represents a lock for parallel batch writer mode.

In earlier versions, PBWM information was reported as part of the Global lock information.

New in version 4.2.

ReplicationStateTransition

Represents lock taken for replica set member state transitions.

New in version 4.2.

Global
Represents global lock.
Database
Represents database lock.
Collection
Represents collection lock.
Mutex
Represents mutex.
Metadata
Represents metadata lock.
oplog
Represents lock on the oplog.

The possible <modes> are:

Lock Mode
Description
R
Represents Shared (S) lock.
W
Represents Exclusive (X) lock.
r
Represents Intent Shared (IS) lock.
w
Represents Intent Exclusive (IX) lock.

All values are of the NumberLong() type.

locks.<type>.acquireCount

Number of times the lock was acquired in the specified mode.

locks.<type>.acquireWaitCount

Number of times the locks.<type>.acquireCount lock acquisitions encountered waits because the locks were held in a conflicting mode.

locks.<type>.timeAcquiringMicros

Cumulative wait time in microseconds for the lock acquisitions.

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

locks.<type>.deadlockCount

Number of times the lock acquisitions encountered deadlocks.

Available on mongod only.

"mirroredReads" : {
"seen" : <num>,
"sent" : <num>
},
mirroredReads

Available on mongod only.

A document that reports on mirrored reads. To return mirroredReads information, you must explicitly specify the inclusion:

db.runCommand( { serverStatus: 1, mirroredReads: 1 } )
mirroredReads.seen

The number of operations that support mirroring received by this member.

Tip

See also:

mirrorReads Parameter

New in version 4.4.

mirroredReads.sent

The number of mirrored reads sent by this member when primary. For example, if a read is mirrored and sent to two secondaries, the number of mirrored reads is 2.

Tip

See also:

mirrorReads Parameter

New in version 4.4.

network : {
bytesIn : Long("<num>"),
bytesOut : Long("<num>"),
numSlowDNSOperations : Long("<num>"),
numSlowSSLOperations : Long("<num>"),
numRequests : Long("<num>"),
tcpFastOpen : {
serverSupported : <bool>,
clientSupported : <bool>,
accepted : Long("<num>")
},
compression : {
snappy : {
compressor : { bytesIn : Long("<num>"), bytesOut : Long("<num>") },
decompressor : { bytesIn : Long("<num>"), bytesOut : Long("<num>") }
},
zstd : {
compressor : { bytesIn : Long("<num>"), bytesOut : Long("<num>") },
decompressor : { bytesIn : Long("<num>"), bytesOut : Long("<num>") }
},
zlib : {
compressor : { bytesIn : Long("<num>"), bytesOut : Long("<num>") },
decompressor : { bytesIn : Long("<num>"), bytesOut : Long("<num>") }
}
}
}
network

A document that reports data on MongoDB's network use. These statistics measure ingress connections only, i.e. traffic seen by the mongod / mongos over network connections initiated by clients or other mongod / mongos instances. Traffic from network connections initiated by this mongod / mongos instance (i.e. egress connections) is not measured in these statistics.

network.bytesIn

The total number of bytes that the server has received over network connections initiated by clients or other mongod / mongos instances.

network.bytesOut

The total number of bytes that the server has sent over network connections initiated by clients or other mongod / mongos instances.

network.numSlowDNSOperations

New in version 4.4.

The total number of DNS resolution operations which took longer than 1 second.

network.numSlowSSLOperations

New in version 4.4.

The total number of SSL handshake operations which took longer than 1 second.

network.numRequests

The total number of distinct requests that the server has received. Use this value to provide context for the network.bytesIn and network.bytesOut values to ensure that MongoDB's network utilization is consistent with expectations and application use.

network.tcpFastOpen

New in version 4.4.

A document that reports data on MongoDB's support and use of TCP Fast Open (TFO) connections.

network.tcpFastOpen.kernelSetting

New in version 4.4.

Linux only

Returns the value of /proc/sys/net/ipv4/tcp_fastopen:

  • 0 - TCP Fast Open is disabled on the system.

  • 1 - TCP Fast Open is enabled for outgoing connections.

  • 2 - TCP Fast Open is enabled for incoming connections.

  • 3 - TCP Fast Open is enabled for incoming and outgoing connections.

network.tcpFastOpen.serverSupported

New in version 4.4.

  • Returns true if the host operating system supports inbound TCP Fast Open (TFO) connections.

  • Returns false if the host operating system does not support inbound TCP Fast Open (TFO) connections.

network.tcpFastOpen.clientSupported

New in version 4.4.

  • Returns true if the host operating system supports outbound TCP Fast Open (TFO) connections.

  • Returns false if the host operating system does not support outbound TCP Fast Open (TFO) connections.

network.tcpFastOpen.accepted

New in version 4.4.

The total number of accepted incoming TCP Fast Open (TFO) connections to the mongod or mongos since the mongod or mongos last started.

network.compression

A document that reports on the amount of data compressed and decompressed by each network compressor library.

network.compression.snappy

A document that returns statistics on the number of bytes that have been compressed and decompressed with the snappy library.

network.compression.zstd

A document that returns statistics on the number of bytes that have been compressed and decompressed with the zstd library.

network.compression.zlib

A document that returns statistics on the number of bytes that have been compressed and decompressed with the zlib library.

Only for ``mongod`` instances

"opLatencies" : {
"reads" : <document>,
"writes" : <document>,
"commands" : <document>
},
opLatencies

A document containing operation latencies for the instance as a whole. See latencyStats Document for an description of this document.

Only mongod instances report opLatencies.

opLatencies.reads

Latency statistics for read requests.

opLatencies.writes

Latency statistics for write operations.

opLatencies.commands

Latency statistics for database commands.

New in version 4.0.6.

Only for mongod instances

"opReadConcernCounters" : {
"available" : NumberLong(<num>),
"linearizable" : NumberLong(<num>),
"local" : NumberLong(<num>),
"majority" : NumberLong(<num>),
"snapshot" : NumberLong(<num>),
"none" : NumberLong(<num>)
}
opReadConcernCounters

New in version 4.0.6.

A document that reports on the read concern level specified by query operations to the mongod instance since it last started.

Specified w
Description
"available"
Number of query operations that specified read concern level "available".
"linearizable"
Number of query operations that specified read concern level "linearizable".
"local"
Number of query operations that specified read concern level "local".
"majority"
Number of query operations that specified read concern level "majority".
"snapshot"
Number of query operations that specified read concern level "snapshot".
"none"
Number of query operations that did not specify a read concern level and instead used the default read concern level.

The sum of the opReadConcernCounters equals opcounters.query.

Only for mongod instances

"opWriteConcernCounters" : {
"insert" : {
"wmajority" : NumberLong(<num>),
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
},
"update" : {
"wmajority" : NumberLong(<num>),
"wnum" : {
"<num>" : NumberLong(<num>),
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
},
"delete" : {
"wmajority" : NumberLong(<num>)
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
}
}
opWriteConcernCounters

A document that reports on the write concerns specified by write operations to the mongod instance since it last started.

More specifically, the opWriteConcernCounters reports on the w: <value> specified by the write operations. The journal flag option (j) and the timeout option (wtimeout) of the write concerns does not affect the count. The count is incremented even if the operation times out.

Note

Only available when reportOpWriteConcernCountersInServerStatus parameter is set to true (false by default).

opWriteConcernCounters.insert

A document that reports on the w: <value> specified by insert operations to the mongod instance since it last started:

Note

Only available when reportOpWriteConcernCountersInServerStatus parameter is set to true (false by default).

"insert" : {
"wmajority" : NumberLong(<num>),
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
},
Specified w
Description
"wmajority"
Number of insert operations that specified w: "majority".
"wnum"
Number of insert operations that specified w: <num>. The counts are grouped by the specific``<num>``.
"wtag"
Number of insert operations that specified w: <tag>. The counts are grouped by the specific <tag>.
"none"
Number of insert operations that did not specify w value. These operations use the default w value of 1.

The sum of the opWriteConcernCounters.insert equals opcounters.insert.

opWriteConcernCounters.update

A document that reports on the w: <value> specified by update operations to the mongod instance since it last started:

Note

Only available when reportOpWriteConcernCountersInServerStatus parameter is set to true (false by default).

"update" : {
"wmajority" : NumberLong(<num>),
"wnum" : {
"<num>" : NumberLong(<num>),
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
},
Specified w
Description
"wmajority"
Number of update operations that specified w: "majority".
"wnum"
Number of update operations that specified w: <num>. The counts are grouped by the specific <num>.
"wtag"
Number of update operations that specified w: <tag>. The counts are grouped by the specific <tag>.
"none"
Number of update operations that did not specify w value. These operations use the default w value of 1.

The sum of the opWriteConcernCounters.update equals opcounters.update.

opWriteConcernCounters.delete

A document that reports on the w: <value> specified by delete operations to the mongod instance since it last started:

Note

Only available when reportOpWriteConcernCountersInServerStatus parameter is set to true (false by default).

"delete" : {
"wmajority" : NumberLong(<num>)
"wnum" : {
"<num>" : NumberLong(<num>),
...
},
"wtag" : {
"<tag1>" : NumberLong(<num>),
...
},
"none" : NumberLong(<num>)
}
Specified w
Description
"wmajority"
Number of delete operations that specified w: "majority".
"wnum"
Number of delete operations that specified w: <num>. The counts are grouped by the specific <num>.
"wtag"
Number of delete operations that specified w: <tag>. The counts are grouped by the specific <tag>.
"none"
Number of delete operations that did not specify w value. These operations use the default w value of 1.

The sum of the opWriteConcernCounters.delete equals opcounters.delete.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

"opcounters" : {
"insert" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"query" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"update" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"delete" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"getmore" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"command" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
},
opcounters

A document that reports on database operations by type since the mongod instance last started.

These numbers will grow over time until next restart. Analyze these values over time to track database utilization.

Note

The data in opcounters treats operations that affect multiple documents, such as bulk insert or multi-update operations, as a single operation. See metrics.document for more granular document-level operation tracking.

Additionally, these values reflect received operations, and increment even when operations are not successful.

opcounters.insert

The total number of insert operations received since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

opcounters.query

The total number of queries received since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

opcounters.update

The total number of update operations received since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

opcounters.delete

The total number of delete operations since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

opcounters.getmore

The total number of getMore operations since the mongod instance last started. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

opcounters.command

The total number of commands issued to the database since the mongod instance last started.

opcounters.command counts all commands except the write commands: insert, update, and delete.

Starting in MongoDB 4.2, the returned opcounters.* values are type NumberLong. In previous versions, the values are of type NumberInt.

opcounters.deprecated

This section only appears in the db.serverStatus() output when one of the following, deprecated opcodes has been used:

"deprecated": {
"opQuery": NumberLong(<num>),
"opGetMore": NumberLong(<num>),
"opKillCursors": NumberLong(<num>),
"opDelete": NumberLong(<num>),
"opUpdate": NumberLong(<num>),
"opInsert": NumberLong(<num>),
"total": NumberLong(<num>),
}

These opcodes were deprecated in MongoDB 4.4.7 and support for these opcodes is removed in MongoDB 5.1. Starting in MongoDB 5.1, mongod refuses requests that use a deprecated opcode and increments the corresponding counter.

OP_QUERY is an exception to the general rule. mongod continues to support hello and isMaster requests that use OP_QUERY. mongod refuses any other OP_QUERY requests.

The counters are reset when mongod starts.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

"opcountersRepl" : {
"insert" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"query" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"update" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"delete" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"getmore" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
"command" : NumberLong(<num>), // Starting in MongoDB 4.2, type is NumberLong
},
opcountersRepl

A document that reports on database replication operations by type since the mongod instance last started.

These values only appear when the current host is a member of a replica set.

These values will differ from the opcounters values because of how MongoDB serializes operations during replication. See Replication for more information on replication.

These numbers will grow over time in response to database use until next restart. Analyze these values over time to track database utilization.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

opcountersRepl.insert

The total number of replicated insert operations since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

opcountersRepl.query

The total number of replicated queries since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

opcountersRepl.update

The total number of replicated update operations since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

opcountersRepl.delete

The total number of replicated delete operations since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

opcountersRepl.getmore

The total number of getMore operations since the mongod instance last started. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

opcountersRepl.command

The total number of replicated commands issued to the database since the mongod instance last started.

Starting in MongoDB 4.2, the returned opcountersRepl.* values are type NumberLong. In previous versions, the values are type NumberInt.

"oplogTruncation" : {
"totalTimeProcessingMicros" : <NumberLong>,
"processingMethod" : <string>,
"oplogMinRetentionHours" : <double>
"totalTimeTruncatingMicros" : <NumberLong>,
"truncateCount" : <NumberLong>
},
oplogTruncation

A document that reports on oplog truncations.

The field only appears when the current instance is a member of a replica set and uses either the WiredTiger Storage Engine or In-Memory Storage Engine.

Changed in version 4.4: Also available in In-Memory Storage Engine.

New in version 4.2.1: Available in the WiredTiger Storage Engine.

oplogTruncation.totalTimeProcessingMicros

The total time taken, in microseconds, to scan or sample the oplog to determine the oplog truncation points.

totalTimeProcessingMicros is only meaningful if the mongod instance started on existing data files (i.e. not meaningful for In-Memory Storage Engine).

See oplogTruncation.processingMethod

Changed in version 4.4: Also available in In-Memory Storage Engine.

New in version 4.2.1: Available in the WiredTiger Storage Engine.

oplogTruncation.processingMethod

The method used at start up to determine the oplog truncation points. The value can be either "sampling" or "scanning".

processingMethod is only meaningful if the mongod instance started on existing data files (i.e. not meaningful for In-Memory Storage Engine).

Changed in version 4.4: Also available in In-Memory Storage Engine.

New in version 4.2.1: Available in the WiredTiger Storage Engine.

oplogTruncation.oplogMinRetentionHours

New in version 4.4: The minimum retention period for the oplog in hours. If the oplog has exceeded the oplog size, the mongod only truncates oplog entries older than the configured retention value.

Only visible if the mongod is a member of a replica set and:

oplogTruncation.totalTimeTruncatingMicros

The cumulative time spent, in microseconds, performing oplog truncations.

Changed in version 4.4: Also available in In-Memory Storage Engine.

New in version 4.2.1: Available in the WiredTiger Storage Engine.

oplogTruncation.truncateCount

The cumulative number of oplog truncations.

Changed in version 4.4: Also available in In-Memory Storage Engine.

New in version 4.2.1: Available in the WiredTiger Storage Engine.

"repl" : {
"hosts" : [
<string>,
<string>,
<string>
],
"setName" : <string>,
"setVersion" : <num>,
"ismaster" : <boolean>,
"secondary" : <boolean>,
"primary" : <hostname>,
"me" : <hostname>,
"electionId" : ObjectId(""),
"rbid" : <num>,
"replicationProgress" : [
{
"rid" : <ObjectId>,
"optime" : { ts: <timestamp>, term: <num> },
"host" : <hostname>,
"memberId" : <num>
},
...
]
}
repl

A document that reports on the replica set configuration. repl only appear when the current host is a replica set. See Replication for more information on replication.

repl.hosts

An array of the current replica set members' hostname and port information ("host:port").

repl.setName

A string with the name of the current replica set. This value reflects the --replSet command line argument, or replSetName value in the configuration file.

repl.ismaster

A boolean that indicates whether the current node is the primary of the replica set.

repl.secondary

A boolean that indicates whether the current node is a secondary member of the replica set.

repl.primary

The hostname and port information ("host:port") of the current primary member of the replica set.

repl.me

The hostname and port information ("host:port") for the current member of the replica set.

repl.rbid

Rollback identifier. Used to determine if a rollback has happened for this mongod instance.

repl.replicationProgress

An array with one document for each member of the replica set that reports replication process to this member. Typically this is the primary, or secondaries if using chained replication.

To include this output, you must pass the repl option to the serverStatus, as in the following:

db.serverStatus({ "repl": 1 })
db.runCommand({ "serverStatus": 1, "repl": 1 })

The content of the repl.replicationProgress section depends on the source of each member's replication. This section supports internal operation and is for internal and diagnostic use only.

repl.replicationProgress[n].rid

An ObjectId used as an ID for the members of the replica set. For internal use only.

repl.replicationProgress[n].optime

Information regarding the last operation from the oplog that the member applied, as reported from this member.

repl.replicationProgress[n].host

The name of the host in [hostname]:[port] format for the member of the replica set.

repl.replicationProgress[n].memberID

The integer identifier for this member of the replica set.

"security" : {
"authentication" : {
"mechanisms" : {
"MONGODB-X509" : {
"speculativeAuthenticate" : {
"received" : <num>,
"successful" : <num>
},
"authenticate" : {
"received" : <num>,
"successful" : <num>
}
},
"SCRAM-SHA-1" : {
"speculativeAuthenticate" : {
"received" : <num>,
"successful" : <num>
},
"authenticate" : {
"received" : <num>,
"successful" : <num>
}
},
"SCRAM-SHA-256" : {
"speculativeAuthenticate" : {
"received" : <num>,
"successful" : <num>
},
"authenticate" : {
"received" : <num>,
"successful" : <num>
}
}
}
},
"SSLServerSubjectName": <string>,
"SSLServerHasCertificateAuthority": <boolean>,
"SSLServerCertificateExpirationDate": <date>
},
security

A document that reports on:

  • The number of times a given authentication mechanism has been used to authenticate against the mongod / mongos instance. (New in MongoDB 4.4)

  • The mongod / mongos instance's TLS/SSL certificate. (Only appears for mongod or mongos instance with support for TLS)

security.authentication.mechanisms

A document that reports on the number of times a given authentication mechanism has been used to authenticate against the mongod/mongos instance. The values in the document distinguish standard authentication and speculative authentication. [1]

New in version 4.4.

Note

The fields in the mechanisms document depend on the configuration of the authenticationMechanisms parameter. The mechanisms document includes a field for each authentication mechanism supported by your mongod / mongos instance.

The following example shows the shape of the mechanisms document for a deployment that only supports x.509 authentication.

security.authentication.mechanisms.MONGODB-X509

A document that reports on the number of times x.509 has been used to authenticate against the mongod / mongos instance.

Includes total number of x.509 authentication attempts and the subset of those attempts which were speculative. [1]

New in version 4.4.

security.authentication.mechanisms.MONGODB-X509.speculativeAuthenticate.received

Number of speculative authentication attempts received using x.509. Includes both successful and failed speculative authentication attempts. [1]

New in version 4.4.

security.authentication.mechanisms.MONGODB-X509.speculativeAuthenticate.successful

Number of successful speculative authentication attempts received using x.509. [1]

New in version 4.4.

security.authentication.mechanisms.MONGODB-X509.authenticate.received

Number of successful and failed authentication attempts received using x.509. This value includes speculative authentication attempts received using x.509.

New in version 4.4.

security.authentication.mechanisms.MONGODB-X509.authenticate.successful

Number of successful authentication attempts received using x.509. This value includes successful speculative authentication attempts which used x.509.

New in version 4.4.

[1](1, 2, 3, 4) Speculative authentication minimizes the number of network round trips during the authentication process to optimize performance.
security.SSLServerSubjectName

The subject name associated with the mongod / mongos instance's TLS/SSL certificate.

security.SSLServerHasCertificateAuthority

A boolean that is:

  • true when the mongod / mongos instance's TLS/SSL certificate is associated with a certificate authority.

  • false when the TLS/SSL certificate is self-signed.

security.SSLServerCertificateExpirationDate

The expiration date and time of the mongod / mongos instance's TLS/SSL certificate.

{
"configsvrConnectionString" : "csRS/cfg1.example.net:27019,cfg2.example.net:27019,cfg2.example.net:27019",
"lastSeenConfigServerOpTime" : {
"ts" : Timestamp(1517462189, 1),
"t" : NumberLong(1)
},
"maxChunkSizeInBytes" : NumberLong(67108864)
}
sharding

A document with data regarding the sharded cluster. The lastSeenConfigServerOpTime is present only for a mongos or a shard member, not for a config server.

sharding.configsvrConnectionString

The connection string for the config servers.

sharding.lastSeenConfigServerOpTime

The latest optime of the CSRS primary that the mongos or the shard member has seen. The optime document includes:

  • ts, the Timestamp of the operation.

  • t, the term in which the operation was originally generated on the primary.

The lastSeenConfigServerOpTime is present only if the sharded cluster uses CSRS.

sharding.maxChunkSizeInBytes

New in version 3.6.

The maximum size limit for a chunk. If the chunk size has been updated recently on the config server, the maxChunkSizeInBytes may not reflect the most recent value.

When run on a member of a shard:

"shardingStatistics" : {
"countStaleConfigErrors" : NumberLong(<num>),
"countDonorMoveChunkStarted" : NumberLong(<num>),
"totalDonorChunkCloneTimeMillis" : NumberLong(<num>),
"totalCriticalSectionCommitTimeMillis" : NumberLong(<num>),
"totalCriticalSectionTimeMillis" : NumberLong(<num>),
"countDocsClonedOnRecipient" : NumberLong(<num>),
"countDocsClonedOnDonor" : NumberLong(<num>),
"countRecipientMoveChunkStarted" : NumberLong(<num>),
"countDocsDeletedOnDonor" : NumberLong(<num>),
"countDonorMoveChunkLockTimeout" : NumberLong(<num>),
"unfinishedMigrationFromPreviousPrimary" : NumberLong(<num>),
"catalogCache" : {
"numDatabaseEntries" : NumberLong(<num>),
"numCollectionEntries" : NumberLong(<num>),
"countStaleConfigErrors" : NumberLong(<num>),
"totalRefreshWaitTimeMicros" : NumberLong(<num>),
"numActiveIncrementalRefreshes" : NumberLong(<num>),
"countIncrementalRefreshesStarted" : NumberLong(<num>),
"numActiveFullRefreshes" : NumberLong(<num>),
"countFullRefreshesStarted" : NumberLong(<num>),
"countFailedRefreshes" : NumberLong(<num>)
},
"rangeDeleterTasks" : <num>
},

When run on a mongos:

"shardingStatistics" : {
"numHostsTargeted": {
"find" : {
"allShards": NumberLong(<num>),
"manyShards": NumberLong(<num>),
"oneShard": NumberLong(<num>),
"unsharded": NumberLong(<num>)
},
"insert": {
"allShards": NumberLong(<num>),
"manyShards": NumberLong(<num>),
"oneShard": NumberLong(<num>),
"unsharded": NumberLong(<num>)
},
"update": {
"allShards": NumberLong(<num>),
"manyShards": NumberLong(<num>),
"oneShard": NumberLong(<num>),
"unsharded": NumberLong(<num>)
},
"delete": {
"allShards": NumberLong(<num>),
"manyShards": NumberLong(<num>),
"oneShard": NumberLong(<num>),
"unsharded": NumberLong(<num>)
},
"aggregate": {
"allShards": NumberLong(<num>),
"manyShards": NumberLong(<num>),
"oneShard": NumberLong(<num>),
"unsharded": NumberLong(<num>)
}
}
},
catalogCache : {
numDatabaseEntries : Long("<num>"),
numCollectionEntries : Long("<num>"),
countStaleConfigErrors : Long("<num>"),
totalRefreshWaitTimeMicros : Long("<num>"),
numActiveIncrementalRefreshes : Long("<num>"),
countIncrementalRefreshesStarted : Long("<num>"),
numActiveFullRefreshes : Long("<num>"),
countFullRefreshesStarted : Long("<num>"),
countFailedRefreshes : Long("<num>")
}
},
shardingStatistics

A document which contains metrics on metadata refresh on sharded clusters.

shardingStatistics.countStaleConfigErrors

The total number of times that threads hit stale config exception. Since a stale config exception triggers a refresh of the metadata, this number is roughly proportional to the number of metadata refreshes.

Only present when run on a shard.

shardingStatistics.countDonorMoveChunkStarted

The total number of times that MongoDB starts the moveChunk command on the primary node of the shard as part of the chunk migration process. This increasing number does not consider whether the chunk migrations succeed or not.

Only present when run on a shard.

shardingStatistics.totalDonorChunkCloneTimeMillis

The cumulative time, in milliseconds, that the clone phase of the chunk migrations takes on the primary node of the shard. Specifically, for each migration on this shard, the tracked time starts with the moveChunk command and ends before the destination shard enters a catchup phase to apply changes that occurred during the chunk migrations.

Only present when run on a shard.

shardingStatistics.totalCriticalSectionCommitTimeMillis

The cumulative time, in milliseconds, taken by the update metadata phase of the chunk migrations from this shard, of which this node is a member. During the update metadata phase, all operations on the collection are blocked.

Only present when run on a shard.

shardingStatistics.totalCriticalSectionTimeMillis

The cumulative time, in milliseconds, that the catch-up phase and the update metadata phase of the chunk migrations takes on the primary node of the shard.

To calculate the duration of the catch-up phase, subtract totalCriticalSectionCommitTimeMillis from totalCriticalSectionTimeMillis

totalCriticalSectionTimeMillis - totalCriticalSectionCommitTimeMillis

Only present when run on a shard.

shardingStatistics.countDocsClonedOnRecipient

The cumulative, always-increasing count of documents that MongoDB clones on the primary node of the recipient shard.

Only present when run on a shard.

New in version 4.2.

shardingStatistics.countDocsClonedOnDonor

The cumulative, always-increasing count of documents that MongoDB clones on the primary node of the donor shard.

Only present when run on a shard.

New in version 4.2.

shardingStatistics.countRecipientMoveChunkStarted

Cumulative, always-increasing count of chunks this member, acting as the primary of the recipient shard, has started to receive (whether the move has succeeded or not.

Only present when run on a shard.

New in version 4.2.

shardingStatistics.countDocsDeletedOnDonor

The cumulative, always-increasing count of documents that MongoDB deletes on the primary node of the donor shard during chunk migration.

Only present when run on a shard.

New in version 4.2.

shardingStatistics.countDonorMoveChunkLockTimeout

The cumulative, always-increasing count of chunk migrations that MongoDB aborts on the primary node of the donor shard due to lock acquisition timeouts.

Only present when run on a shard.

New in version 4.2.

shardingStatistics.unfinishedMigrationFromPreviousPrimary

The number of unfinished migrations left by the previous primary after an election. This value is only updated after the newly-elected mongod completes the transition to primary.

Only present when run on a shard.

New in version 4.4.

shardingStatistics.catalogCache

A document with statistics about the cluster's routing information cache.

shardingStatistics.catalogCache.numDatabaseEntries

The total number of database entries that are currently in the catalog cache.

shardingStatistics.catalogCache.numCollectionEntries

The total number of collection entries (across all databases) that are currently in the catalog cache.

shardingStatistics.catalogCache.countStaleConfigErrors

The total number of times that threads hit stale config exception. A stale config exception triggers a refresh of the metadata.

shardingStatistics.catalogCache.totalRefreshWaitTimeMicros

The cumulative time, in microseconds, that threads had to wait for a refresh of the metadata.

shardingStatistics.catalogCache.numActiveIncrementalRefreshes

The number of incremental catalog cache refreshes that are currently waiting to complete.

shardingStatistics.countIncrementalRefreshesStarted

The cumulative number of incremental refreshes that have started.

shardingStatistics.catalogCache.numActiveFullRefreshes

The number of full catalog cache refreshes that are currently waiting to complete.

shardingStatistics.catalogCache.countFullRefreshesStarted

The cumulative number of full refreshes that have started.

shardingStatistics.catalogCache.countFailedRefreshes

The cumulative number of full or incremental refreshes that have failed.

shardingStatistics.rangeDeleterTasks

The current total of the queued chunk range deletion tasks that are ready to run or are running as part of the chunk migration process.

Inspect the documents in the config.rangeDeletions collection for information about the chunk ranges pending deletion from a shard after a chunk migration.

Only present when run on a shard member.

New in version 4.4.

shardingStatistics.numHostsTargeted

Indicates the number of shards targeted for CRUD operations and aggregation commands. When a CRUD operation or aggregation command is run, the following metrics will be incremented.

Name
Description
allShards
A command targeted all shards
manyShards
A command targeted more than one shard
oneShard
A command targeted one shard
unsharded
A command was run on an unsharded collection

Note

Running the serverStatus command on mongos will provide insight into the CRUD and aggregation operations that run on a sharded cluster.

Multi-shard operations can either be scatter-gather or shard specific. Multi-shard scatter-gather operations can consume more resources. By using the shardingStatistics.numHostsTargeted metrics you can tune the aggregation queries that run on a sharded cluster.

"shardedIndexConsistency" : {
"numShardedCollectionsWithInconsistentIndexes" : <NumberLong>
},
shardedIndexConsistency

Available only on config server instances.

A document that returns results of index consistency checks for sharded collections.

The returned metrics are meaningful only when run on the primary of the config server replica set for a version 4.4+ (and 4.2.6+) sharded cluster.

New in version 4.4. (and 4.2.6)

shardedIndexConsistency.numShardedCollectionsWithInconsistentIndexes

Available only on config server instances.

Number of sharded collections whose indexes are inconsistent across the shards. A sharded collection has an inconsistent index if the collection does not have the exact same indexes (including the index options) on each shard that contains chunks for the collection.

To check if a sharded collection has inconsistent indexes, see Find Inconsistent Indexes across Shards.

The returned metrics are meaningful only when run on the primary of the config server replica set for a version 4.4+ (and 4.2.6+) sharded cluster.

New in version 4.4. (and 4.2.6)

"storageEngine" : {
"name" : <string>,
"supportsCommittedReads" : <boolean>,
"persistent" : <boolean>
},
storageEngine

A document with data about the current storage engine.

storageEngine.name

The name of the current storage engine.

storageEngine.supportsCommittedReads

New in version 3.2.

A boolean that indicates whether the storage engine supports "majority" read concern.

storageEngine.persistent

New in version 3.2.6.

A boolean that indicates whether the storage engine does or does not persist data to disk.

New in version 3.6.3.

"transactions" : {
"retriedCommandsCount" : <NumberLong>,
"retriedStatementsCount" : <NumberLong>,
"transactionsCollectionWriteCount" : <NumberLong>,
"currentActive" : <NumberLong>,
"currentInactive" : <NumberLong>,
"currentOpen" : <NumberLong>,
"totalAborted" : <NumberLong>,
"totalCommitted" : <NumberLong>,
"totalStarted" : <NumberLong>,
"totalPrepared" : <NumberLong>,
"totalPreparedThenCommitted" : <NumberLong>,
"totalPreparedThenAborted" : <NumberLong>,
"currentPrepared" : <NumberLong>,
"lastCommittedTransaction" : <document> // Starting in 4.2.2 (and 4.0.9)
},

New in version 4.2.

"transactions" : {
"currentOpen" : <NumberLong>, // Starting in 4.2.1
"currentActive" : <NumberLong>, // Starting in 4.2.1
"currentInactive" : <NumberLong>, // Starting in 4.2.1
"totalStarted" : <NumberLong>,
"totalCommitted" : <NumberLong>,
"totalAborted" : <NumberLong>,
"abortCause" : {
<String1> : <NumberLong>,
<String2>" : <NumberLong>,
...
},
"totalContactedParticipants" : <NumberLong>,
"totalParticipantsAtCommit" : <NumberLong>,
"totalRequestsTargeted" : <NumberLong>,
"commitTypes" : {
"noShards" : {
"initiated" : <NumberLong>,
"successful" : <NumberLong>,
"successfulDurationMicros" : <NumberLong>,
},
"singleShard" : {
"initiated" : <NumberLong>,
"successful" : <NumberLong>,
"successfulDurationMicros" : <NumberLong>,
},
"singleWriteShard" : {
"initiated" : <NumberLong>,
"successful" : <NumberLong>,
"successfulDurationMicros" : <NumberLong>,
},
"readOnly" : {
"initiated" : <NumberLong>,
"successful" : <NumberLong>,
"successfulDurationMicros" : <NumberLong>,
},
"twoPhaseCommit" : {
"initiated" : <NumberLong>,
"successful" : <NumberLong>,
"successfulDurationMicros" :<NumberLong>,
},
"recoverWithToken" : {
"initiated" : <NumberLong>,
"successful" : <NumberLong>,
"successfulDurationMicros" : <NumberLong>,
}
}
},
transactions

When run on a mongod, a document with data about the retryable writes and transactions.

When run on a mongos, a document with data about the transactions run on the instance.

transactions.retriedCommandsCount

Available on mongod only.

The total number of retry attempts that have been received after the corresponding retryable write command has already been committed. That is, a retryable write is attempted even though the write has previously succeeded and has an associated record for the transaction and session in the config.transactions collection, such as when the initial write response to the client is lost.

Note

MongoDB does not re-execute the committed writes.

The total is across all sessions.

The total does not include any retryable writes that may happen internally as part of a chunk migration.

New in version 3.6.3.

transactions.retriedStatementsCount

Available on mongod only.

The total number of write statements associated with the retried commands in transactions.retriedCommandsCount.

Note

MongoDB does not re-execute the committed writes.

The total does not include any retryable writes that may happen internally as part of a chunk migration.

New in version 3.6.3.

transactions.transactionsCollectionWriteCount

Available on mongod only.

The total number of writes to the config.transactions collection, triggered when a new retryable write statement is committed.

For update and delete commands, since only single document operations are retryable, there is one write per statement.

For insert operations, there is one write per batch of documents inserted, except when a failure leads to each document being inserted separately.

The total includes writes to a server's config.transactions collection that occur as part of a migration.

New in version 3.6.3.

transactions.currentActive

Changed in version 4.2.1: This field is also available on mongos.

The total number of open transactions currently executing a command.

transactions.currentInactive

Changed in version 4.2.1: This field is also available on mongos.

The total number of open transactions that are not currently executing a command.

transactions.currentOpen

Changed in version 4.2.1: This field is also available on mongos.

The total number of open transactions. A transaction is opened when the first command is run as a part of that transaction, and stays open until the transaction either commits or aborts.

transactions.totalAborted

For the mongod, the total number of transactions aborted on this instance since its last startup.

For the mongos, the total number of transactions aborted through this instance since its last startup.

transactions.totalCommitted

For the mongod, the total number of transactions committed on the instance since its last startup.

For the mongos,the total number of transactions committed through this instance since its last startup.

transactions.totalStarted

For the mongod, the total number of transactions started on this instance since its last startup.

For the mongos, the total number of transactions started on this instance since its last startup.

transactions.abortCause

Available on mongos only.

Breakdown of the transactions.totalAborted by cause. If a client issues an explicit abortTransaction, the cause is listed as abort.

For example:

"totalAborted" : NumberLong(5),
"abortCause" : {
"abort" : NumberLong(1),
"DuplicateKey" : NumberLong(1),
"StaleConfig" : NumberLong(3),
"SnapshotTooOld" : NumberLong(1)
},

New in version 4.2.

transactions.totalContactedParticipants

Available on mongos only.

The total number of shards contacted for all transactions started through this mongos since its last startup.

The number of shards contacted during the transaction processes can include those shards that may not be included as part of the commit.

New in version 4.2.

transactions.totalParticipantsAtCommit

Available on mongos only.

Total number of shards involved in the commit for all transactions started through this mongos since its last startup.

New in version 4.2.

transactions.totalRequestsTargeted

Available on mongos only.

Total number of network requests targeted by the mongos as part of its transactions.

New in version 4.2.

transactions.commitTypes

Available on mongos only.

Breakdown of the commits by types. For example:

"noShards" : {
"initiated" : NumberLong(0),
"successful" : NumberLong(0),
"successfulDurationMicros" : NumberLong(0)
},
"singleShard" : {
"initiated" : NumberLong(5),
"successful" : NumberLong(5),
"successfulDurationMicros" : NumberLong(203118)
},
"singleWriteShard" : {
"initiated" : NumberLong(0),
"successful" : NumberLong(0),
"successfulDurationMicros" : NumberLong(0)
},
"readOnly" : {
"initiated" : NumberLong(0),
"successful" : NumberLong(0),
"successfulDurationMicros" : NumberLong(0)
},
"twoPhaseCommit" : {
"initiated" : NumberLong(1),
"successful" : NumberLong(1),
"successfulDurationMicros" : NumberLong(179616)
},
"recoverWithToken" : {
"initiated" : NumberLong(0),
"successful" : NumberLong(0),
"successfulDurationMicros" : NumberLong(0)
}

The types of commit are:

Type
Description
noShards
Commits of transactions that did not contact any shards.
singleShard
Commits of transactions that affected a single shard.
singleWriteShard
Commits of transactions that contacted multiple shards but whose write operations only affected a single shard.
readOnly
Commits of transactions that only involved read operations.
twoPhaseCommit
Commits of transactions that included writes to multiple shards
recoverWithToken
Commits that recovered the outcome of transactions from another instance or after this instance was restarted.

For each commit type, the command returns the following metrics:

Metrics
Description
initiated
Total number of times that commits of this type were initiated.
successful
Total number of times that commits of this type succeeded.
successfulDurationMicros
Total time, in microseconds, taken by successful commits of this type.

New in version 4.2.

transactions.totalPrepared

Available on mongod only.

The total number of transactions in prepared state on this server since the mongod process's last startup.

New in version 4.2.

transactions.totalPreparedThenCommitted

Available on mongod only.

The total number of transactions that were prepared and committed on this server since the mongod process's last startup.

New in version 4.2.

transactions.totalPreparedThenAborted

Available on mongod only.

The total number of transactions that were prepared and aborted on this server since the mongod process's last startup.

New in version 4.2.

transactions.currentPrepared

Available on mongod only.

The current number of transactions in prepared state on this server.

New in version 4.2.

transactions.lastCommittedTransaction

Available on mongod only.

The details of the last transaction committed when the mongod is primary.

When returned from a secondary, lastCommittedTransaction returns the details of the last transaction committed when that secondary was a primary.

"lastCommittedTransaction" : {
"operationCount" : NumberLong(1),
"oplogOperationBytes" : NumberLong(211),
"writeConcern" : {
"w" : "majority",
"wtimeout" : 0
}
}
Metrics
Description
operationCount
The number of write operations in the transaction.
oplogOperationBytes
The size of the corresponding oplog entry or entries for the transaction. [2]
writeConcern
The write concern used for the transaction.

New in version 4.2.2: (Also available in 4.0.9)

[2] Starting in version 4.2, MongoDB creates as many oplog entries as necessary to encapsulate all write operations in a transaction whereas in version 4.0, the write operations in a transaction must fit within a single oplog entry. See Oplog Size Limit for details.
"transportSecurity" : {
"1.0" : <NumberLong>,
"1.1" : <NumberLong>,
"1.2" : <NumberLong>,
"1.3" : <NumberLong>,
"unknown" :<NumberLong>
},
transportSecurity.<version>

The cumulative number of TLS <version> connections that have been made to this mongod or mongos instance. The value is reset upon restart.

wiredTiger information only appears if using the WiredTiger storage engine. Some of the statistics roll up for the server.

{
"uri" : "statistics:",
"async" : {
"current work queue length" : <num>,
"maximum work queue length" : <num>,
"number of allocation state races" : <num>,
"number of flush calls" : <num>,
"number of operation slots viewed for allocation" : <num>,
"number of times operation allocation failed" : <num>,
"number of times worker found no work" : <num>,
"total allocations" : <num>,
"total compact calls" : <num>,
"total insert calls" : <num>,
"total remove calls" : <num>,
"total search calls" : <num>,
"total update calls" : <num>
},
"block-manager" : {
"blocks pre-loaded" : <num>,
"blocks read" : <num>,
"blocks written" : <num>,
"bytes read" : <num>,
"bytes written" : <num>,
"bytes written for checkpoint" : <num>,
"mapped blocks read" : <num>,
"mapped bytes read" : <num>
},
"cache" : {
"application threads page read from disk to cache count" : <num>,
"application threads page read from disk to cache time (usecs)" : <num>,
"application threads page write from cache to disk count" : <num>,
"application threads page write from cache to disk time (usecs)" : <num>,
"bytes belonging to page images in the cache" : <num>,
"bytes belonging to the cache overflow table in the cache" : <num>,
"bytes currently in the cache" : <num>,
"bytes dirty in the cache cumulative" : <num>,
"bytes not belonging to page images in the cache" : <num>,
"bytes read into cache" : <num>,
"bytes written from cache" : <num>,
"cache overflow cursor application thread wait time (usecs)" : <num>,
"cache overflow cursor internal thread wait time (usecs)" : <num>,
"cache overflow score" : <num>,
"cache overflow table entries" : <num>,
"cache overflow table insert calls" : <num>,
"cache overflow table max on-disk size" : <num>,
"cache overflow table on-disk size" : <num>,
"cache overflow table remove calls" : <num>,
"checkpoint blocked page eviction" : <num>,
"eviction calls to get a page" : <num>,
"eviction calls to get a page found queue empty" : <num>,
"eviction calls to get a page found queue empty after locking" : <num>,
"eviction currently operating in aggressive mode" : <num>,
"eviction empty score" : <num>,
"eviction passes of a file" : <num>,
"eviction server candidate queue empty when topping up" : <num>,
"eviction server candidate queue not empty when topping up" : <num>,
"eviction server evicting pages" : <num>,
"eviction server slept, because we did not make progress with eviction" : <num>,
"eviction server unable to reach eviction goal" : <num>,
"eviction server waiting for a leaf page" : <num>,
"eviction server waiting for an internal page sleep (usec)" : <num>,
"eviction server waiting for an internal page yields" : <num>,
"eviction state" : <num>,
"eviction walk target pages histogram - 0-9" : <num>,
"eviction walk target pages histogram - 10-31" : <num>,
"eviction walk target pages histogram - 128 and higher" : <num>,
"eviction walk target pages histogram - 32-63" : <num>,
"eviction walk target pages histogram - 64-128" : <num>,
"eviction walks abandoned" : <num>,
"eviction walks gave up because they restarted their walk twice" : <num>,
"eviction walks gave up because they saw too many pages and found no candidates" : <num>,
"eviction walks gave up because they saw too many pages and found too few candidates" : <num>,
"eviction walks reached end of tree" : <num>,
"eviction walks started from root of tree" : <num>,
"eviction walks started from saved location in tree" : <num>,
"eviction worker thread active" : <num>,
"eviction worker thread created" : <num>,
"eviction worker thread evicting pages" : <num>,
"eviction worker thread removed" : <num>,
"eviction worker thread stable number" : <num>,
"files with active eviction walks" : <num>,
"files with new eviction walks started" : <num>,
"force re-tuning of eviction workers once in a while" : <num>,
"forced eviction - pages evicted that were clean count" : <num>,
"forced eviction - pages evicted that were clean time (usecs)" : <num>,
"forced eviction - pages evicted that were dirty count" : <num>,
"forced eviction - pages evicted that were dirty time (usecs)" : <num>,
"forced eviction - pages selected because of too many deleted items count" : <num>,
"forced eviction - pages selected count" : <num>,
"forced eviction - pages selected unable to be evicted count" : <num>,
"forced eviction - pages selected unable to be evicted time" : <num>,
"hazard pointer blocked page eviction" : <num>,
"hazard pointer check calls" : <num>,
"hazard pointer check entries walked" : <num>,
"hazard pointer maximum array length" : <num>,
"in-memory page passed criteria to be split" : <num>,
"in-memory page splits" : <num>,
"internal pages evicted" : <num>,
"internal pages split during eviction" : <num>,
"leaf pages split during eviction" : <num>,
"maximum bytes configured" : <num>,
"maximum page size at eviction" : <num>,
"modified pages evicted" : <num>,
"modified pages evicted by application threads" : <num>,
"operations timed out waiting for space in cache" : <num>,
"overflow pages read into cache" : <num>,
"page split during eviction deepened the tree" : <num>,
"page written requiring cache overflow records" : <num>,
"pages currently held in the cache" : <num>,
"pages evicted by application threads" : <num>,
"pages queued for eviction" : <num>,
"pages queued for eviction post lru sorting" : <num>,
"pages queued for urgent eviction" : <num>,
"pages queued for urgent eviction during walk" : <num>,
"pages read into cache" : <num>,
"pages read into cache after truncate" : <num>,
"pages read into cache after truncate in prepare state" : <num>,
"pages read into cache requiring cache overflow entries" : <num>,
"pages read into cache requiring cache overflow for checkpoint" : <num>,
"pages read into cache skipping older cache overflow entries" : <num>,
"pages read into cache with skipped cache overflow entries needed later" : <num>,
"pages read into cache with skipped cache overflow entries needed later by checkpoint" : <num>,
"pages requested from the cache" : <num>,
"pages seen by eviction walk" : <num>,
"pages selected for eviction unable to be evicted" : <num>,
"pages walked for eviction" : <num>,
"pages written from cache" : <num>,
"pages written requiring in-memory restoration" : <num>,
"percentage overhead" : <num>,
"tracked bytes belonging to internal pages in the cache" : <num>,
"tracked bytes belonging to leaf pages in the cache" : <num>,
"tracked dirty bytes in the cache" : <num>,
"tracked dirty pages in the cache" : <num>,
"unmodified pages evicted" : <num>
},
"capacity" : {
"background fsync file handles considered" : <num>,
"background fsync file handles synced" : <num>,
"background fsync time (msecs)" : <num>,
"bytes read" : <num>,
"bytes written for checkpoint" : <num>,
"bytes written for eviction" : <num>,
"bytes written for log" : <num>,
"bytes written total" : <num>,
"threshold to call fsync" : <num>,
"time waiting due to total capacity (usecs)" : <num>,
"time waiting during checkpoint (usecs)" : <num>,
"time waiting during eviction (usecs)" : <num>,
"time waiting during logging (usecs)" : <num>,
"time waiting during read (usecs)" : <num>
},
"connection" : {
"auto adjusting condition resets" : <num>,
"auto adjusting condition wait calls" : <num>,
"detected system time went backwards" : <num>,
"files currently open" : <num>,
"memory allocations" : <num>,
"memory frees" : <num>,
"memory re-allocations" : <num>,
"pthread mutex condition wait calls" : <num>,
"pthread mutex shared lock read-lock calls" : <num>,
"pthread mutex shared lock write-lock calls" : <num>,
"total fsync I/Os" : <num>,
"total read I/Os" : <num>,
"total write I/Os" : <num>
},
"cursor" : {
"cached cursor count" : <num>,
"cursor bulk loaded cursor insert calls" : <num>,
"cursor close calls that result in cache" : <num>,
"cursor create calls" : <num>,
"cursor insert calls" : <num>,
"cursor insert key and value bytes" : <num>,
"cursor modify calls" : <num>,
"cursor modify key and value bytes affected" : <num>,
"cursor modify value bytes modified" : <num>,
"cursor next calls" : <num>,
"cursor operation restarted" : <num>,
"cursor prev calls" : <num>,
"cursor remove calls" : <num>,
"cursor remove key bytes removed" : <num>,
"cursor reserve calls" : <num>,
"cursor reset calls" : <num>,
"cursor search calls" : <num>,
"cursor search near calls" : <num>,
"cursor sweep buckets" : <num>,
"cursor sweep cursors closed" : <num>,
"cursor sweep cursors examined" : <num>,
"cursor sweeps" : <num>,
"cursor truncate calls" : <num>,
"cursor update calls" : <num>,
"cursor update key and value bytes" : <num>,
"cursor update value size change" : <num>,
"cursors reused from cache" : <num>,
"open cursor count" : <num>
},
"data-handle" : {
"connection data handle size" : <num>,
"connection data handles currently active" : <num>,
"connection sweep candidate became referenced" : <num>,
"connection sweep dhandles closed" : <num>,
"connection sweep dhandles removed from hash list" : <num>,
"connection sweep time-of-death sets" : <num>,
"connection sweeps" : <num>,
"session dhandles swept" : <num>,
"session sweep attempts" : <num>
},
"lock" : {
"checkpoint lock acquisitions" : <num>,
"checkpoint lock application thread wait time (usecs)" : <num>,
"checkpoint lock internal thread wait time (usecs)" : <num>,
"dhandle lock application thread time waiting (usecs)" : <num>,
"dhandle lock internal thread time waiting (usecs)" : <num>,
"dhandle read lock acquisitions" : <num>,
"dhandle write lock acquisitions" : <num>,
"durable timestamp queue lock application thread time waiting (usecs)" : <num>,
"durable timestamp queue lock internal thread time waiting (usecs)" : <num>,
"durable timestamp queue read lock acquisitions" : <num>,
"durable timestamp queue write lock acquisitions" : <num>,
"metadata lock acquisitions" : <num>,
"metadata lock application thread wait time (usecs)" : <num>,
"metadata lock internal thread wait time (usecs)" : <num>,
"read timestamp queue lock application thread time waiting (usecs)" : <num>,
"read timestamp queue lock internal thread time waiting (usecs)" : <num>,
"read timestamp queue read lock acquisitions" : <num>,
"read timestamp queue write lock acquisitions" : <num>,
"schema lock acquisitions" : <num>,
"schema lock application thread wait time (usecs)" : <num>,
"schema lock internal thread wait time (usecs)" : <num>,
"table lock application thread time waiting for the table lock (usecs)" : <num>,
"table lock internal thread time waiting for the table lock (usecs)" : <num>,
"table read lock acquisitions" : <num>,
"table write lock acquisitions" : <num>,
"txn global lock application thread time waiting (usecs)" : <num>,
"txn global lock internal thread time waiting (usecs)" : <num>,
"txn global read lock acquisitions" : <num>,
"txn global write lock acquisitions" : <num>
},
"log" : {
"busy returns attempting to switch slots" : <num>,
"force archive time sleeping (usecs)" : <num>,
"log bytes of payload data" : <num>,
"log bytes written" : <num>,
"log files manually zero-filled" : <num>,
"log flush operations" : <num>,
"log force write operations" : <num>,
"log force write operations skipped" : <num>,
"log records compressed" : <num>,
"log records not compressed" : <num>,
"log records too small to compress" : <num>,
"log release advances write LSN" : <num>,
"log scan operations" : <num>,
"log scan records requiring two reads" : <num>,
"log server thread advances write LSN" : <num>,
"log server thread write LSN walk skipped" : <num>,
"log sync operations" : <num>,
"log sync time duration (usecs)" : <num>,
"log sync_dir operations" : <num>,
"log sync_dir time duration (usecs)" : <num>,
"log write operations" : <num>,
"logging bytes consolidated" : <num>,
"maximum log file size" : <num>,
"number of pre-allocated log files to create" : <num>,
"pre-allocated log files not ready and missed" : <num>,
"pre-allocated log files prepared" : <num>,
"pre-allocated log files used" : <num>,
"records processed by log scan" : <num>,
"slot close lost race" : <num>,
"slot close unbuffered waits" : <num>,
"slot closures" : <num>,
"slot join atomic update races" : <num>,
"slot join calls atomic updates raced" : <num>,
"slot join calls did not yield" : <num>,
"slot join calls found active slot closed" : <num>,
"slot join calls slept" : <num>,
"slot join calls yielded" : <num>,
"slot join found active slot closed" : <num>,
"slot joins yield time (usecs)" : <num>,
"slot transitions unable to find free slot" : <num>,
"slot unbuffered writes" : <num>,
"total in-memory size of compressed records" : <num>,
"total log buffer size" : <num>,
"total size of compressed records" : <num>,
"written slots coalesced" : <num>,
"yields waiting for previous log file close" : <num>
},
"perf" : {
"file system read latency histogram (bucket 1) - 10-49ms" : <num>,
"file system read latency histogram (bucket 2) - 50-99ms" : <num>,
"file system read latency histogram (bucket 3) - 100-249ms" : <num>,
"file system read latency histogram (bucket 4) - 250-499ms" : <num>,
"file system read latency histogram (bucket 5) - 500-999ms" : <num>,
"file system read latency histogram (bucket 6) - 1000ms+" : <num>,
"file system write latency histogram (bucket 1) - 10-49ms" : <num>,
"file system write latency histogram (bucket 2) - 50-99ms" : <num>,
"file system write latency histogram (bucket 3) - 100-249ms" : <num>,
"file system write latency histogram (bucket 4) - 250-499ms" : <num>,
"file system write latency histogram (bucket 5) - 500-999ms" : <num>,
"file system write latency histogram (bucket 6) - 1000ms+" : <num>,
"operation read latency histogram (bucket 1) - 100-249us" : <num>,
"operation read latency histogram (bucket 2) - 250-499us" : <num>,
"operation read latency histogram (bucket 3) - 500-999us" : <num>,
"operation read latency histogram (bucket 4) - 1000-9999us" : <num>,
"operation read latency histogram (bucket 5) - 10000us+" : <num>,
"operation write latency histogram (bucket 1) - 100-249us" : <num>,
"operation write latency histogram (bucket 2) - 250-499us" : <num>,
"operation write latency histogram (bucket 3) - 500-999us" : <num>,
"operation write latency histogram (bucket 4) - 1000-9999us" : <num>,
"operation write latency histogram (bucket 5) - 10000us+" : <num>
},
"reconciliation" : {
"fast-path pages deleted" : <num>,
"page reconciliation calls" : <num>,
"page reconciliation calls for eviction" : <num>,
"pages deleted" : <num>,
"split bytes currently awaiting free" : <num>,
"split objects currently awaiting free" : <num>
},
"session" : {
"open session count" : <num>,
"session query timestamp calls" : <num>,
"table alter failed calls" : <num>,
"table alter successful calls" : <num>,
"table alter unchanged and skipped" : <num>,
"table compact failed calls" : <num>,
"table compact successful calls" : <num>,
"table create failed calls" : <num>,
"table create successful calls" : <num>,
"table drop failed calls" : <num>,
"table drop successful calls" : <num>,
"table import failed calls" : <num>,
"table import successful calls" : <num>,
"table rebalance failed calls" : <num>,
"table rebalance successful calls" : <num>,
"table rename failed calls" : <num>,
"table rename successful calls" : <num>,
"table salvage failed calls" : <num>,
"table salvage successful calls" : <num>,
"table truncate failed calls" : <num>,
"table truncate successful calls" : <num>,
"table verify failed calls" : <num>,
"table verify successful calls" : <num>
},
"thread-state" : {
"active filesystem fsync calls" : <num>,
"active filesystem read calls" : <num>,
"active filesystem write calls" : <num>
},
"thread-yield" : {
"application thread time evicting (usecs)" : <num>,
"application thread time waiting for cache (usecs)" : <num>,
"connection close blocked waiting for transaction state stabilization" : <num>,
"connection close yielded for lsm manager shutdown" : <num>,
"data handle lock yielded" : <num>,
"get reference for page index and slot time sleeping (usecs)" : <num>,
"log server sync yielded for log write" : <num>,
"page access yielded due to prepare state change" : <num>,
"page acquire busy blocked" : <num>,
"page acquire eviction blocked" : <num>,
"page acquire locked blocked" : <num>,
"page acquire read blocked" : <num>,
"page acquire time sleeping (usecs)" : <num>,
"page delete rollback time sleeping for state change (usecs)" : <num>,
"page reconciliation yielded due to child modification" : <num>
},
"transaction" : {
"Number of prepared updates" : <num>,
"Number of prepared updates added to cache overflow" : <num>,
"Number of prepared updates resolved" : <num>,
"durable timestamp queue entries walked" : <num>,
"durable timestamp queue insert to empty" : <num>,
"durable timestamp queue inserts to head" : <num>,
"durable timestamp queue inserts total" : <num>,
"durable timestamp queue length" : <num>,
"number of named snapshots created" : <num>,
"number of named snapshots dropped" : <num>,
"prepared transactions" : <num>,
"prepared transactions committed" : <num>,
"prepared transactions currently active" : <num>,
"prepared transactions rolled back" : <num>,
"query timestamp calls" : <num>,
"read timestamp queue entries walked" : <num>,
"read timestamp queue insert to empty" : <num>,
"read timestamp queue inserts to head" : <num>,
"read timestamp queue inserts total" : <num>,
"read timestamp queue length" : <num>,
"rollback to stable calls" : <num>,
"rollback to stable updates aborted" : <num>,
"rollback to stable updates removed from cache overflow" : <num>,
"set timestamp calls" : <num>,
"set timestamp durable calls" : <num>,
"set timestamp durable updates" : <num>,
"set timestamp oldest calls" : <num>,
"set timestamp oldest updates" : <num>,
"set timestamp stable calls" : <num>,
"set timestamp stable updates" : <num>,
"transaction begins" : <num>,
"transaction checkpoint currently running" : <num>,
"transaction checkpoint generation" : <num>,
"transaction checkpoint max time (msecs)" : <num>,
"transaction checkpoint min time (msecs)" : <num>,
"transaction checkpoint most recent time (msecs)" : <num>,
"transaction checkpoint scrub dirty target" : <num>,
"transaction checkpoint scrub time (msecs)" : <num>,
"transaction checkpoint total time (msecs)" : <num>,
"transaction checkpoints" : <num>,
"transaction checkpoints skipped because database was clean" : <num>,
"transaction failures due to cache overflow" : <num>,
"transaction fsync calls for checkpoint after allocating the transaction ID" : <num>,
"transaction fsync duration for checkpoint after allocating the transaction ID (usecs)" : <num>,
"transaction range of IDs currently pinned" : <num>,
"transaction range of IDs currently pinned by a checkpoint" : <num>,
"transaction range of IDs currently pinned by named snapshots" : <num>,
"transaction range of timestamps currently pinned" : <num>,
"transaction range of timestamps pinned by a checkpoint" : <num>,
"transaction range of timestamps pinned by the oldest active read timestamp" : <num>,
"transaction range of timestamps pinned by the oldest timestamp" : <num>,
"transaction read timestamp of the oldest active reader" : <num>,
"transaction sync calls" : <num>,
"transactions committed" : <num>,
"transactions rolled back" : <num>,
"update conflicts" : <num>
},
"concurrentTransactions" : {
"write" : {
"out" : <num>,
"available" : <num>,
"totalTickets" : <num>
},
"read" : {
"out" : <num>,
"available" : <num>,
"totalTickets" : <num>
}
},
"snapshot-window-settings" : {
"cache pressure percentage threshold" : <num>,
"current cache pressure percentage" : <num>,
"total number of SnapshotTooOld errors" : <num>,
"max target available snapshots window size in seconds" : <num>,
"target available snapshots window size in seconds" : <num>,
"current available snapshots window size in seconds" : <num>,
"latest majority snapshot timestamp available" : <string>,
"oldest majority snapshot timestamp available" : <string>
}
}

Note

The following is not an exhaustive list.

wiredTiger.uri

A string. For internal use by MongoDB.

wiredTiger.async

A document that returns statistics related to the asynchronous operations API. This is unused by MongoDB.

wiredTiger.block-manager

A document that returns statistics on the block manager operations.

wiredTiger.cache

A document that returns statistics on the cache and page evictions from the cache.

The following describes some of the key wiredTiger.cache statistics:

wiredTiger.cache.maximum bytes configured

Maximum cache size.

wiredTiger.cache.bytes currently in the cache

Size in byte of the data currently in cache. This value should not be greater than the maximum bytes configured value.

wiredTiger.cache.unmodified pages evicted

Main statistics for page eviction.

wiredTiger.cache.tracked dirty bytes in the cache

Size in bytes of the dirty data in the cache. This value should be less than the bytes currently in the cache value.

wiredTiger.cache.pages read into cache

Number of pages read into the cache. wiredTiger.cache.pages read into cache with the wiredTiger.cache.pages written from cache can provide an overview of the I/O activity.

wiredTiger.cache.pages written from cache

Number of pages written from the cache. wiredTiger.cache.pages written from cache with the wiredTiger.cache.pages read into cache can provide an overview of the I/O activity.

To adjust the size of the WiredTiger internal cache, see storage.wiredTiger.engineConfig.cacheSizeGB and --wiredTigerCacheSizeGB. Avoid increasing the WiredTiger internal cache size above its default value.

wiredTiger.connection

A document that returns statistics related to WiredTiger connections.

wiredTiger.cursor

A document that returns statistics on WiredTiger cursor.

wiredTiger.data-handle

A document that returns statistics on the data handles and sweeps.

wiredTiger.log

A document that returns statistics on WiredTiger's write ahead log (i.e. the journal).

wiredTiger.reconciliation

A document that returns statistics on the reconciliation process.

wiredTiger.session

A document that returns the open cursor count and open session count for the session.

wiredTiger.thread-yield

A document that returns statistics on yields during page acquisitions.

wiredTiger.transaction

A document that returns statistics on transaction checkpoints and operations.

wiredTiger.transaction.transaction checkpoint most recent time (msecs)

Amount of time, in milliseconds, to create the most recent checkpoint. An increase in this value under stead write load may indicate saturation on the I/O subsystem.

wiredTiger.concurrentTransactions

A document that returns information on the number of concurrent of read and write transactions allowed into the WiredTiger storage engine. These settings are MongoDB-specific.

To change the settings for concurrent reads and write transactions, see wiredTigerConcurrentReadTransactions and wiredTigerConcurrentWriteTransactions.

"writeBacksQueued" : <boolean>,
writeBacksQueued

A boolean that indicates whether there are operations from a mongos instance queued for retrying. Typically, this value is false. See also writeBacks.

"mem" : {
"bits" : <int>,
"resident" : <int>,
"virtual" : <int>,
"supported" : <boolean>
},
mem

A document that reports on the system architecture of the mongod and current memory use.

mem.bits

A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture.

mem.resident

The value of mem.resident is roughly equivalent to the amount of RAM, in mebibyte (MiB), currently used by the database process. During normal use, this value tends to grow. In dedicated database servers, this number tends to approach the total amount of system memory.

mem.virtual

mem.virtual displays the quantity, in mebibyte (MiB), of virtual memory used by the mongod process.

mem.supported

A boolean that indicates whether the underlying system supports extended memory information. If this value is false and the system does not support extended memory information, then other mem values may not be accessible to the database server.

mem.note

The field mem.note appears if mem.supported is false.

The mem.note field contains the text: "not all mem info support on this platform".

"metrics" : {
"aggStageCounters" : {
"<aggregation stage>" : <num>
}
},
"commands": {
"<command>": {
"failed": <num>,
"total": <num>
}
},
"cursor" : {
"timedOut" : NumberLong(<num>),
"open" : {
"noTimeout" : NumberLong(<num>),
"pinned" : NumberLong(<num>),
"multiTarget" : NumberLong(<num>),
"singleTarget" : NumberLong(<num>),
"total" : NumberLong(<num>),
}
},
"document" : {
"deleted" : NumberLong(<num>),
"inserted" : NumberLong(<num>),
"returned" : NumberLong(<num>),
"updated" : NumberLong(<num>)
},
"getLastError" : {
"wtime" : {
"num" : <num>,
"totalMillis" : <num>
},
"wtimeouts" : NumberLong(<num>),
"default" : {
"unsatisfiable" : <num>
"wtimeouts" : <num>
}
},
"operation" : {
"scanAndOrder" : NumberLong(<num>),
"writeConflicts" : NumberLong(<num>)
},
"operatorCounters" : {
"match" : {
"<command>" : Long(<num>)
}
},
"queryExecutor": {
"scanned" : NumberLong(<num>),
"scannedObjects" : NumberLong(<num>),
"collectionScans" : {
"nonTailable" : NumbeLong(<num>),
"total" : NumberLong(<num>)
}
},
"record" : {
"moves" : NumberLong(<num>)
},
"repl" : {
"executor" : {
"pool" : {
"inProgressCount" : <num>
},
"queues" : {
"networkInProgress" : <num>,
"sleepers" : <num>
},
"unsignaledEvents" : <num>,
"shuttingDown" : <boolean>,
"networkInterface" : <string>
},
"apply" : {
"attemptsToBecomeSecondary" : <NumberLong>,
"batches" : {
"num" : <num>,
"totalMillis" : <num>
},
"ops" : <NumberLong>
},
"buffer" : {
"count" : <NumberLong>,
"maxSizeBytes" : <NumberLong>,
"sizeBytes" : <NumberLong>
},
"initialSync" : {
"completed" : <NumberLong>,
"failedAttempts" : <NumberLong>,
"failures" : <NumberLong>,
},
"network" : {
"bytes" : <NumberLong>,
"getmores" : {
"num" : <num>,
"totalMillis" : <num>
},
"notPrimaryUnacknowledgedWrites" : <NumberLong>,
"notPrimaryLegacyUnacknowledgedWrites" : <NumberLong>,
"oplogGetMoresProcessed" : {
"num" : <NumberLong>,
"totalMillis" : <NumberLong>
},
"ops" : <NumberLong>,
"readersCreated" : <NumberLong>,
"replSetUpdatePosition" : {
"num" : <NumberLong>
}
},
"stateTransition" : {
"lastStateTransition" : <string>,
"userOperationsKilled" : <NumberLong>,
"userOperationsRunning" : <NumberLong>
},
"syncSource" : {
"numSelections" : <NumberLong>,
"numTimesChoseSame" : <NumberLong>,
"numTimesChoseDifferent" : <NumberLong>,
"numTimesCouldNotFind" : <NumberLong>
}
},
"storage" : {
"freelist" : {
"search" : {
"bucketExhausted" : <num>,
"requests" : <num>,
"scanned" : <num>
}
}
},
"ttl" : {
"deletedDocuments" : NumberLong(<num>),
"passes" : NumberLong(<num>)
}
},
metrics

A document that returns various statistics that reflect the current use and state of a running mongod instance.

metrics.aggStageCounters

A document that reports on the use of aggregation pipeline stages. The fields in metrics.aggStageCounters are the names of aggregation pipeline stages. For each pipeline stage, serverStatus reports the number of times that stage has been executed.

New in version 4.4 (4.2.6 and 4.0.19).

metrics.operatorCounters.expressions

A document that reports on the use of aggregation pipeline operators and expressions.

metrics.operatorCounters.expressions

A document with a number that indicates how often Expression Operators ran.

To get metrics for a specific operator, such as the greater-than operator ($gt), append the operator to the command:

db.runCommand( { serverStatus: 1 } ).metrics.operatorCounters.expressions.$gt

Updated in version 4.4.13

metrics.operatorCounters.match

A document with a number that indicates how often match expressions ran.

Match expression operators also increment as part of an aggregation pipeline $match stage. If the $match stage uses the $expr operator, the counter for $expr increments, but the component counters do not increment.

Consider the following query:

db.matchCount.aggregate(
[
{ $match:
{ $expr: { $gt: [ "$_id", 0 ] } }
}
]
)

The counter for $expr increments when the query runs. The counter for $gt does not.

New in version 4.4.11.

metrics.commands

A document that reports on the use of database commands. The fields in metrics.commands are the names of database commands. For each command, the serverStatus reports the total number of executions and the number of failed executions.

Starting in MongoDB 4.0.13 and 4.2.1, metrics.commands include replSetStepDownWithForce (i.e. the replSetStepDown command with force: true) as well as the overall replSetStepDown. In earlier versions, the command reported only overall replSetStepDown metrics.

metrics.commands.<command>.failed

The number of times <command> failed on this mongod.

metrics.commands.<command>.total

The number of times <command> executed on this mongod.

metrics.commands.update.pipeline

The number of times an aggregation pipeline was used to update documents on this mongod. Subtract this value from the total number of updates to get the number of updates made with document syntax.

The pipeline counter is only available for update and findAndModify operations.

metrics.commands.findAndModify.pipeline

The number of times findAndModify() was used in an aggregation pipeline to update documents on this mongod.

The pipeline counter is only available for update and findAndModify operations.

metrics.commands.update.arrayFilters

The number of times an arrayFilter was used to update documents on this mongod.

The arrayFilters counter is only available for update and findAndModify operations.

metrics.commands.findAndModify.arrayFilters

The number of times an arrayFilter was used with findAndModify() to update documents on this mongod.

The arrayFilters counter is only available for update and findAndModify operations.

metrics.document

A document that reflects document access and modification patterns. Compare these values to the data in the opcounters document, which track total number of operations.

metrics.document.deleted

The total number of documents deleted.

metrics.document.inserted

The total number of documents inserted.

metrics.document.returned

The total number of documents returned by queries.

metrics.document.updated

The total number of documents matched for update operations. This value is not necessarily the same as the number of documents modified by updates.

metrics.executor

New in version 3.2.

A document that reports on various statistics for the replication executor.

metrics.getLastError

A document that reports on getLastError use.

metrics.getLastError.wtime

A document that reports getLastError operation counts with a w argument greater than 1.

metrics.getLastError.wtime.num

The total number of getLastError operations with a specified write concern (i.e. w) that wait for one or more members of a replica set to acknowledge the write operation (i.e. a w value greater than 1.)

metrics.getLastError.wtime.totalMillis

The total amount of time in milliseconds that the mongod has spent performing getLastError operations with write concern (i.e. w) that wait for one or more members of a replica set to acknowledge the write operation (i.e. a w value greater than 1.)

metrics.getLastError.wtimeouts

The number of times that write concern operations have timed out as a result of the wtimeout threshold to getLastError. This number increments for both default and non-default write concern specifications.

metrics.getLastError.default

A document that reports on the use of getLastError specific to operations where a default write concern was used (meaning, a non-clientSupplied write concern). The possible origins of a default write concern are:

  • implicitDefault

  • customDefault

  • getLastErrorDefaults

Refer to the following table for information on each possible write concern origin, or provenance:

Provenance
Description
clientSupplied
The write concern was specified in the application.
customDefault
The write concern originated from a custom defined default value. See setDefaultRWConcern.
getLastErrorDefaults
The write concern originated from the replica set's settings.getLastErrorDefaults field.
implicitDefault
The write concern originated from the server in absence of all other write concern specifications.
metrics.getLastError.default.unsatisfiable

Number of times that a non-clientSupplied write concern returned the UnsatisfiableWriteConcern error code.

metrics.getLastError.default.wtimeouts

Number of times a non-clientSupplied write concern timed out.

metrics.operation

A document that holds counters for several types of update and query operations that MongoDB handles using special operation types.

metrics.operation.scanAndOrder

The total number of queries that return sorted numbers that cannot perform the sort operation using an index.

metrics.operation.writeConflicts

The total number of queries that encountered write conflicts.

metrics.queryExecutor

A document that reports data from the query execution system.

metrics.queryExecutor.scanned

The total number of index items scanned during queries and query-plan evaluation. This counter is the same as totalKeysExamined in the output of explain().

metrics.queryExecutor.scannedObjects

The total number of documents scanned during queries and query-plan evaluation. This counter is the same as totalDocsExamined in the output of explain().

metrics.queryExecutor.collectionScans

A document that reports on the number of queries that performed a collection scan.

New in version 4.4.

metrics.queryExecutor.collectionScans.nonTailable

The number of queries that performed a collection scan that did not use a tailable cursor.

New in version 4.4.

metrics.queryExecutor.collectionScans.total

The total number queries that performed a collection scan. The total consists of queries that did and did not use a tailable cursor.

New in version 4.4.

metrics.record

A document that reports on data related to record allocation in the on-disk memory files.

metrics.repl

A document that reports metrics related to the replication process. metrics.repl document appears on all mongod instances, even those that aren't members of replica sets.

metrics.repl.apply

A document that reports on the application of operations from the replication oplog.

metrics.repl.apply.batchSize

New in version 4.0.6: (Also available in 3.6.11+)

The total number of oplog operations applied. The metrics.repl.apply.batchSize is incremented with the number of operations in a batch at the batch boundaries instead of being incremented by one after each operation.

For finer granularity, see metrics.repl.apply.ops.

metrics.repl.apply.batches

metrics.repl.apply.batches reports on the oplog application process on secondaries members of replica sets. See Multithreaded Replication for more information on the oplog application processes

metrics.repl.apply.batches.num

The total number of batches applied across all databases.

metrics.repl.apply.batches.totalMillis

The total amount of time in milliseconds the mongod has spent applying operations from the oplog.

metrics.repl.apply.ops

The total number of oplog operations applied. metrics.repl.apply.ops is incremented after each operation.

metrics.repl.buffer

MongoDB buffers oplog operations from the replication sync source buffer before applying oplog entries in a batch. metrics.repl.buffer provides a way to track the oplog buffer. See Multithreaded Replication for more information on the oplog application process.

metrics.repl.buffer.count

The current number of operations in the oplog buffer.

metrics.repl.buffer.maxSizeBytes

The maximum size of the buffer. This value is a constant setting in the mongod, and is not configurable.

metrics.repl.buffer.sizeBytes

The current size of the contents of the oplog buffer.

metrics.repl.network

metrics.repl.network reports network use by the replication process.

metrics.repl.network.bytes

metrics.repl.network.bytes reports the total amount of data read from the replication sync source.

metrics.repl.network.getmores

metrics.repl.network.getmores reports on the getmore operations, which are requests for additional results from the oplog cursor as part of the oplog replication process.

metrics.repl.network.getmores.num

metrics.repl.network.getmores.num reports the total number of getmore operations, which are operations that request an additional set of operations from the replication sync source.

metrics.repl.network.getmores.totalMillis

metrics.repl.network.getmores.totalMillis reports the total amount of time required to collect data from getmore operations.

Note

This number can be quite large, as MongoDB will wait for more data even if the getmore operation does not initial return data.

metrics.repl.network.getmores.numEmptyBatches

The number of empty oplog batches a secondary receives from its sync source. A secondary receives an empty batch if it is fully synced with its source and either:

  • The getmore times out waiting for more data, or

  • The sync source's majority commit point has advanced since the last batch sent to this secondary.

For a primary, if the instance was previously a secondary, the number reports on the empty batches received when it was a secondary. Otherwise, for a primary, this number is 0.

New in version 4.4.

metrics.repl.network.notPrimaryLegacyUnacknowledgedWrites

The number of unacknowledged (w: 0) legacy write operations (see Request Opcodes) that failed because the current mongod is not in PRIMARY state.

This field name was changed in MongoDB 4.4.3. Previously, this field was named notMasterLegacyUnacknowledgedWrites.

New in version 4.2.

metrics.repl.network.notPrimaryUnacknowledgedWrites

The number of unacknowledged (w: 0) write operations that failed because the current mongod is not in PRIMARY state.

This field name was changed in MongoDB 4.4.3. Previously, this field was named notMasterUnacknowledgedWrites.

New in version 4.2.

metrics.repl.network.oplogGetMoresProcessed

A document that reports the number of getMore commands to fetch the oplog that a node processed as a sync source.

New in version 4.4.

metrics.repl.network.oplogGetMoresProcessed.num

The number of getMore commands to fetch the oplog that a node processed as a sync source.

New in version 4.4.

metrics.repl.network.oplogGetMoresProcessed.totalMillis

The time, in milliseconds, that a node spent processing the getMore commands counted in metrics.repl.network.oplogGetMoresProcessed.num.

New in version 4.4.

metrics.repl.network.ops

The total number of operations read from the replication source.

metrics.repl.network.readersCreated

The total number of oplog query processes created. MongoDB will create a new oplog query any time an error occurs in the connection, including a timeout, or a network operation. Furthermore, metrics.repl.network.readersCreated will increment every time MongoDB selects a new source for replication.

metrics.repl.network.replSetUpdatePosition

A document that reports the number of replSetUpdatePosition commands a node sent to its sync source.

New in version 4.4.

metrics.repl.network.replSetUpdatePosition.num

The number of replSetUpdatePosition commands a node sent to its sync source. replSetUpdatePosition commands are internal replication commands that communicate replication progress from nodes to their sync sources.

New in version 4.4.

Note

Replica set members in the STARTUP2 state do not send the replSetUpdatePosition command to their sync source.

metrics.repl.stateTransition

Information on user operations when the member undergoes one of the following transitions that can stop user operations:

  • The member steps up to become a primary.

  • The member is actively performing a rollback.

metrics.repl.stateTransition.lastStateTransition

The transition being reported:

State Change
Description
"stepUp"
The member steps up to become a primary.
"stepDown"
The member steps down to become a secondary.
"rollback"
The member is actively performing a rollback.
""
The member has not undergone any state changes.
metrics.repl.stateTransition.userOperationsKilled

The number of user operations stopped during the mongod instance's state change.

metrics.repl.stateTransition.userOperationsRunning

The number of user operations that remained running during the mongod instance's state change.

metrics.repl.syncSource

Information on a replica set node's sync source selection process.

New in version 4.4.

metrics.repl.syncSource.numSelections

Number of times a node attempted to choose a node to sync from among the available sync source options. A node attempts to choose a node to sync from if, for example, the sync source is re-evaluated or the node receives an error from its current sync source.

New in version 4.4.

metrics.repl.syncSource.numTimesChoseSame

Number of times a node kept its original sync source after re-evaluating if its current sync source was optimal.

New in version 4.4.

metrics.repl.syncSource.numTimesChoseDifferent

Number of times a node chose a new sync source after re-evaluating if its current sync source was optimal.

New in version 4.4.

metrics.repl.syncSource.numTimesCouldNotFind

Number of times a node could not find an available sync source when attempting to choose a node to sync from.

New in version 4.4.

metrics.storage.freelist.search.bucketExhausted

The number of times that mongod has checked the free list without finding a suitably large record allocation.

metrics.storage.freelist.search.requests

The number of times mongod has searched for available record allocations.

metrics.storage.freelist.search.scanned

The number of available record allocations mongod has searched.

metrics.ttl

A document that reports on the operation of the resource use of the ttl index process.

metrics.ttl.deletedDocuments

The total number of documents deleted from collections with a ttl index.

metrics.ttl.passes

The number of times the background process removes documents from collections with a ttl index.

metrics.cursor

A document that contains data regarding cursor state and use.

metrics.cursor.timedOut

The total number of cursors that have timed out since the server process started. If this number is large or growing at a regular rate, this may indicate an application error.

metrics.cursor.open

A document that contains data regarding open cursors.

metrics.cursor.open.noTimeout

The number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity.

metrics.cursor.open.pinned

The number of "pinned" open cursors.

metrics.cursor.open.total

The number of cursors that MongoDB is maintaining for clients. Because MongoDB exhausts unused cursors, typically this value small or zero. However, if there is a queue, stale tailable cursors, or a large number of operations this value may rise.

metrics.cursor.open.singleTarget

The total number of cursors that only target a single shard. Only mongos instances report metrics.cursor.open.singleTarget values.

metrics.cursor.open.multiTarget

The total number of cursors that only target more than one shard. Only mongos instances report metrics.cursor.open.multiTarget values.

New in version 3.6.

"watchdog" : {
"checkGeneration" : NumberLong(<num>),
"monitorGeneration" : NumberLong(<num>),
"monitorPeriod" : <num>
}

Note

The watchdog section is only present if the Storage Node Watchdog is enabled.

watchdog

A document reporting the status of the Storage Node Watchdog.

watchdog.checkGeneration

The number of times the directories have been checked since startup. Directories are checked multiple times every monitoringPeriod.

watchdog.monitorGeneration

The number of times the status of all filesystems used by mongod has been checked. This is incremented once every monitoringPeriod.

watchdog.monitorPeriod

The value set by watchdogPeriodSeconds. This represents the period in between status checks.

Back

profile