Collectd monitoring setup for Cobalt

A python plugin that sends Cobalt CVals to Collectd metrics collection daemon. The values are retrieved via WebSocket connection from Cobalt built-in Chrome DevTools protocol.

Graphs are available from any Collectd frontend, configuration for CGP is included.

Note: Currently the plugin only monitors one target, multi-target connection will be added soon.


There is a small installation shell script included, that is tested to work on Raspberry Pi Raspbian Jessie and desktop Ubuntu. To install and configure, simply run sudo ./ from the checkout directory.

If you intend to run collectd and the CGP web frontend on a Linux target like Raspberry Pi, please first copy the plugin directory to a convenient location on the target and run the install script from its shell.

Note that it is also possible to configure the plugin to connect from host to remote target like Pi, however this is useful if the rest of the collectd data streams are sent to a host in a networked configuration and not detailed here.

Note: The script also enables RRD and CSV data outputs, RRD is required for CGP to display the data and CSV is useful for post-processing.

After installation, CGP web dashboard will be available at http://localhost/CGP

Note: Although collectd is a system daemon that always runs, the data from the Cobalt plugin on the web dashboard will not appear before any data is actually sampled. To do this quickly after the installation, start a Cobalt instance and restart the collectd daemon ( see below ), otherwise data sampling frequency gets automatically throttled by collectd.


By default, collectd outputs log messages to syslog. If there is a configuration problem, restarting collectd daemon and checking syslog usually indicates the cause

    sudo service collectd restart
    tail -n 100 /var/log/syslog | egrep collectd

Verifying that Cobalt DevTools is listening can be done by shell command

   netstat -an | egrep "^tcp .*LISTEN"

If the configured port ( 9222 by default ) is listening, the connection should work. To manually verify that the plugin can connect to WebSocket and retrieve data, simply run python if connecting to localhost or python --host <IP> --port 9222 if connecting to a remote target.