On 04/30/2012 11:39 PM, Doug Hellmann wrote: > > > On Mon, Apr 30, 2012 at 3:43 PM, Loic Dachary <l...@enovance.com > <mailto:l...@enovance.com>> wrote: > > On 04/30/2012 08:03 PM, Doug Hellmann wrote: >> >> >> On Mon, Apr 30, 2012 at 11:43 AM, Loic Dachary <l...@enovance.com >> <mailto:l...@enovance.com>> wrote: >> >> On 04/30/2012 03:49 PM, Doug Hellmann wrote: >>> >>> >>> On Mon, Apr 30, 2012 at 6:46 AM, Loic Dachary <l...@enovance.com >>> <mailto:l...@enovance.com>> wrote: >>> >>> On 04/30/2012 12:15 PM, Loic Dachary wrote: >>> > We could start a discussion from the content of the following >>> sections: >>> > >>> > http://wiki.openstack.org/EfficientMetering#Counters >>> I think the rationale of the counter aggregation needs to be >>> explained. My understanding is that the metering system will be able to >>> deliver the following information: 10 floating IPv4 addresses were >>> allocated to the tenant during three months and were leased from provider >>> NNN. From this, the billing system could add a line to the invoice : 10 >>> IPv4, $N each = $10xN because it has been configured to invoice each IPv4 >>> leased from provider NNN for $N. >>> >>> It is not the purpose of the metering system to display each >>> IPv4 used, therefore it only exposes the aggregated information. The >>> counters define how the information should be aggregated. If the idea was >>> to expose each resource usage individually, defining counters would be >>> meaningless as they would duplicate the activity log from each OpenStack >>> component. >>> >>> What do you think ? >>> >>> >>> At DreamHost we are going to want to show each individual resource >>> (the IPv4 address, the instance, etc.) along with the charge information. >>> Having the metering system aggregate that data will make it >>> difficult/impossible to present the bill summary and detail views that we >>> want. It would be much more useful for us if it tracked the usage details >>> for each resource, and let us aggregate the data ourselves. >>> >>> If other vendors want to show the data differently, perhaps we >>> should provide separate APIs for retrieving the detailed and aggregate data. >>> >>> Doug >>> >> Hi, >> >> For the record, here is the unfinished conversation we had on IRC >> >> (04:29:06 PM) dhellmann: dachary, did you see my reply about counter >> definitions on the list today? >> (04:39:05 PM) dachary: It means some counters must not be >> aggregated. Only the amount associated with it is but there is one counter >> per IP. >> (04:55:01 PM) dachary: dhellmann: what about this :the id of the >> ressource controls the agregation of all counters : if it is missing, all >> resources of the same kind and their measures are aggregated. Otherwise only >> the measures are agreggated. >> http://wiki.openstack.org/EfficientMetering?action=diff&rev2=40&rev1=39 >> <http://wiki.openstack.org/EfficientMetering?action=diff&rev2=40&rev1=39> >> (04:55:58 PM) dachary: it makes me a little unconfortable to define >> such an "ad-hoc" grouping >> (04:56:53 PM) dachary: i.e. you actuall control the aggregation by >> chosing which value to put in the id column >> (04:58:43 PM) dachary: s/actuall/actually/ >> (05:05:38 PM) ***dachary reading >> http://www.ogf.org/documents/GFD.98.pdf >> (05:05:54 PM) dachary: I feel like we're trying to resolve a non >> problem here >> (05:08:42 PM) dachary: values need to be aggregated. The raw input >> is a full description of the resource and a value ( gauge ). The question is >> how to control the aggregation in a reasonably flexible way. >> (05:11:34 PM) dachary: The definition of a counter could probably be >> described as : the id of a resource and code to fill each column associated >> with it. >> >> I tried to append the following, but the wiki kept failing. >> >> Propose that the counters are defined by a function instead of being >> fixed. That helps addressing the issue of aggregating the bandwidth >> associated to a given IP into a single counter. >> >> Alternate idea : >> * a counter is defined by >> * a name ( o1, n2, etc. ) that uniquely identifies the nature of >> the measure ( outbound internet transit, amount of RAM, etc. ) >> * the component in which it can be found ( nova, swift etc.) >> * and by columns, each one is set with the result of >> aggregate(find(record),record) where >> * find() looks for the existing column as found by selecting with >> the unique key ( maybe the name and the resource id ) >> * record is a detailed description of the metering event to be >> aggregated ( >> http://wiki.openstack.org/SystemUsageData#compute.instance.exists: ) >> * the aggregate() function returns the updated row. By default it >> just += the counter value with the old row returned by find() >> >> >> Would we want aggregation to occur within the database where we are >> collecting events, or should that move somewhere else? > I assume the events collected by the metering agents will all be archived > for auditing (or re-building the database) > http://wiki.openstack.org/EfficientMetering?action=diff&rev2=45&rev1=44 > <http://wiki.openstack.org/EfficientMetering?action=diff&rev2=45&rev1=44> > > Therefore the aggregation should occur when the database is updated to > account for a new event. > > Does this make sense ? I may have misunderstood part of your question. > > > I guess what I don't understand is why the aggregated data is written back to > the metering database at all. If it's in the same database, it seems like it > should be in a different "table" (or equivalent) so the original data is left > alone. In my view the events are not stored in a database, they are merely appended to a log file. The database is built from the events with aggregated data. I now understand that you (and Joshua Harlow) think it's better to not aggregate the data and let the billing system do this job. > > Maybe it's time to start focusing these discussions on user stories? > I agree. Would you like to go first ?
Cheers -- Loïc Dachary Chief Research Officer // eNovance labs http://labs.enovance.com // ? l...@enovance.com ? +33 1 49 70 99 82
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp