14:04:09 #startmeeting publiccloud_wg 14:04:09 Meeting started Thu Jul 18 14:04:09 2019 UTC and is due to finish in 60 minutes. The chair is tobberydberg. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:04:11 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:04:14 The meeting name has been set to 'publiccloud_wg' 14:04:33 Agenda found at https://etherpad.openstack.org/p/publiccloud-wg 14:04:47 Simple agenda today, one topic :-) 14:06:00 hi 14:06:17 Hi 14:06:44 welcome folks 14:07:04 meeting notes for this topic is located here: https://etherpad.openstack.org/p/publiccloud-sig-billing-implementation-proposal 14:07:25 Short recap first maybe ... 14:07:40 yep, needed, long time no see :D 14:07:50 would be great :) 14:07:51 What we said last time was to do a metric / collection method mapping 14:08:34 We have identified some metrics that we need to collect, as well as a few different suggestions of collection methods 14:09:46 Just created a google spreadsheet for that purpose 14:09:47 https://docs.google.com/spreadsheets/d/15HtA15Lrf8UhkPqSTzM4Nan08aEUDQmHUl8XS7T2KO0/edit#gid=0 14:10:00 haven't had the time to fill in any data unfortunate 14:11:30 The thought was to complete this mapping so we get a clear overview which metric can be collected with which method ... this to be able to make some good decisions for implementation 14:12:23 (you correct me if I'm out flying here:-) ) 14:13:51 So, we took one step back to analyze the situation a little bit 14:13:56 so the spreadsheet is here to name all the metrics we want, and to check if we can have them regarding each collector ? 14:14:16 yes, that was my thought 14:15:02 To fins a solution that will cover them all, I'm pretty sure we will end up with more than one collector tool/collection method 14:15:31 definitely 14:15:36 I might be totally off in my thinking though, so you correct me if I'm wrong :-) 14:16:47 I think an "SQL collection" column may also be needed :) several cloudkitty users did that 14:17:31 Feel free to add 14:17:38 for example for octavia loadbalancers, they directly scrapped the SQL database and pushed metrics into gnocchi 14:18:18 Personally, IF that is possible to avoid and be collected in any other way that is preferable 14:18:53 of course, adding these metrics to ceilometer or monasca would be way better, but it was the fastest solution for them 14:18:56 I'm happy if we can avoid direct db queries ... but maybe that isn't possible 14:19:08 understood 14:19:42 +1, scrapping DB is a way to go but not the best one, even if it can be handled by querying slaves to avoid impacting the production 14:21:38 ncastele: agreed. For pure-openstack, I like how ceilometer listens to rabbitMQ notifications 14:21:47 Do you all feel this is the way to go initially? 14:21:53 the mapping stuff that is 14:22:23 tobberydberg: yes 14:22:27 yes 14:22:50 yes 14:23:05 Ok, cool 14:23:36 scrapping DB is the simplest/quickest way to go, but if we can rely on other components (by relying I mean 100% sure it does the job and we do not risk to lose data), then it's a better way to go 14:23:43 If we all help out with this mapping we can probably have a good initial view until next meeting 14:24:26 tobberydberg: I'll add stuff on monday, some customers sent us very detailed lists of the metrics they wanted to rate 14:24:30 reliability is important I would say :-) 14:24:38 cool peschk_l 14:25:09 I mean, neutron deletes everything from db after existence ... har to rely on that :-) 14:26:10 I believe pretty much every "core" projet does this, except for nova and maybe keystone 14:26:30 You are probably right about that 14:27:16 that's a big plus for the notification system, even resources that are only up for a few seconds are taken into account 14:27:31 +1 14:28:16 What are the next steps after that mapping? Don't want to rush but maybe good to be able to start thinking about that as well... 14:29:02 collection method/s will be a big key, but also backed storage for this and how to be able to query this in a real time fashion 14:30:26 For storage: cloudkitty uses influxDB, and I'm working on an ElasticSearch driver for ck 14:31:25 from my experience, a flexible backend with support for complex aggregations is important 14:31:34 I'll add a section for that in the etherpad 14:31:40 +1 14:32:15 we are running thousands of VMs here, we need the backend to be extensible 14:32:27 we used SQL or gnocchi in the past, and both caused problems 14:33:39 and I believe ceilometer used MongoDB as a backend several releases ago, but it had terrible performance 14:34:59 ncastele: agreed, extensibilty is also a key point 14:35:43 in some european countries, companies may be required to store unaggregated billing data for up to 10 years 14:36:42 yea, I think the raw data will be important for some companies as well 14:36:57 yea, mongo was not super :-) 14:37:36 raw data in the past can be stored in a cold storage, I don't think we need it to be quickly queryable after a couple of months 14:38:06 +1 14:38:23 totally agree 14:38:50 but even a few months can be a huge amount of data, especially if you want real-time precision 14:38:56 yup 14:40:00 speaking of that, does anyone have an idea of a datamodel for that ? 14:41:17 ck has a collect period which can be configured (1h hour by default), but when this period becomes too small, there is just too much data 14:41:34 (we're storing one point per resource per collect period) 14:42:08 Haven't thought about the details around that 14:42:55 BUT .... per second (for resources measured in time) precision will be a requrement 14:43:01 gnocchi's model is great for this kind of issue because metadata is stored only once (+ updates), but aggregation queries are not very flexible 14:43:54 tobberydberg: yes, that's the impression we had at the summit 14:44:06 that doesn't say that data must be stored every second though 14:44:35 everybody wants do to FaaS, so at least second-precision is required 14:45:01 +1 14:45:27 This is why we need to scope the metrics we need, for which purpose, and challenge the collect period and how we store them 14:47:28 maybe a model similar to gnocchi's, but stored in a document-oriented DB ? it would avoid metadata duplication, and we could store exact creation, update and deletion timestamps 14:47:51 (or maybe it is too soon to think about this) 14:48:16 would be good to avoid duplication of that, agreed, and that sounds resonable to me 14:48:56 hehe, maybe ... but good to have something to think about a little in the back of the head ;-) 14:49:44 mnaser might have had some thoughts around this earlier ... you correct me if I'm wrong 14:52:23 if mnaser thoughts are still available on eavesdrop or somewhere, I'd love to read them :) 14:52:39 oh, something else that caused us a few headaches: users WILL want/need to modify existing rating rules 14:52:56 All meetings have been recorded ... 14:53:37 I might be wrong there though, been some weeks since first meetings :-) 14:53:54 the problem is that you can't just compute the final price on-the-fly when an API request is made 14:54:04 right ... I'm pretty sure you are right about that 14:54:09 (all right, I'll try to find them then :) ) 14:54:53 what do you mean by that peschk_l ? 14:54:57 In what way? 14:56:15 fox example, if a company decides that for internal billing, metric X should be taken into account for the current month 14:56:37 or that the price for metric Y was not right 14:57:16 the data collected since the beginning of the month will have to be modified 14:57:26 aha, ok ok 14:58:33 Time flies...almost up for today 14:58:57 yes 14:59:07 so there are two possibilities: either the price is calculated on collection, and stored along with the qty (that's what ck does). In that case, you can have exact invoices in a few seconds through the API, but you need to plan for data updates 14:59:11 do we agree we have a look on the spreadsheet to fulfill metrics 14:59:28 ncastele: +1 14:59:31 +1 14:59:35 Short summary ... if we all can help out identifying the metrics and collections, as well as suggestions for backend storage until next meeting, that would be super 14:59:42 price should be computed through another brick/layer 14:59:59 tobberydberg: agreed 15:00:09 agreed 15:00:40 sounds good! 15:01:11 Thanks a lot for today folks! Happy we are moving forward in these discussions :-) 15:01:54 tobberydberg: thanks for organizing :-) 15:01:56 Leaving for vacation here tomorrow, but I hope that I will be able to make every other thursdays for this meeting to keep this going 15:02:11 See you all in 2 weeks :-) 15:02:21 see you, thanks again for the meeting 15:02:41 #endmeeting