Collectd plugin and configuration for Measurement Lab servers.
Python Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
disco
export
fake-packages
hooks
monitoring
plugin
site-packages/mlab
system/vsys
third_party/docstringchecker
viewer
.gitignore
.pylintrc
.travis.yml
DEBUG.md
LICENSE
Makefile
README.md
build
collectd-mlab.spec
requirements.txt
runtests
test-requirements.txt

README.md

collectd-mlab

Build Status Coverage Status

The collectd-mlab package provides a collectd plugin and associated scripts for continuous monitoring and periodic export of metrics. This package is designed to run in the M-Lab experiment environment.

The primary contents are:

  • config/mlab.py -- collectd-python plugin, which harvests vserver-specific resource usage.

  • system/vsys/vs_resource_backend.py -- vsys backend, which reports vserver-specific information not directly available to the experiment environment.

  • export/mlab_export.py -- metric export script, which periodically converts RRD metrics to JSON.

  • monitoring/check_collectd_mlab.py -- meta-monitoring nagios plugin, which verifies the resource monitoring system is working well.

  • *_test.py -- unit tests for all the above.

  • essential configuration and cron scripts to integrate everything.

Packages

Three packages are created by make rpm.

  • collectd-mlab -- the primary package that should be installed in the mlab_utility slice.

  • collectd-mlab-vsys -- The vsys package includes the vs_resource_backend script and nagios plugin. This should be installed in the host context.

  • collectd-mlab-devel -- A pseudo package that includes the list of required packages for developing this plugin.

Creation & Development

The collectd-mlab package was created to run in a CentOS 6 environment. Some adaptation will be needed to build or test in another environment.

Style

Python files should follow the Google Python Style Guide:

https://google-styleguide.googlecode.com/svn/trunk/pyguide.html

Some exceptions are embedded in the collect-mlab source or encoded in .pylintrc.

If you find examples where this is not the case, please report it as a bug.

Adding New Metrics

To add new metrics to DISCO, update the following files:

  • disco/models.yaml - this file defines the set of SNMP metrics that collectd will sample.
  • plugin/types.db - this file defines the RRD parameters for the SNMP metrics declared in models.yaml. These values control the min / max values possible, the metric type (e.g. COUNTER or GAUGE).
  • export/export_metrics.conf - this file controls how RRD file names are mapped to 'metric' names when disco exports the RRD data to JSON.