This is how the currently deployed public clouds collect usage data.
CloudStack providing simple API calls that allow you to request usage for any time period is much nicer. It can interface more directly with a billing system.
It's just one of the examples of OpenStack seeming to be kind of "halfway there", whereas CloudStack is much closer to being ready to go.
There is also the (new) Ceilometer project which sounds like it implements what you're looking for:
https://github.com/stackforge/ceilometer
It is new, so it's probably not as mature as other options, but it has had a lot of activity recently.
But all of them, from my perspective, were a result of OpenStack just not being fully baked and ready to deploy in a production environment. It needed more development on our part in order to get it to where we'd need it to be compared to CloudStack.
It was always a case of missing features / functionality rather than something being broken / crappy, at least.