IBM SmartCloud Provisoning comes with an idea of low complexity, low administration and ease of use.
Keeping these messages in mind, I was thinking at how to extract metering information. I had in mind something easy, doable also by people who definitely do not want to invest in programming, that does not need any modification to database tables to store historical data.
So I had a look at the available IBM SmartCloud Provisioning interfaces and I just found a couple of command line commands that could help me achieving my goal:
iaas-describe-resources-inuse-by-access and iaas-describe-accesses-by-user
The first command displays the number of images, cores and the amount of memory and disk space in use by a specific access ID. So this commands shows the key measures that in cloud computing are usually taken into consideration for usage and accounting.
The second command shows the relationship between access IDs and user IDs. This mapping helps in building metering information per user and not per access ID. In a simple environment the map is 1-1, but for example you may have the same user accessing more VM regions and so having multiple access IDs associated.
Given these two command, it is pretty straightforward to setup a couple of cronjobs/periodic tasks (depending if you would like to do it on Linux or on Windows) that with a predefined sequence ( for example once a hour) will extract this data and store it in a temporary file.
You can then have a another cronjob/periodic task that sums up all these information daily, per user, maybe adding your specific rate codes. If you choose to store this data for example in a CSV file, then you can easily import it into a reporting engine.