MongoDB monitoring integration

New Relic Infrastructure's MongoDB integration reports data from your MongoDB cluster to New Relic Infrastructure. This document explains how to install and configure the MongoDB integration and describes the data collected.

Access to this feature depends on your subscription level. Requires Infrastructure Pro.

Features

The New Relic MongoDB on-host integration collects and sends inventory and metrics from your MongoDB cluster to the New Relic platform, where you can aggregate and visualize key performance metrics. Data is collected on mongos, mongods, and config servers, as well as on databases and collections to help pinpoint performance bottlenecks.

Compatibility and requirements

To use the MongoDB integration, ensure your system meets these requirements:

MongoDB users and privileges

In the MongoDB shell, execute the following commands to create a listCollections role and a new user, then assign clusterMonitor and listCollections roles to the new user. Note: username, password, and similar user-specific values must be replaced.

See the MongoDB documentation for details on creating users and roles.

Complete these steps on the mongos to be monitored. If mongod-level metrics are to be collected, such as host or replica set statistics, create the role and user on each mongod as well.

  1. In the MongoDB shell, enter use admin
  2. Use the following command to create the listCollections role.
    db.createRole({
        role: "listCollections",
        privileges: [{
            resource: {db:"",collection:""},
            actions: ["listCollections"]
        }],
        roles: []
    })
    
  3. Use the following commands to create a new user, and assign clusterMonitor and listCollections roles to the user.
    db.createUser({
        user: "username",
        pwd: "password",
        roles: [
            "clusterMonitor",
            "listCollections"
        ]
    })
    

Install

On-host integrations do not automatically update. For best results, you should occasionally update the integration and update the Infrastructure agent.

To install the MongoDB integration:

  1. Follow the instructions for installing an integration, using the file name nri-mongodb.
  2. Via the command line, change directory to the integrations folder:
    cd /etc/newrelic-infra/integrations.d
  3. Create a copy of the sample configuration file by running:
    sudo cp mongodb-config.yml.sample mongodb-config.yml
  4. Edit the mongodb-config.yml configuration file using the configuration settings.
  5. Restart the infrastructure agent.

Configure

Use the MongoDB integration's mongodb-config.yml configuration file to put required login credentials and configure how data is collected. For an example configuration, see the example config file.

Commands

The mongodb-config.yml file provides three commands:

  • all: captures inventory and metrics for each node in the Mongo cluster.
  • inventory: captures only the inventory for each node in the cluster.
  • metrics: captures only the metrics for each node in the cluster.

Arguments

The all, inventory, and metrics commands accept the following arguments:

  • username: The username for the MongoDB connection. Note: this should be the user entered above.

  • password: The password for the MongoDB connection. Note: this should be the password entered above.

  • authSource: The database to authenticate against. Default: admin.

  • host: The hostname on which a mongos is running. Default: localhost.

  • port: The port on which a mongos is running. Default: 27017.

  • ssl: Indicates whether SSL is enabled. Default: false.

  • ssl_ca_certs: Path to a Certificate Authority (CA) file, if SSL is enabled.

  • ssl_insecure_skip_verify: Skip verification of the certificate sent by the host. This can make a connection susceptible to man-in-the-middle attacks and should only be used for testing. Default: false.

  • filters: A JSON map of database names to an array of collection names. If empty, defaults to all databases and collections. If the list of collections is null, collects all collections for the database. Example: {"db1":null,"db2":["collection1","collection2"],"db3":[]}.

Example mongodb-config.yml file configuration:

Example configuration
integration_name: com.newrelic.mongodb

instances:
  - name: all
# Available commands are "all", "metrics", and "inventory"
    command: all
    arguments:
    # The mongos to connect to.
      host: my-mongos.company.localnet
    # The port the mongos is running on.
      port: 27017
    # The username of the user created to monitor the cluster.
    # This user should exist on the cluster as a whole as well
    # as on each of the individual mongods.
      username: monitor
    # The password for the monitoring user.
      password: password
    # The database on which the monitoring user is stored.
      auth_source: admin
    # Connect using SSL.
      ssl: true
    # Skip verification of the certificate sent by the host.
    # This can make the connection susceptible to man-in-the-middle attacks, 
    # and should only be used for testing.
      ssl_insecure_skip_verify: true
    # Path to the CA certs file.
      ssl_ca_certs: /sample/path/to/ca_certs
    # A JSON map of database names to an array of collection names. If empty, 
    # defaults to all databases and collections. If the list of collections is null,
    # collects all collections for the database. 
      filters: {“db1”:null,”db2”:[“collection1”,”collection2”],”db3”:[]}
    labels:
      env: production
      label: mongo-cluster-1

Find and use data

To find your integration data in Infrastructure, go to infrastructure.newrelic.com > Integrations > On-host integrations and select one of the MongoDB integration links.

In New Relic Insights, MongoDB data is attached to the following Insights event types:

For more on how to find and use your data, see Understand integration data.

Metric data

The MongoDB integration collects the following metric data attributes. Some metric name are prefixed with a category indicator and a period, such as asserts. or collection..

MongoCollectionSample metrics

These attributes can be found by querying the MongoCollectionSample event types in Insights.

Metric Description

collection.avgObjSizeInBytes

The size of the average object in the collection, in bytes.

collection.capped

Whether or not the collection is capped.

collection.count

The total number of objects in the collection.

collection.indexAccesses

The number of time the index was used.

collection.indexSizeInBytes

The size of index, in bytes.

collection.max

The maximum number of documents in a capped collection.

collection.maxSizeInBytes

The maximum size of a capped collection, in bytes.

collection.nindexes

The total number of indices on the collection.

collection.sizeInBytes

The total size of the data in the collection plus the size of every indexes on the collection, in bytes.

collection.storageSizeInBytes

The total storage space allocated to this collection for document storage, in bytes.

MongoConfigServerSample metrics

These attributes can be found by querying the MongoConfigServerSample event types in Insights.

Metric Description

asserts.messagesPerSecond

The number of message assertions raised per second.

asserts.regularPerSecond

The number of regular assertions raised per second.

asserts.rolloversPerSecond

The number of times that the rollover counters roll over. The counters rollover to zero every 2^30 assertions per second.

asserts.userPerSecond

The number of user assertions raised per second.

asserts.warningPerSecond

The number of warnings raised per second.

commands.countFailedPerSecond

The number of times count failed.

commands.countPerSecond

The number of times count executed.

commands.createIndexesFailedPerSecond

The number of times createIndexes failed.

commands.createIndexesPerSecond

The number of times createIndexe executed.

commands.deleteFailedPerSecond

The number of times delete failed.

commands.deletePerSecond

The number of times delete executed.

commands.evalFailedPerSecond

The number of times eval failed.

commands.evalPerSecond

The number of times eval executed.

commands.findAndModifyFailedPerSecond

The number of times findAndModify failed.

commands.findAndModifyPerSecond

The number of times findAndModify executed.

commands.insertFailedPerSecond

The number of times insert failed.

commands.insertPerSecond

The number of times insert executed.

commands.updateFailedPerSecond

The number of times update failed.

commands.updatePerSecond

The number of times update executed.

connections.available

The number of unused available incoming connections the database can provide.

connections.current

The number of connections to the database server from clients.

connections.totalCreated

The total number of connections created.

cursor.openNoTimeout

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

cursor.openPinned

The number of pinned open cursors.

cursor.openTotal

The number of cursors that MongoDB is maintaining for clients.

cursor.timedOutPerSecond

The total number of cursors that have timed out since the server process started.

document.deletedPerSecond

The number of documents deleted per second.

document.insertedPerSecond

The number of documents inserted per second.

document.returnedPerSecond

The number of documents returned by queries per second.

document.updatedPerSecond

The number of documents updated per second.

dur.commits

The number of transactions written to the journal during the last journal group commit interval.

dur.commitsInMilliseconds

The amount of time spent for commits, in milliseconds.

dur.commitsInWriteLock

The count of the commits that occurred while a write lock was held.

dur.commitsInWriteLockInMilliseconds

The amount of time spent for commits that occurred while a write lock was held, in milliseconds.

dur.compression

The compression ratio of the data written to the journal.

dur.dataWrittenJournalDataFilesInBytes

The amount of data written from journal to the data files during the last journal group commit interval, in bytes.

dur.earlyCommits

The number of times MongoDB has requested a commit before the scheduled journal group commit interval.

dur.journaledInBytes

The amount of data written to journal during the last journal group commit interval, in bytes.

dur.preparingInMilliseconds

The amount of time spent preparing to write to the journal, in milliseconds.

dur.remappingInMilliseconds

The amount of time spent remapping copy-on-write memory mapped views, in milliseconds.

dur.timeCollectedCommitsInMilliseconds

The amount of time over which MongoDB collected the durcommitsInMilliseconds data, in milliseconds.

dur.writingDataFilesInMilliseconds

The amount of time spent writing to data files after journaling, in milliseconds.

dur.writingJournalInMilliseconds

The amount of time spent writing to the journal, in milliseconds.

flush.averageInMilliseconds

The average time for each flush to disk, in milliseconds.

flush.flushesDisk

The number of times the database has flushed all writes to disk.

flush.lastInMilliseconds

The amount of time that the last flush operation took to complete, in milliseconds.

flush.totalInMilliseconds

The total amount of time that the mongod processes have spent writing (i.e., flushing) data to disk, in milliseconds.

getlasterror.wtimeMillisPerSecond

The 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 per second.

getlasterror.wtimeoutsPerSecond

The number of times that write concern operations have timed out as a result of the wtimeout threshold to getLastError per second.

globallock.activeClientsReaders

The count of the active client connections performing read operations.

globallock.activeClientsTotal

The total number of active client connections to the database.

globallock.activeClientsWriters

The count of active client connections performing write operations.

globallock.currentQueueReaders

The number of operations that are currently queued and waiting for the read lock.

globallock.currentQueueTotal

The total number of operations queued waiting for the lock.

globallock.currentQueueWriters

The number of operations that are currently queued and waiting for the write lock.

globallock.totaltime

The time since the database last started and created the global lock.

locks.collectionAcquireExclusive

The number of times the collection lock type was acquired in the Exclusive (X) mode.

locks.collectionAcquireIntentExclusive

The number of times the collection lock type was acquired in the Intent Exclusive (IX) mode.

locks.collectionAcquireIntentShared

The number of times the collection lock type was acquired in the Intent Shared (IS) mode.

locks.collectionAcquireShared

The number of times the collection lock type was acquired in the Shared (S) mode.

locks.collectionAcquireWaitCountExclusive

The number of times the collection lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.collectionAcquireWaitCountShared

The number of times the collection lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.collectionTimeAcquiringMicrosExclusive

The wait time for the collection lock type acquisitions in the Exclusive (X) mode.

locks.collectionTimeAcquiringMicrosShared

The wait time for the collection lock type acquisitions in the Shared (S) mode.

locks.databaseAcquireExclusive

The number of times the database lock type was acquired in the Exclusive (X) mode.

locks.databaseAcquireIntentExclusive

The number of times the database lock type was acquired in the Intent Exclusive (IX) mode.

locks.databaseAcquireIntentShared

The number of times the database lock type was acquired in the Intent Shared (IS) mode.

locks.databaseAcquireShared

The number of times the database lock type was acquired in the Shared (S) mode.

locks.databaseAcquireWaitExclusive

The number of times the database lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitIntentExclusive

The number of times the database lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitIntentShared

The number of times the database lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitShared

The number of times the database lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseTimeAcquiringMicrosExclusive

The wait time for the database lock type acquisitions in the Exclusive (X) mode.

locks.databaseTimeAcquiringMicrosIntentExclusive

The wait time for the database lock type acquisitions in the Intent Exclusive (IX) mode.

locks.databaseTimeAcquiringMicrosIntentShared

The wait time for the database lock type acquisitions in the Intent Shared (IS) mode.

locks.databaseTimeAcquiringMicrosShared

The wait time for the database lock type acquisitions in the Shared (S) mode.

locks.globalAcquireExclusive

The number of times the global lock type was acquired in the Exclusive (X) mode.

locks.globalAcquireIntentExclusive

The number of times the global lock type was acquired in the Intent Exclusive (IX) mode.

locks.globalAcquireIntentShared

The number of times the global lock type was acquired in the Intent Shared (IS) mode.

locks.globalAcquireShared

The number of times the global lock type was acquired in the Shared (S) mode.

locks.globalAcquireWaitExclusive

The number of times the global lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitIntentExclusive

The number of times the global lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitIntentShared

The number of times the global lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitShared

The number of times the global lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.globalTimeAcquiringMicrosExclusive

The wait time for the global lock type acquisitions in the Exclusive (X) mode.

locks.globalTimeAcquiringMicrosIntentExclusive

The wait time for the global lock type acquisitions in the Intent Exclusive (IX) mode.

locks.globalTimeAcquiringMicrosIntentShared

The wait time for the global lock type acquisitions in the Intent Shared (IS) mode.

locks.globalTimeAcquiringMicrosShared

The wait time for the global lock type acquisitions in the Shared (S) mode.

locks.metadataAcquireExclusive

The number of times the metadata lock type was acquired in the Exclusive (X) mode.

locks.metadataAcquireShared

The number of times the metadata lock type was acquired in the Shared (S) mode.

locks.mmapv1journalAcquireExclusive

The number of times the MMAPv1 storage engine lock type was acquired in the Exclusive (X) mode.

locks.mmapv1journalAcquireIntentExclusive

The number of times the MMAPv1 storage engine lock type was acquired in the Intent Exclusive (IX) mode.

locks.mmapv1journalAcquireIntentShared

The number of times the MMAPv1 storage engine lock type was acquired in the Intent Shared (IS) mode.

locks.mmapv1journalAcquireShared

The number of times the MMAPv1 storage engine lock type was acquired in the Shared (S) mode.

locks.mmapv1journalAcquireWaitExclusive

The number of times the MMAPv1 storage engine lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitIntentExclusive

The number of times the MMAPv1 storage engine lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitIntentShared

The number of times the MMAPv1 storage engine lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitShared

The number of times the MMAPv1 storage engine lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalTimeAcquiringMicrosExclusive

The wait time for the MMAPv1 storage engine lock type acquisitions in the Exclusive (X) mode.

locks.mmapv1journalTimeAcquiringMicrosIntentExclusive

The wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Exclusive (IX) mode.

locks.mmapv1journalTimeAcquiringMicrosIntentShared

The wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Shared (IS) mode.

locks.mmapv1journalTimeAcquiringMicrosShared

The wait time for the MMAPv1 storage engine lock type acquisitions in the Shared (S) mode.

locks.oplogAcquireExclusive

The number of times the oplog lock type was acquired in the Exclusive (X) mode.

locks.oplogAcquireIntentExclusive

The number of times the oplog lock type was acquired in the Intent Exclusive (IX) mode.

locks.oplogAcquireIntentShared

The number of times the oplog lock type was acquired in the Intent Shared (IS) mode.

locks.oplogAcquireShared

The number of times the oplog lock type was acquired in the Shared (S) mode.

locks.oplogAcquireWaitIntentExclusive

The number of times the oplog lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.oplogAcquireWaitShared

The number of times the oplog lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.oplogTimeAcquiringMicrosIntentExclusive

The wait time for the oplog lock type acquisitions in the Intent Exclusive (IX) mode.

locks.oplogTimeAcquiringMicrosIntentShared

The wait time for the oplog lock type acquisitions in the Shared (S) mode.

mem.bits

The size of the in-memory storage engine.

mem.mappedInBytes

The amount of mapped memory by the database, in bytes.

mem.mappedWithJournalInBytes

The amount of mapped memory, including the memory used for journaling, in bytes.

mem.residentInBytes

The amount of memory currently used by the database process, in bytes.

mem.virtualInBytes

The amount of virtual memory used by the mongod process, in bytes.

network.bytesInPerSecond

The number of bytes that reflects the amount of network traffic into this database.

network.bytesOutPerSecond

The number of bytes that reflects the amount of network traffic sent from this database.

network.requestsPerSecond

The number of distinct requests that the server has received.

opcounters.commandPerSecond

The total number of commands issued to the database per second.

opcounters.deletePerSecond

The number of delete operations per second.

opcounters.getmorePerSecond

The number of getmore operations per second.

opcounters.insertPerSecond

The number of insert operations per second.

opcounters.queryPerSecond

The total number of queries per second.

opcounters.updatePerSecond

The number of update operations per second.

opcountersrepl.commandPerSecond

The total number of replicated commands issued to the database per second.

opcountersrepl.deletePerSecond

The number of replicated delete operations per second.

opcountersrepl.getmorePerSecond

The number of replicated getmore operations per second.

opcountersrepl.insertPerSecond

The number of replicated insert operations per second.

opcountersrepl.queryPerSecond

The total number of replicated queries per second.

opcountersrepl.updatePerSecond

The number of replicated update operations per second.

operation.fastmodPerSecond

The number of update operations that neither cause documents to grow nor require updates to the index per second.

operation.idhackPerSecond

The number of queries that contain the _id field per second.

operation.scanAndOrderPerSecond

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

operation.writeConflictsPerSecond

The number of times that write concern operations has encountered a conflict per second.

pageFaultsPerSecond

The number of page faults that require disk operations per second.

queryexecutor.scannedPerSecond

The number of index items scanned during queries and query-plan evaluation per second.

record.movesPerSecond

The number of times documents move within the on-disk representation of the MongoDB data set per second.

repl.apply.batchesPerSecond

The number of batches applied across all databases per second.

repl.apply.operationsPerSecond

The number of oplog operations applied per second.

repl.buffer.count

The number of operations in the oplog buffer.

repl.buffer.maxSizeInBytes

The maximum size of the buffer, in bytes.

repl.buffer.sizeInBytes

The current size of the contents of the oplog buffer, in bytes.

repl.docsLoadedPrefetch

The number of documents loaded during the pre-fetch stage of replication.

repl.docsPreloadInMilliseconds

The amount of time spent loading documents as part of the pre-fetch stage of replication, in milliseconds.

repl.indexLoadedPrefetch

The number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication.

repl.indexPreloadInMilliseconds

The amount of time spent loading indices as part of the pre-fetch stage of replication, in milliseconds.

repl.network.bytesPerSecond

The amount of data read from the replication sync source per second.

repl.network.getmoresPerSecond

The number of getmore operations per second.

repl.network.operationPerSecond

The number of operations read from the replication source per second.

repl.network.readersCreatedPerSecond

The number of oplog query processes created per second.

replset.health

The Member health value of the replica set: conveys if the member is up (i.e., 1) or down (i.e., 0).

replset.isArbiter

1 if the mongod is an arbiter, 0 otherwise.

replset.isHidden

1 if the mongod is hidden, 0 otherwise.

replset.isMaster

1 if the mongod is the current master, 0 otherwise.

replset.isSecondary

1 if the mongod is currently secondary, 0 otherwise.

replset.priority

The election priority of the mongod.

replset.replicationLag

The delay between a write operation on the primary and its copy to a secondary.

replset.state

The state of a replica that reflects its disposition within the set.

replset.uptimeInMilliseconds

The number of seconds that the mongos or mongod process has been active, in milliseconds.

replset.voteFraction

The fraction of votes a server will cast in a replica set election.

replset.votes

The number of votes a server will cast in a replica set election.

ttl.deleteDocumentsPerSecond

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

ttl.removeDocumentPerSecond

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

usage.commandsInMillisecondsPerSecond

The total time spent performing commands, in milliseconds.

usage.commandsPerSecond

The number of commands per second.

usage.getmoreInMillisecondsPerSecond

The total time spent performing getmore, in milliseconds.

usage.getmorePerSecond

The number of getmore per second.

usage.insertInMillisecondsPerSecond

The total time spent performing inserts, in milliseconds.

usage.insertPerSecond

The number of inserts per second.

usage.queriesInMillisecondsPerSecond

The total time spent performing queries, in milliseconds.

usage.queriesPerSecond

The number of queries per second.

usage.readLockInMillisecondsPerSecond

The total time spent performing read locks, in milliseconds.

usage.readLockPerSecond

The number of read locks per second.

usage.removeInMillisecondsPerSecond

The total time spent performing removes, in milliseconds.

usage.removePerSecond

The number of removes per second.

usage.totalInMillisecondsPerSecond

The total time spent performing operations, in milliseconds.

usage.totalPerSecond

The number of operations per second.

usage.updateInMillisecondsPerSecond

The total time spent performing updates, in milliseconds.

usage.updatePerSecond

The number of updates per second.

usage.writeLockInMillisecondsPerSecond

The total time spent performing write locks, in milliseconds.

usage.writeLockPerSecond

The number of write locks per second.

wiredtiger.cacheDirtyDataInBytes

The size of the dirty data in the cache, in bytes.

wiredtiger.cacheInBytes

The size of the data currently in cache, in bytes.

wiredtiger.cacheInMemoryPageSplits

The in-memory page splits.

wiredtiger.cacheMaxInBytes

The maximum cache size, in bytes.

wiredtiger.cacheMaxPageSizeEvictionInBytes

The maximum page size at eviction, in bytes.

wiredtiger.cacheModifiedPagesEvicted

The number of pages, that have been modified, evicted from the cache.

wiredtiger.cachePagesEvictedApplicationThreadsPerSecond

The number of page evicted by application threads per second.

wiredtiger.cachePagesEvictedInMemoryMaxPerSecond

The number of pages evicted because they exceeded the cache in-memory maximum, per second.

wiredtiger.cachePagesHeld

The number of pages currently held in the cache.

wiredtiger.cacheUnmodifiedPagesEvicted

The number of pages, that were not modified, evicted from the cache.

wiredtiger.concurrentTransactions.ReadAvailable

The number of available read tickets (concurrent transactions) remaining.

wiredtiger.concurrentTransactions.ReadRemaining

The number of read tickets (concurrent transactions) in use.

wiredtiger.concurrentTransactions.ReadTotal

The total number of read tickets (concurrent transactions) available.

wiredtiger.concurrentTransactions.WriteAvailable

The number of available write tickets (concurrent transactions) remaining.

wiredtiger.concurrentTransactions.WriteRemaining

The number of write tickets (concurrent transactions) in use.

wiredtiger.concurrentTransactions.WriteTotal

The total number of write tickets (concurrent transactions) available.

wiredtiger.failedEvictionsPagesPerSecond

The number of failed eviction of pages that exceeded the in-memory maximum, per second.

MongoDatabaseSample metrics

These attributes can be found by querying the MongoDatabaseSample event types in Insights.

Metric Description

stats.dataInBytes

The total size of the data held in this database including the padding factor, in bytes.

stats.indexes

The total number of indexes across all collections in the database.

stats.indexInBytes

The total size of all indexes created on this database, in bytes.

stats.objects

The number of objects (documents) in the database across all collections.

stats.storageInBytes

The total amount of space allocated to collections in this database for document storage, in bytes.

totalDatabases

The total number of existing databases.

MongoSample metrics

These attributes can be found by querying the MongoSample event types in Insights.

Metric Description

numDatabases

The number of databases on the cluster.

MongodSample metrics

These attributes can be found by querying the MongodSample event types in Insights.

Metric Description

asserts.messagesPerSecond

The number of message assertions raised per second.

asserts.regularPerSecond

The number of regular assertions raised per second.

asserts.rolloversPerSecond

The number of times that the rollover counters roll over. The counters rollover to zero every 2^30 assertions per second.

asserts.userPerSecond

The number of user assertions raised per second.

asserts.warningPerSecond

The number of warnings raised per second.

commands.countFailedPerSecond

The number of times count failed.

commands.countPerSecond

The number of times count executed.

commands.createIndexesFailedPerSecond

The number of times createIndexes failed.

commands.createIndexesPerSecond

The number of times createIndexes executed.

commands.deleteFailedPerSecond

The number of times delete failed.

commands.deletePerSecond

The number of times delete executed.

commands.evalFailedPerSecond

The number of times eval failed.

commands.evalPerSecond

The number of times eval executed.

commands.findAndModifyFailedPerSecond

The number of times findAndModify failed.

commands.findAndModifyPerSecond

The number of times findAndModify executed.

commands.insertFailedPerSecond

The number of times insert failed.

commands.insertPerSecond

The number of times insert executed.

commands.updateFailedPerSecond

The number of times update failed.

commands.updatePerSecond

The number of times update executed.

connections.available

The number of unused available incoming connections the database can provide.

connections.current

The number of connections to the database server from clients.

connections.totalCreated

The total number of connections created.

cursor.openNoTimeout

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

cursor.openPinned

The number of pinned open cursors.

cursor.openTotal

The number of cursors that MongoDB is maintaining for clients.

cursor.timedOutPerSecond

The total number of cursors that have timed out since the server process started.

document.deletedPerSecond

The number of documents deleted per second.

document.insertedPerSecond

The number of documents inserted per second.

document.returnedPerSecond

The number of documents returned by queries per second.

document.updatedPerSecond

The number of documents updated per second.

dur.commits

The number of transactions written to the journal during the last journal group commit interval.

dur.commitsInMilliseconds

The amount of time spent for commits, in milliseconds.

dur.commitsInWriteLock

The count of the commits that occurred while a write lock was held.

dur.commitsInWriteLockInMilliseconds

The amount of time spent for commits that occurred while a write lock was held, in milliseconds.

dur.compression

The compression ratio of the data written to the journal.

dur.dataWrittenJournalDataFilesInBytes

The amount of data written from journal to the data files during the last journal group commit interval, in bytes.

dur.earlyCommits

The number of times MongoDB has requested a commit before the scheduled journal group commit interval.

dur.journaledInBytes

The amount of data written to journal during the last journal group commit interval, in bytes.

dur.preparingInMilliseconds

The amount of time spent preparing to write to the journal, in milliseconds.

dur.remappingInMilliseconds

The amount of time spent remapping copy-on-write memory mapped views, in milliseconds.

dur.timeCollectedCommitsInMilliseconds

The amount of time over which MongoDB collected the durcommitsInMilliseconds data, in milliseconds.

dur.writingDataFilesInMilliseconds

The amount of time spent writing to data files after journaling, in milliseconds.

dur.writingJournalInMilliseconds

The amount of time spent writing to the journal, in milliseconds.

flush.averageInMilliseconds

The average time for each flush to disk, in milliseconds.

flush.flushesDisk

The number of times the database has flushed all writes to disk.

flush.lastInMilliseconds

The amount of time that the last flush operation took to complete, in milliseconds.

flush.totalInMilliseconds

The total amount of time that the mongod processes have spent writing (i.e., flushing) data to disk, in milliseconds.

getlasterror.wtimeMillisPerSecond

The 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 per second.

getlasterror.wtimeoutsPerSecond

The number of times that write concern operations have timed out as a result of the wtimeout threshold to getLastError per second.

globallock.activeClientsReaders

The count of the active client connections performing read operations.

globallock.activeClientsTotal

The total number of active client connections to the database.

globallock.activeClientsWriters

The count of active client connections performing write operations.

globallock.currentQueueReaders

The number of operations that are currently queued and waiting for the read lock.

globallock.currentQueueTotal

The total number of operations queued waiting for the lock.

globallock.currentQueueWriters

The number of operations that are currently queued and waiting for the write lock.

globallock.totaltime

The time since the database last started and created the global lock.

locks.collectionAcquireExclusive

The number of times the collection lock type was acquired in the Exclusive (X) mode.

locks.collectionAcquireIntentExclusive

The number of times the collection lock type was acquired in the Intent Exclusive (IX) mode.

locks.collectionAcquireIntentShared

The number of times the collection lock type was acquired in the Intent Shared (IS) mode.

locks.collectionAcquireShared

The number of times the collection lock type was acquired in the Shared (S) mode.

locks.collectionAcquireWaitCountExclusive

The number of times the collection lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.collectionAcquireWaitCountShared

The number of times the collection lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.collectionTimeAcquiringMicrosExclusive

The wait time for the collection lock type acquisitions in the Exclusive (X) mode.

locks.collectionTimeAcquiringMicrosShared

The wait time for the collection lock type acquisitions in the Shared (S) mode.

locks.databaseAcquireExclusive

The number of times the database lock type was acquired in the Exclusive (X) mode.

locks.databaseAcquireIntentExclusive

The number of times the database lock type was acquired in the Intent Exclusive (IX) mode.

locks.databaseAcquireIntentShared

The number of times the database lock type was acquired in the Intent Shared (IS) mode.

locks.databaseAcquireShared

The number of times the database lock type was acquired in the Shared (S) mode.

locks.databaseAcquireWaitExclusive

The number of times the database lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitIntentExclusive

The number of times the database lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitIntentShared

The number of times the database lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitShared

The number of times the database lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseTimeAcquiringMicrosExclusive

The wait time for the database lock type acquisitions in the Exclusive (X) mode.

locks.databaseTimeAcquiringMicrosIntentExclusive

The wait time for the database lock type acquisitions in the Intent Exclusive (IX) mode.

locks.databaseTimeAcquiringMicrosIntentShared

The wait time for the database lock type acquisitions in the Intent Shared (IS) mode.

locks.databaseTimeAcquiringMicrosShared

The wait time for the database lock type acquisitions in the Shared (S) mode.

locks.globalAcquireExclusive

The number of times the global lock type was acquired in the Exclusive (X) mode.

locks.globalAcquireIntentExclusive

The number of times the global lock type was acquired in the Intent Exclusive (IX) mode.

locks.globalAcquireIntentShared

The number of times the global lock type was acquired in the Intent Shared (IS) mode.

locks.globalAcquireShared

The number of times the global lock type was acquired in the Shared (S) mode.

locks.globalAcquireWaitExclusive

The number of times the global lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitIntentExclusive

The number of times the global lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitIntentShared

The number of times the global lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitShared

The number of times the global lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.globalTimeAcquiringMicrosExclusive

The wait time for the global lock type acquisitions in the Exclusive (X) mode.

locks.globalTimeAcquiringMicrosIntentExclusive

The wait time for the global lock type acquisitions in the Intent Exclusive (IX) mode.

locks.globalTimeAcquiringMicrosIntentShared

The wait time for the global lock type acquisitions in the Intent Shared (IS) mode.

locks.globalTimeAcquiringMicrosShared

The wait time for the global lock type acquisitions in the Shared (S) mode.

locks.metadataAcquireExclusive

The number of times the metadata lock type was acquired in the Exclusive (X) mode.

locks.metadataAcquireShared

The number of times the metadata lock type was acquired in the Shared (S) mode.

locks.mmapv1journalAcquireExclusive

The number of times the MMAPv1 storage engine lock type was acquired in the Exclusive (X) mode.

locks.mmapv1journalAcquireIntentExclusive

The number of times the MMAPv1 storage engine lock type was acquired in the Intent Exclusive (IX) mode.

locks.mmapv1journalAcquireIntentShared

The number of times the MMAPv1 storage engine lock type was acquired in the Intent Shared (IS) mode.

locks.mmapv1journalAcquireShared

The number of times the MMAPv1 storage engine lock type was acquired in the Shared (S) mode.

locks.mmapv1journalAcquireWaitExclusive

The number of times the MMAPv1 storage engine lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitIntentExclusive

The number of times the MMAPv1 storage engine lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitIntentShared

The number of times the MMAPv1 storage engine lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitShared

The number of times the MMAPv1 storage engine lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalTimeAcquiringMicrosExclusive

The wait time for the MMAPv1 storage engine lock type acquisitions in the Exclusive (X) mode.

locks.mmapv1journalTimeAcquiringMicrosIntentExclusive

The wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Exclusive (IX) mode.

locks.mmapv1journalTimeAcquiringMicrosIntentShared

The wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Shared (IS) mode.

locks.mmapv1journalTimeAcquiringMicrosShared

The wait time for the MMAPv1 storage engine lock type acquisitions in the Shared (S) mode.

locks.oplogAcquireExclusive

The number of times the oplog lock type was acquired in the Exclusive (X) mode.

locks.oplogAcquireIntentExclusive

The number of times the oplog lock type was acquired in the Intent Exclusive (IX) mode.

locks.oplogAcquireIntentShared

The number of times the oplog lock type was acquired in the Intent Shared (IS) mode.

locks.oplogAcquireShared

The number of times the oplog lock type was acquired in the Shared (S) mode.

locks.oplogAcquireWaitIntentExclusive

The number of times the oplog lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.oplogAcquireWaitShared

The number of times the oplog lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.oplogTimeAcquiringMicrosIntentExclusive

The wait time for the oplog lock type acquisitions in the Intent Exclusive (IX) mode.

locks.oplogTimeAcquiringMicrosIntentShared

The wait time for the oplog lock type acquisitions in the Shared (S) mode.

mem.bits

The size of the in-memory storage engine.

mem.mappedInBytes

The amount of mapped memory by the database, in bytes.

mem.mappedWithJournalInBytes

The amount of mapped memory, including the memory used for journaling, in bytes.

mem.residentInBytes

The amount of memory currently used by the database process, in bytes.

mem.virtualInBytes

The amount of virtual memory used by the mongod process, in bytes.

network.bytesInPerSecond

The number of bytes that reflects the amount of network traffic into this database.

network.bytesOutPerSecond

The number of bytes that reflects the amount of network traffic sent from this database.

network.requestsPerSecond

The number of distinct requests that the server has received.

opcounters.commandPerSecond

The total number of commands issued to the database per second.

opcounters.deletePerSecond

The number of delete operations per second.

opcounters.getmorePerSecond

The number of getmore operations per second.

opcounters.insertPerSecond

The number of insert operations per second.

opcounters.queryPerSecond

The total number of queries per second.

opcounters.updatePerSecond

The number of update operations per second.

opcountersrepl.commandPerSecond

The total number of replicated commands issued to the database per second.

opcountersrepl.deletePerSecond

The number of replicated delete operations per second.

opcountersrepl.getmorePerSecond

The number of replicated getmore operations per second.

opcountersrepl.insertPerSecond

The number of replicated insert operations per second.

opcountersrepl.queryPerSecond

The total number of replicated queries per second.

opcountersrepl.updatePerSecond

The number of replicated update operations per second.

operation.fastmodPerSecond

The number of update operations that neither cause documents to grow nor require updates to the index per second.

operation.idhackPerSecond

The number of queries that contain the _id field per second.

operation.scanAndOrderPerSecond

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

operation.writeConflictsPerSecond

The number of times that write concern operations has encountered a conflict per second.

pageFaultsPerSecond

The number of page faults that require disk operations per second.

queryexecutor.scannedPerSecond

The number of index items scanned during queries and query-plan evaluation per second.

record.movesPerSecond

The number of times documents move within the on-disk representation of the MongoDB data set per second.

repl.apply.batchesPerSecond

The number of batches applied across all databases per second.

repl.apply.operationsPerSecond

The number of oplog operations applied per second.

repl.buffer.count

The number of operations in the oplog buffer.

repl.buffer.maxSizeInBytes

The maximum size of the buffer, in bytes.

repl.buffer.sizeInBytes

The current size of the contents of the oplog buffer, in bytes.

repl.docsLoadedPrefetch

The number of documents loaded during the pre-fetch stage of replication.

repl.docsPreloadInMilliseconds

The amount of time spent loading documents as part of the pre-fetch stage of replication, in milliseconds.

repl.indexLoadedPrefetch

The number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication.

repl.indexPreloadInMilliseconds

The amount of time spent loading indices as part of the pre-fetch stage of replication, in milliseconds.

repl.network.bytesPerSecond

The amount of data read from the replication sync source per second.

repl.network.getmoresPerSecond

The number of getmore operations per second.

repl.network.operationPerSecond

The number of operations read from the replication source per second.

repl.network.readersCreatedPerSecond

The number of oplog query processes created per second.

replset.health

The Member health value of the replica set: conveys if the member is up (i.e., 1) or down (i.e., 0).

replset.isArbiter

1 if the mongod is an arbiter, 0 otherwise.

replset.isHidden

1 if the mongod is hidden, 0 otherwise.

replset.isMaster

1 if the mongod is the current master, 0 otherwise.

replset.isSecondary

1 if the mongod is currently secondary, 0 otherwise.

replset.priority

The election priority of the mongod.

replset.replicationLag

The delay between a write operation on the primary and its copy to a secondary.

replset.state

The state of a replica that reflects its disposition within the set.

replset.uptimeInMilliseconds

The number of seconds that the mongos or mongod process has been active, in milliseconds.

replset.voteFraction

The fraction of votes a server will cast in a replica set election.

replset.votes

The number of votes a server will cast in a replica set election.

ttl.deleteDocumentsPerSecond

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

ttl.removeDocumentPerSecond

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

usage.commandsInMillisecondsPerSecond

The total time spent performing commands, in milliseconds.

usage.commandsPerSecond

The number of commands per second.

usage.getmoreInMillisecondsPerSecond

The total time spent performing getmore, in milliseconds.

usage.getmorePerSecond

The number of getmore per second.

usage.insertInMillisecondsPerSecond

The total time spent performing inserts, in milliseconds.

usage.insertPerSecond

The number of inserts per second.

usage.queriesInMillisecondsPerSecond

The total time spent performing queries, in milliseconds.

usage.queriesPerSecond

The number of queries per second.

usage.readLockInMillisecondsPerSecond

The total time spent performing read locks, in milliseconds.

usage.readLockPerSecond

The number of read locks per second.

usage.removeInMillisecondsPerSecond

The total time spent performing removes, in milliseconds.

usage.removePerSecond

The number of removes per second.

usage.totalInMillisecondsPerSecond

The total time spent performing operations, in milliseconds.

usage.totalPerSecond

The number of operations per second.

usage.updateInMillisecondsPerSecond

The total time spent performing updates, in milliseconds.

usage.updatePerSecond

The number of updates per second.

usage.writeLockInMillisecondsPerSecond

The total time spent performing write locks, in milliseconds.

usage.writeLockPerSecond

The number of write locks per second.

wiredtiger.cacheDirtyDataInBytes

The size of the dirty data in the cache, in bytes.

wiredtiger.cacheInBytes

The size of the data currently in cache, in bytes.

wiredtiger.cacheInMemoryPageSplits

The in-memory page splits.

wiredtiger.cacheMaxInBytes

The maximum cache size, in bytes.

wiredtiger.cacheMaxPageSizeEvictionInBytes

The maximum page size at eviction, in bytes.

wiredtiger.cacheModifiedPagesEvicted

The number of pages, that have been modified, evicted from the cache.

wiredtiger.cachePagesEvictedApplicationThreadsPerSecond

The number of page evicted by application threads per second.

wiredtiger.cachePagesEvictedInMemoryMaxPerSecond

The number of pages evicted because they exceeded the cache in-memory maximum, per second.

wiredtiger.cachePagesHeld

The number of pages currently held in the cache.

wiredtiger.cacheUnmodifiedPagesEvicted

The number of pages, that were not modified, evicted from the cache.

wiredtiger.concurrentTransactions.ReadAvailable

The number of available read tickets (concurrent transactions) remaining.

wiredtiger.concurrentTransactions.ReadRemaining

The number of read tickets (concurrent transactions) in use.

wiredtiger.concurrentTransactions.ReadTotal

The total number of read tickets (concurrent transactions) available.

wiredtiger.concurrentTransactions.WriteAvailable

The number of available write tickets (concurrent transactions) remaining.

wiredtiger.concurrentTransactions.WriteRemaining

The number of write tickets (concurrent transactions) in use.

wiredtiger.concurrentTransactions.WriteTotal

The total number of write tickets (concurrent transactions) available.

wiredtiger.failedEvictionsPagesPerSecond

The number of failed eviction of pages that exceeded the in-memory maximum, per second.

MongosSample metrics

These attributes can be found by querying the MongosSample event types in Insights.

Metric Description

asserts.messagesPerSecond

The number of message assertions raised per second.

asserts.regularPerSecond

The number of regular assertions raised per second.

asserts.rolloversPerSecond

The number of times that the rollover counters roll over. The counters rollover to zero every 2^30 assertions per second.

asserts.userPerSecond

The number of user assertions raised per second.

asserts.warningPerSecond

The number of warnings raised per second.

commands.countFailedPerSecond

The number of times count failed.

commands.countPerSecond

The number of times count executed.

commands.createIndexesFailedPerSecond

The number of times createIndexes failed.

commands.createIndexesPerSecond

The number of times createIndexes executed.

commands.deleteFailedPerSecond

The number of times delete failed.

commands.deletePerSecond

The number of times delete executed.

commands.evalFailedPerSecond

The number of times eval failed.

commands.evalPerSecond

The number of times eval executed.

commands.findAndModifyFailedPerSecond

The number of times findAndModify failed.

commands.findAndModifyPerSecond

The number of times findAndModify< executed.

commands.insertFailedPerSecond

The number of times insert failed.

commands.insertPerSecond

The number of times insert executed.

commands.updateFailedPerSecond

The number of times update failed.

commands.updatePerSecond

The number of times update executed.

connections.available

The number of unused available incoming connections the database can provide.

connections.current

The number of connections to the database server from clients.

connections.totalCreated

The total number of connections created.

cursor.openNoTimeout

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

cursor.openPinned

The number of pinned open cursors.

cursor.openTotal

The number of cursors that MongoDB is maintaining for clients.

cursor.timedOutPerSecond

The total number of cursors that have timed out since the server process started.

document.deletedPerSecond

The number of documents deleted per second.

document.insertedPerSecond

The number of documents inserted per second.

document.returnedPerSecond

The number of documents returned by queries per second.

document.updatedPerSecond

The number of documents updated per second.

dur.commits

The number of transactions written to the journal during the last journal group commit interval.

dur.commitsInMilliseconds

The amount of time spent for commits, in milliseconds.

dur.commitsInWriteLock

The count of the commits that occurred while a write lock was held.

dur.commitsInWriteLockInMilliseconds

The amount of time spent for commits that occurred while a write lock was held, in milliseconds.

dur.compression

The compression ratio of the data written to the journal.

dur.dataWrittenJournalDataFilesInBytes

The amount of data written from journal to the data files during the last journal group commit interval, in bytes.

dur.earlyCommits

The number of times MongoDB has requested a commit before the scheduled journal group commit interval.

dur.journaledInBytes

The amount of data written to journal during the last journal group commit interval, in bytes.

dur.preparingInMilliseconds

The amount of time spent preparing to write to the journal, in milliseconds.

dur.remappingInMilliseconds

The amount of time spent remapping copy-on-write memory mapped views, in milliseconds.

dur.timeCollectedCommitsInMilliseconds

The amount of time over which MongoDB collected the durcommitsInMilliseconds data, in milliseconds.

dur.writingDataFilesInMilliseconds

The amount of time spent writing to data files after journaling, in milliseconds.

dur.writingJournalInMilliseconds

The amount of time spent writing to the journal, in milliseconds.

flush.averageInMilliseconds

The average time for each flush to disk, in milliseconds.

flush.flushesDisk

The number of times the database has flushed all writes to disk.

flush.lastInMilliseconds

The amount of time that the last flush operation took to complete, in milliseconds.

flush.totalInMilliseconds

The total amount of time that the mongod processes have spent writing (i.e., flushing) data to disk, in milliseconds.

getlasterror.wtimeMillisPerSecond

The 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 per second.

getlasterror.wtimeoutsPerSecond

The number of times that write concern operations have timed out as a result of the wtimeout threshold to getLastError per second.

globallock.activeClientsReaders

The count of the active client connections performing read operations.

globallock.activeClientsTotal

The total number of active client connections to the database.

globallock.activeClientsWriters

The count of active client connections performing write operations.

globallock.currentQueueReaders

The number of operations that are currently queued and waiting for the read lock.

globallock.currentQueueTotal

The total number of operations queued waiting for the lock.

globallock.currentQueueWriters

The number of operations that are currently queued and waiting for the write lock.

globallock.totaltime

The time since the database last started and created the global lock.

locks.collectionAcquireExclusive

The number of times the collection lock type was acquired in the Exclusive (X) mode.

locks.collectionAcquireIntentExclusive

The number of times the collection lock type was acquired in the Intent Exclusive (IX) mode.

locks.collectionAcquireIntentShared

The number of times the collection lock type was acquired in the Intent Shared (IS) mode.

locks.collectionAcquireShared

The number of times the collection lock type was acquired in the Shared (S) mode.

locks.collectionAcquireWaitCountExclusive

The number of times the collection lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.collectionAcquireWaitCountShared

The number of times the collection lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.collectionTimeAcquiringMicrosExclusive

The wait time for the collection lock type acquisitions in the Exclusive (X) mode.

locks.collectionTimeAcquiringMicrosShared

The wait time for the collection lock type acquisitions in the Shared (S) mode.

locks.databaseAcquireExclusive

The number of times the database lock type was acquired in the Exclusive (X) mode.

locks.databaseAcquireIntentExclusive

The number of times the database lock type was acquired in the Intent Exclusive (IX) mode.

locks.databaseAcquireIntentShared

The number of times the database lock type was acquired in the Intent Shared (IS) mode.

locks.databaseAcquireShared

The number of times the database lock type was acquired in the Shared (S) mode.

locks.databaseAcquireWaitExclusive

The number of times the database lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitIntentExclusive

The number of times the database lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitIntentShared

The number of times the database lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseAcquireWaitShared

The number of times the database lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.databaseTimeAcquiringMicrosExclusive

The wait time for the database lock type acquisitions in the Exclusive (X) mode.

locks.databaseTimeAcquiringMicrosIntentExclusive

The wait time for the database lock type acquisitions in the Intent Exclusive (IX) mode.

locks.databaseTimeAcquiringMicrosIntentShared

The wait time for the database lock type acquisitions in the Intent Shared (IS) mode.

locks.databaseTimeAcquiringMicrosShared

The wait time for the database lock type acquisitions in the Shared (S) mode.

locks.globalAcquireExclusive

The number of times the global lock type was acquired in the Exclusive (X) mode.

locks.globalAcquireIntentExclusive

The number of times the global lock type was acquired in the Intent Exclusive (IX) mode.

locks.globalAcquireIntentShared

The number of times the global lock type was acquired in the Intent Shared (IS) mode.

locks.globalAcquireShared

The number of times the global lock type was acquired in the Shared (S) mode.

locks.globalAcquireWaitExclusive

The number of times the global lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitIntentExclusive

The number of times the global lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitIntentShared

The number of times the global lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.globalAcquireWaitShared

The number of times the global lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.globalTimeAcquiringMicrosExclusive

The wait time for the global lock type acquisitions in the Exclusive (X) mode.

locks.globalTimeAcquiringMicrosIntentExclusive

The wait time for the global lock type acquisitions in the Intent Exclusive (IX) mode.

locks.globalTimeAcquiringMicrosIntentShared

The wait time for the global lock type acquisitions in the Intent Shared (IS) mode.

locks.globalTimeAcquiringMicrosShared

The wait time for the global lock type acquisitions in the Shared (S) mode.

locks.metadataAcquireExclusive

The number of times the metadata lock type was acquired in the Exclusive (X) mode.

locks.metadataAcquireShared

The number of times the metadata lock type was acquired in the Shared (S) mode.

locks.mmapv1journalAcquireExclusive

The number of times the MMAPv1 storage engine lock type was acquired in the Exclusive (X) mode.

locks.mmapv1journalAcquireIntentExclusive

The number of times the MMAPv1 storage engine lock type was acquired in the Intent Exclusive (IX) mode.

locks.mmapv1journalAcquireIntentShared

The number of times the MMAPv1 storage engine lock type was acquired in the Intent Shared (IS) mode.

locks.mmapv1journalAcquireShared

The number of times the MMAPv1 storage engine lock type was acquired in the Shared (S) mode.

locks.mmapv1journalAcquireWaitExclusive

The number of times the MMAPv1 storage engine lock type acquisition in the Exclusive (X) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitIntentExclusive

The number of times the MMAPv1 storage engine lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitIntentShared

The number of times the MMAPv1 storage engine lock type acquisition in the Intent Shared (IS) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalAcquireWaitShared

The number of times the MMAPv1 storage engine lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.mmapv1journalTimeAcquiringMicrosExclusive

The wait time for the MMAPv1 storage engine lock type acquisitions in the Exclusive (X) mode.

locks.mmapv1journalTimeAcquiringMicrosIntentExclusive

The wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Exclusive (IX) mode.

locks.mmapv1journalTimeAcquiringMicrosIntentShared

The wait time for the MMAPv1 storage engine lock type acquisitions in the Intent Shared (IS) mode.

locks.mmapv1journalTimeAcquiringMicrosShared

The wait time for the MMAPv1 storage engine lock type acquisitions in the Shared (S) mode.

locks.oplogAcquireExclusive

The number of times the oplog lock type was acquired in the Exclusive (X) mode.

locks.oplogAcquireIntentExclusive

The number of times the oplog lock type was acquired in the Intent Exclusive (IX) mode.

locks.oplogAcquireIntentShared

The number of times the oplog lock type was acquired in the Intent Shared (IS) mode.

locks.oplogAcquireShared

The number of times the oplog lock type was acquired in the Shared (S) mode.

locks.oplogAcquireWaitIntentExclusive

The number of times the oplog lock type acquisition in the Intent Exclusive (IX) mode encountered waits because the locks were held in a conflicting mode.

locks.oplogAcquireWaitShared

The number of times the oplog lock type acquisition in the Shared (S) mode encountered waits because the locks were held in a conflicting mode.

locks.oplogTimeAcquiringMicrosIntentExclusive

The wait time for the oplog lock type acquisitions in the Intent Exclusive (IX) mode.

locks.oplogTimeAcquiringMicrosIntentShared

The wait time for the oplog lock type acquisitions in the Shared (S) mode.

mem.bits

The size of the in-memory storage engine.

mem.mappedInBytes

The amount of mapped memory by the database, in bytes.

mem.mappedWithJournalInBytes

The amount of mapped memory, including the memory used for journaling, in bytes.

mem.residentInBytes

The amount of memory currently used by the database process, in bytes.

mem.virtualInBytes

The amount of virtual memory used by the mongod process, in bytes.

network.bytesInPerSecond

The number of bytes that reflects the amount of network traffic into this database.

network.bytesOutPerSecond

The number of bytes that reflects the amount of network traffic sent from this database.

network.requestsPerSecond

The number of distinct requests that the server has received.

opcounters.commandPerSecond

The total number of commands issued to the database per second.

opcounters.deletePerSecond

The number of delete operations per second.

opcounters.getmorePerSecond

The number of getmore operations per second.

opcounters.insertPerSecond

The number of insert operations per second.

opcounters.queryPerSecond

The total number of queries per second.

opcounters.updatePerSecond

The number of update operations per second.

opcountersrepl.commandPerSecond

The total number of replicated commands issued to the database per second.

opcountersrepl.deletePerSecond

The number of replicated delete operations per second.

opcountersrepl.getmorePerSecond

The number of replicated getmore operations per second.

opcountersrepl.insertPerSecond

The number of replicated insert operations per second.

opcountersrepl.queryPerSecond

The total number of replicated queries per second.

opcountersrepl.updatePerSecond

The number of replicated update operations per second.

operation.fastmodPerSecond

The number of update operations that neither cause documents to grow nor require updates to the index per second.

operation.idhackPerSecond

The number of queries that contain the _id field per second.

operation.scanAndOrderPerSecond

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

operation.writeConflictsPerSecond

The number of times that write concern operations has encountered a conflict per second.

pageFaultsPerSecond

The number of page faults that require disk operations per second.

queryexecutor.scannedPerSecond

The number of index items scanned during queries and query-plan evaluation per second.

record.movesPerSecond

The number of times documents move within the on-disk representation of the MongoDB data set per second.

repl.apply.batchesPerSecond

The number of batches applied across all databases per second.

repl.apply.operationsPerSecond

The number of oplog operations applied per second.

repl.buffer.count

The number of operations in the oplog buffer.

repl.buffer.maxSizeInBytes

The maximum size of the buffer, in bytes.

repl.buffer.sizeInBytes

The current size of the contents of the oplog buffer, in bytes.

repl.docsLoadedPrefetch

The number of documents loaded during the pre-fetch stage of replication.

repl.docsPreloadInMilliseconds

The amount of time spent loading documents as part of the pre-fetch stage of replication, in milliseconds.

repl.indexLoadedPrefetch

The number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication.

repl.indexPreloadInMilliseconds

The amount of time spent loading indices as part of the pre-fetch stage of replication, in milliseconds.

repl.network.bytesPerSecond

The amount of data read from the replication sync source per second.

repl.network.getmoresPerSecond

The number of getmore operations per second.

repl.network.operationPerSecond

The number of operations read from the replication source per second.

repl.network.readersCreatedPerSecond

The number of oplog query processes created per second.

ttl.deleteDocumentsPerSecond

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

ttl.removeDocumentPerSecond

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

wiredtiger.cacheDirtyDataInBytes

The size of the dirty data in the cache, in bytes.

wiredtiger.cacheInBytes

The size of the data currently in cache, in bytes.

wiredtiger.cacheInMemoryPageSplits

The in-memory page splits.

wiredtiger.cacheMaxInBytes

The maximum cache size, in bytes.

wiredtiger.cacheMaxPageSizeEvictionInBytes

The maximum page size at eviction, in bytes.

wiredtiger.cacheModifiedPagesEvicted

The number of pages, that have been modified, evicted from the cache.

wiredtiger.cachePagesEvictedApplicationThreadsPerSecond

The number of page evicted by application threads per second.

wiredtiger.cachePagesEvictedInMemoryMaxPerSecond

The number of pages evicted because they exceeded the cache in-memory maximum, per second.

wiredtiger.cachePagesHeld

The number of pages currently held in the cache.

wiredtiger.cacheUnmodifiedPagesEvicted

The number of pages, that were not modified, evicted from the cache.

wiredtiger.concurrentTransactions.ReadAvailable

The number of available read tickets (concurrent transactions) remaining.

wiredtiger.concurrentTransactions.ReadRemaining

The number of read tickets (concurrent transactions) in use.

wiredtiger.concurrentTransactions.ReadTotal

The total number of read tickets (concurrent transactions) available.

wiredtiger.concurrentTransactions.WriteAvailable

The number of available write tickets (concurrent transactions) remaining.

wiredtiger.concurrentTransactions.WriteRemaining

The number of write tickets (concurrent transactions) in use.

wiredtiger.concurrentTransactions.WriteTotal

The total number of write tickets (concurrent transactions) available.

wiredtiger.failedEvictionsPagesPerSecond

The number of failed eviction of pages that exceeded the in-memory maximum, per second.

Inventory data

The MongoDB integration captures all command line options and runtime-configured parameters from each host in the cluster.

The data is available on the Infrastructure Inventory page, under the config/mongodb source. For more about inventory data, see Understand integration data.

For more help

Recommendations for learning more: