MongoDB

image0

MongoDB is a popular cross-platform document-oriented database. Classified as a NoSQL database, MongoDB avoids the traditional table-based relational database structure in favor of JSON-like documents with dynamic schemas, making the integration of data in certain types of applications easier and faster.

The Librato Agent allows you to easily monitor MongoDB’s health and performance. We use a custom collectd plugin to gather metrics from your running MongoDB instance(s).

Create the Integration

The MongoDB integration depends on the Librato Agent. If you haven’t already, you will first need to install the Librato Agent. Once this is complete, select the MongoDB icon in the integrations catalogue.

image1

Toggle the Enabled switch to activate the MongoDB integration on your Librato account and create the preconfigured MongoDB space.

image2

At this point any MongoDB metrics associated with this integration will be allowed through your Librato Agent service-side filters.

Plugin Configuration

Librato Agent provides a default /opt/collectd/etc/collectd.conf.d/mongodb.conf configuration file, which must be edited to suit your environment.

<LoadPlugin python>
  Globals true
</LoadPlugin>

<Plugin python>
  ModulePath "/opt/collectd/share/collectd"
  ModulePath "/opt/collectd/share/collectd/pymongo.egg"

  Import "collectd-mongodb"

  <Module "collectd-mongodb">
    # Host "127.0.0.1"
    # Port "27017"
    # User "username"
    # Password "password"
    # Database "admin"
    # Name "mongodb"
  </Module>
</Plugin>

If necessary, update Host and Port to the host and port corresponding to your MongoDB instance. If authenication has been enabled for your MongoDB deployment, set User and Password to a user who has access to the admin database. Use the Name configuration parameter to set the plugin instance for the reported metrics, which is mongodb by default.

By default, the plugin will gather and report storage metrics for the admin database using the dbstats command. You can use the Database configuration parameter to instruct the plugin to report storage metrics on other databases. If specified, Database must be a space-separated list of database names, starting with admin. For example, to report storage metrics for the database named orders, configure Database as shown below.

Database "admin" "orders"

Note: You must restart the agent after any changes to your Librato Agent configuration files.

$ sudo service collectd restart

At this point you should begin seeing librato.mongodb.* metrics in your Librato account.

MongoDB Workspace

Visit your MongoDB preconfigured spaces to observe your new metrics as they stream in.

mongodb_space

Use our dynamic source field at the top to filter your view to a specific MongoDB instance or subset of metric sources. For example, to isolate the view to the MongoDB instance associated with the name production, use a dynamic source value of *.production.

FAQ

For specific answers to Librato Agent questions check out our Librato Agent FAQ.

Let us know what you think when you take this for a spin. We would love to incorporate your feedback and any new dashboards you design into the ongoing development of this key server monitoring technology.