Skip to main content

MongoDB

Plugin: go.d.plugin Module: mongodb

Overview​

This collector monitors MongoDB servers.

Executed queries:

This collector is supported on all platforms.

This collector supports collecting metrics from multiple instances of this integration, including remote instances.

Default Behavior​

Auto-Detection​

This integration doesn't support auto-detection.

Limits​

The default configuration for this integration does not impose any limits on data collection.

Performance Impact​

The default configuration for this integration is not expected to impose a significant performance impact on the system.

Metrics​

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

  • WireTiger metrics are available only if WiredTiger is used as the storage engine.
  • Sharding metrics are available on shards only for mongos.

Per MongoDB instance​

These metrics refer to the entire monitored application.

This scope has no labels.

Metrics:

MetricDimensionsUnit
mongodb.operations_ratereads, writes, commandsoperations/s
mongodb.operations_latency_timereads, writes, commandsmilliseconds
mongodb.operations_by_type_rateinsert, query, update, delete, getmore, commandoperations/s
mongodb.document_operations_rateinserted, deleted, returned, updatedoperations/s
mongodb.scanned_indexes_ratescannedindexes/s
mongodb.scanned_documents_ratescanneddocuments/s
mongodb.active_clients_countreaders, writersclients
mongodb.queued_operations_countreads, writesoperations
mongodb.cursors_open_countopencursors
mongodb.cursors_open_no_timeout_countopen_no_timeoutcursors
mongodb.cursors_opened_rateopenedcursors/s
mongodb.cursors_timed_out_ratetimed_outcursors/s
mongodb.cursors_by_lifespan_countle_1s, 1s_5s, 5s_15s, 15s_30s, 30s_1m, 1m_10m, ge_10mcursors
mongodb.transactions_countactive, inactive, open, preparedtransactions
mongodb.transactions_ratestarted, aborted, committed, preparedtransactions/s
mongodb.connections_usageavailable, usedconnections
mongodb.connections_by_state_countactive, threaded, exhaust_is_master, exhaust_hello, awaiting_topology_changesconnections
mongodb.connections_ratecreatedconnections/s
mongodb.asserts_rateregular, warning, msg, user, tripwire, rolloversasserts/s
mongodb.network_traffic_ratein, outbytes/s
mongodb.network_requests_raterequestsrequests/s
mongodb.network_slow_dns_resolutions_rateslow_dnsresolutions/s
mongodb.network_slow_ssl_handshakes_rateslow_sslhandshakes/s
mongodb.memory_resident_sizeusedbytes
mongodb.memory_virtual_sizeusedbytes
mongodb.memory_page_faults_ratepgfaultspgfaults/s
mongodb.memory_tcmalloc_statsallocated, central_cache_freelist, transfer_cache_freelist, thread_cache_freelists, pageheap_freelist, pageheap_unmappedbytes
mongodb.wiredtiger_concurrent_read_transactions_usageavailable, usedtransactions
mongodb.wiredtiger_concurrent_write_transactions_usageavailable, usedtransactions
mongodb.wiredtiger_cache_usageusedbytes
mongodb.wiredtiger_cache_dirty_space_sizedirtybytes
mongodb.wiredtiger_cache_io_rateread, writtenpages/s
mongodb.wiredtiger_cache_evictions_rateunmodified, modifiedpages/s
mongodb.sharding_nodes_countshard_aware, shard_unawarenodes
mongodb.sharding_sharded_databases_countpartitioned, unpartitioneddatabases
mongodb.sharding_sharded_collections_countpartitioned, unpartitionedcollections

Per lock type​

These metrics refer to the lock type.

Labels:

LabelDescription
lock_typelock type (e.g. global, database, collection, mutex)

Metrics:

MetricDimensionsUnit
mongodb.lock_acquisitions_rateshared, exclusive, intent_shared, intent_exclusiveacquisitions/s

Per commit type​

These metrics refer to the commit type.

Labels:

LabelDescription
commit_typecommit type (e.g. noShards, singleShard, singleWriteShard)

Metrics:

MetricDimensionsUnit
mongodb.transactions_commits_ratesuccess, failcommits/s
mongodb.transactions_commits_duration_timecommitsmilliseconds

Per database​

These metrics refer to the database.

Labels:

LabelDescription
databasedatabase name

Metrics:

MetricDimensionsUnit
mongodb.database_collection_countcollectionscollections
mongodb.database_indexes_countindexesindexes
mongodb.database_views_countviewsviews
mongodb.database_documents_countdocumentsdocuments
mongodb.database_data_sizedata_sizebytes
mongodb.database_storage_sizestorage_sizebytes
mongodb.database_index_sizeindex_sizebytes

Per replica set member​

These metrics refer to the replica set member.

Labels:

LabelDescription
repl_set_memberreplica set member name

Metrics:

MetricDimensionsUnit
mongodb.repl_set_member_stateprimary, startup, secondary, recovering, startup2, unknown, arbiter, down, rollback, removedstate
mongodb.repl_set_member_health_statusup, downstatus
mongodb.repl_set_member_replication_lag_timereplication_lagmilliseconds
mongodb.repl_set_member_heartbeat_latency_timeheartbeat_latencymilliseconds
mongodb.repl_set_member_ping_rtt_timeping_rttmilliseconds
mongodb.repl_set_member_uptimeuptimeseconds

Per shard​

These metrics refer to the shard.

Labels:

LabelDescription
shard_idshard id

Metrics:

MetricDimensionsUnit
mongodb.sharding_shard_chunks_countchunkschunks

Alerts​

There are no alerts configured by default for this integration.

Setup​

Prerequisites​

Create a read-only user​

Create a read-only user for Netdata in the admin database.

  • Authenticate as the admin user:

    use admin
    db.auth("admin", "<MONGODB_ADMIN_PASSWORD>")
  • Create a user:

    db.createUser({
    "user":"netdata",
    "pwd": "<UNIQUE_PASSWORD>",
    "roles" : [
    {role: 'read', db: 'admin' },
    {role: 'clusterMonitor', db: 'admin'},
    {role: 'read', db: 'local' }
    ]
    })

Configuration​

File​

The configuration file name for this integration is go.d/mongodb.conf.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/mongodb.conf

Options​

The following options can be defined globally: update_every, autodetection_retry.

Config options
NameDescriptionDefaultRequired
update_everyData collection frequency.5no
autodetection_retryRecheck interval in seconds. Zero means no recheck will be scheduled.0no
uriMongoDB connection string. See URI syntax.mongodb://localhost:27017yes
timeoutQuery timeout in seconds.2no
databasesDatabases selector. Determines which database metrics will be collected.no

Examples​

TCP socket​

An example configuration.

Config
jobs:
- name: local
uri: mongodb://netdata:password@localhost:27017

With databases metrics​

An example configuration.

Config
jobs:
- name: local
uri: mongodb://netdata:password@localhost:27017
databases:
includes:
- "* *"

Multi-instance​

Note: When you define multiple jobs, their names must be unique.

Local and remote instances.

Config
jobs:
- name: local
uri: mongodb://netdata:password@localhost:27017

- name: remote
uri: mongodb://netdata:password@203.0.113.0:27017

Troubleshooting​

Debug Mode​

To troubleshoot issues with the mongodb collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
  • Switch to the netdata user.

    sudo -u netdata -s
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m mongodb

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.