To understand the collection agents in Ceilometer and make the separation of those agents from the main repo into their own most effective it is important to have a clear understanding of they work and what they do and the extent to which they can be decomposed.
Starting from this mailing list posting by me we can use that as a guideline for creating a thing which, as simply as possible:
- loads config to know what kinds of things it should poll
- loads config to know how to discover the instances of those things
- polls properly and dumps samples
This, notably, leaves out doing transformations as currently happens in the existing polling agents that have an integrated pipeline because what we want to have happen is that something else does that. The open question is:
- standalone transformation engine
- drop notifications out of the pollsters and let the notification agent pick em up and do any transformations
The latter allows for less duplication but there's also a case to be made that the notification should not be doing transformations.
For incremental progress the latter may be better first step.