Page tree
Skip to end of metadata
Go to start of metadata

This is a WIP

The suggested Abstraction Layer requires an extension to the collectd internal protocol to allow for plugins to be dynamically added/removed.


The idea behind this wiki is to look at the use cases for an Agent REST API, in this case collectd, to help define and implement a REST API that will allow us to dynamically do the following with collectd:

* Enable/disable/or restart resource monitoring 

* Get values/notifications

* Get capabilities

* Get the list of metrics being collected

* Flush the list of metrics

* Set thresholds for resources

* Blacklist resources

* Support some sort of buffering mechanism, and should be able to configure

* Get the timing information for the agent and do aTiming sync if required.

Phase 1 in the diagram below represents the current collectd implementation. Phase 2 is what we want to enable.


Enable Plugin

Disable Plugin

Restart/Reload Plugin

Reconfigure Plugin


Get Values


See Cache contents

Get the list of metrics being collected

Flush Cache

Get Notifications


Get Capabilities


Blacklist resources/meters





Time Sync

 get the timing information for the agent and do aTiming sync if required.



For OpenStack Integration – keystone will be used for Authentication


Upgrade/Reconfiguration today without changes to collectd

Upgrade or reconfiguration changes to the collectd daemon on the fly can be done today through the use of containers - whereby you would always spin up collectd in a container context, and when you want to reconfigure the agent, you spin up a new instance of collectd with the new configuration and you terminate the older instance of collectd (in the other container). some consideration needs to be given for configuration of the collectd socket between instances and other configurable parameters that might be shared between multiple instances 

  • No labels


  1. Can the the API idea be expanded to include a message-bus?

    It would be nice to call collectd function as a collector in closed-loop

    control design.