Ceilometer/blueprints/support-for-advance-service-billing-models

Synopsis
The roll-out of additional services (PaaS, for example) has highlighted the need for a metering architecture that enables advanced billing models not currently handled in the Ceilometer collectors. Specific use cases include direct Nova billing, Windows instance and PaaS service controller-owned Nova instances (i.e. controller vs. user tenant id), PaaS application billing, and variations on quantity and overage billing. Adding support for these models will likely impact collection, data storage, and access control methodologies.

General Notes/Comments
1. Usage processing must incorporate the concept of status since this can affect the billable state of the component being monitored. As an example, a VM may be running and generate usage records, but be in an error state. Depending on the billing policy of the provider, this may result in the user not being charged for that period.

2. Need to be able to incorporate additional metadata that is required to do bill processing: service location, service type, account hierarchy (beyond OpenStack tenant concept)

Questions
For the purpose of kick-starting the conversation, here are a few questions that we're evaluating and would value some candid discussion around:
 * 1) Does the current Ceilometer collection mechanism (generally: central agent+plugin) provide a sufficient framework to build out the variety of meters required for these use cases?
 * 2) What are the implications for storing the collected data, in terms of the number of elements collected and the ability to relate data from across multiple tenants/projects/resources?
 * 3) What are the specific obstacles to accessing the Cinder/Quantum/Nova/RedDwarf notifications and leveraging those for billing purposes?

© Copyright 2013 Hewlett-Packard Development Company