docker-collectd-plugin
A Docker plugin for collectd using docker-py and collectd's Python plugin.
This uses the new stats API (moby/moby#9984) introduced by Docker 1.5.
The following container stats are reported for each container:
- Network bandwidth
- Memory usage
- CPU usage
- Block IO
The name of the container is used for the plugin_instance
dimension.
Install
- Checkout this repository somewhere on your system accessible by
collectd; for example as
/usr/share/collectd/docker-collectd-plugin
. - Install the Python requirements with
pip install -r requirements.txt
. - Configure the plugin (see below).
- Restart collectd.
Configuration
Add the following to your collectd config:
TypesDB "/usr/share/collectd/docker-collectd-plugin/dockerplugin.db"
LoadPlugin python
<Plugin python>
ModulePath "/usr/share/collectd/docker-collectd-plugin"
Import "dockerplugin"
<Module dockerplugin>
BaseURL "unix://var/run/docker.sock"
Timeout 3
</Module>
</Plugin>
Warning :
Adding a custom TypesDB
can raise a collectd error displaying :
Unhandled python exception in read callback: TypeError: Dataset gauge not found
To fix this you will have to explicitly add the path to the default types.db
file. For instance, on debian-jessie
, this will look like :
TypesDB "/usr/share/collectd/docker-collectd-plugin/dockerplugin.db"
TypesDB "/usr/share/collectd/types.db"
Requirements
- docker-py
- python-dateutil
- docker 1.5+