MongoDB Plugin

MongoDB is an open source, NoSQL, document-oriented database system. For more information visit mongodb.org.

Discovery

Even if the MongoDB plugin is not configured, Stackdriver Monitoring will discover MongoDB services running in your Cloud Platform project by:

  • searching instance names for mongodb
  • checking for ports opened to 27017, 27018, or 27019 via firewall rules

The services discovered are displayed on the MongoDB Services page in the Resources menu. After you install the monitoring agent and the MongoDB plugin on your instances, Stackdriver Monitoring populates the MongoDB Services page with inventory and metrics.

Configuring Stackdriver Monitoring to monitor MongoDB

After you install the monitoring agent, use the following instructions to configure the MongoDB plugin on your instances.

Prerequisites

For a MongoDB database with access roles (configured to run in "auth" mode) you must configure a user with the clusterMonitor role on the admin database. This user and password are referred to as STATS_USER and STATS_PASS in the following config file.

In "noauth" mode, any program that is able to connect to the MongoDB server can run arbitrary queries and commands on it. Therefore, "noauth" mode is generally considered less safe. When your database runs in "noauth" mode, you don't need any credentials in the plugin configuration file.

Enabling the MongoDB monitoring plugin

If you want to monitor a cluster of multiple MongoDB servers (one primary and one or more secondaries), the monitoring agent should be installed on each node in the cluster.

On your VM instance, download mongodb.conf from the GitHub configuration repository and place it in the directory /opt/stackdriver/collectd/etc/collectd.d/:

(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/mongodb.conf)

When running MongoDB in "auth" mode, you will need to edit the downloaded configuration file and replace STATS_USER and STATS_PASS with the above username and password, respectively.

After adding the configuration file, restart the monitoring agent by running the following command:

sudo service stackdriver-agent restart

Information on other plugin configuration options can be found at collectd.org.

What is monitored

The MongoDB plugin monitors the following metrics:

  • Current Connections (count): The number of active connections to MongoDB.
  • Global Lock Hold Time (ms): How long the global lock has been held.
  • Mapped Memory (bytes): The amount of mapped memory used by MongoDB. This is roughly equivalent to the total size of your database, due to the use of memory mapped files.
  • Virtual Memory (bytes): The amount of virtual memory used by MongoDB. If the virtual memory size is significantly larger than mapped memory size (e.g. 3 or more times), this may indicate a memory leak.
  • Resident Memory (bytes): The amount of resident memory that is used by MongoDB. This is the amount of RAM being physically used by the database.
  • Operations [command, delete, getmore, insert, query, update] (count/s): The number of [command, delete, getmore, insert, query, update] operations executed per second.
  • Database [Collection, Index, Object, Extents] Count (count): The number of [collections, indices, objects, extents] currently in the database.
  • Database Data Size (bytes): The size of the data currently in the database.
  • Database Storage Size (bytes): The size of the storage currently allocated to the database.
  • Database Index Size (bytes): The size of the index for the database.

Send feedback about...

Stackdriver Monitoring