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.
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
Heartbeat
Get Capabilities
Blacklist resources/meters
Buffer
Time Sync
get the timing information for the agent and do aTiming sync if required.
Authentication
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