As a system Ceilometer violates the DRY principle in a pretty horrible way: It keeps, within itself, all kinds of knowledge about the projects that it monitors and measures. This is a technical and social error which makes it difficult for the system to evolve quickly and address its own shortcomings because it is constantly looking to add and maintain support for those other tools. Ceilometer is already stuctured to make this way of doing things not a requirement. We should considering pushing functionality back to the monitored for the sake of both sides of the arrangement. Areas to consider: - We now have declarative meters in yaml that could be broken up into files kept by the projects. - Pollster plugins and notification listeners are stevedore plugins. These do not need to live in the ceilometer namespace, thus just need to use the right entry points. These kinds of changes mean that the projects will be able to fix issues more quickly and have greater control over data that is published. It will also make it more clear for end users that they have the power to add meters and plugins under their own steam without needing to wait on the highly frictioned OpenStack process.
Pros: - Projects can manage and maintain their own definitions - less code in ceilometer to worry about - less review and maintainance time for ceilo devs Cons: - Coordinating effort with other projects and getting them on board