No activity today, make something!
cdent-rhat CeilometerExtractAlarming

20150327141449 cdent  

I've been speculating about the possibility of extracting the alarming subsystem from the ceilometer core repo into a repo of its own1. In theory this ought to be possible because:

  • The evaluator interacts with the metering data over the API.
  • The alarm storage system is separate from the meter and event storage systems.

Obviously it would be more complicated than that, but at a high level seems okay.

Why would it be worthwhile to do such a thing?

  • Comprehending the Ceilometer code base is very challenging simply from the standpoint of it being huge. Breaking it into constituent but independent parts would make it easier to inspect and understand.
  • When things are in smaller parts it is easier to identify, strengthen and test the boundaries and the contracts represented at the boundaries.
  • The single responsibility principle is a well known and respected rule of thumb -- beyond the context of OO -- because it has been shown to make many things easier.
  • Loosely coupled smaller pieces are easier to independently evolve and are easier to either replace or use with other things.
  • Documentation would be easier for authors to manage and users and deployers to find.
  • It would provide an opportunity for the code to get a much needed once over to make it better.
  • It makes it easier for people to use just parts of the ceilometer functionality.

Issues

  • One major issue will be the data migration path for existing installations.

  1. The same thing could be considered for the polling agent.