<p>+1 for both of these use cases</p>
<div class="gmail_quote">On Oct 24, 2012 5:06 PM, "Dan Dyer" <<a href="mailto:dan.dyer00@gmail.com">dan.dyer00@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<font face="Helvetica, Arial, sans-serif"><big>Based on a discussion
with Doug at the Summit, I would like to propose a couple of new
use cases for Ceilometer. As background, up until now, the usage
data that Ceilometer collects could be considered atomic in the
sense that everything needed to understand/process the
information could be contained in a single generated event. We
have identified some use cases that will require additional meta
data about the source and/or type of the event so that later
processing can be performed. <br>
<br>
Use Case 1<br>
Service Owned Instances<br>
There are a set of use cases where a service is acting on behalf
of a user, the service is the owner of the VM but billing needs
to be attributed to the end user of the system.</big><small> </small><big>This
</big><big>scenario drives two requirements:<br>
1. Pricing is similar to base VM's but with a premium. So the
type of service for a VM needs to be identifiable so that the
appropriate pricing can be applied.<br>
2. The actual end user of the VM needs to be identified so usage
can be properly attributed<br>
<br>
As an example, in some of our PAAS use cases, there is a service
controller running on top of the base VM that maintains the
control and and manages the customer experience. The idea is to
expose the service and not have the customer have to (or even be
able to) manipulate the virtual machine directly. So in this
case, from a Nova perspective, the PAAS service owns the VM and
it's tenantID is what is reported back in events. The way we
resolve this is to query the service controller for meta data
about that instances they own. This is stored off in a separate
"table" and used to determine the real user at aggregation time.<small>
</small></big></font><font face="Helvetica, Arial, sans-serif"><big>Note
that in theory you could do this in the agent as part of
collection, but we have found that this is very expensive and
scales best if the actual substitution is delayed until the
latest point possible (which at that point potentially means
there are less records to process or can be better handled with
parallel processing using something like MapReduce.</big></font><font face="Helvetica, Arial, sans-serif"><big><small><font face="Helvetica, Arial, sans-serif"><big> From a billing
perspective these instances will have unique pricing (i.e.
premium on top of the base VM cost). </big></font></small>Part
of the aggregation process is to substitute the billable account
for the service account and identify the service type so that
proper billing can be applied. We would like to see the
Ceilometer data model expanded to store this kind of metadata.<br>
<br>
<br>
Use Case 2<br>
Multple Instances combine to make a billable "product/service"<br>
In this use case, a service might consist of several VM's, but
the actual number does not directly drive the billing. An
example of this might be a redundant service that has a primary
and two backup VM's that make up a deployment. The customer is
charged for the service, not the fact that there are 3 VM's
running. Once again, we need meta data that is able to describe
this relationship so that when the billing records are
processed, this relationship can be identified and billed
properly.</big><br>
<br>
<big>Both of these use cases point to a general need to be able to
store meta-data that will allow the usage processing logic to
identify relationships between VM's and provide additional
context for determining billing policy.</big></font><br>
<br>
<font face="Helvetica, Arial, sans-serif"><big>Dan Dyer<br>
HP Cloud Services<br>
aka: DanD</big></font><br>
</div>
<br>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br></blockquote></div>