14:00:38 #startmeeting cloudkitty 14:00:39 Meeting started Mon Jan 25 14:00:38 2021 UTC and is due to finish in 60 minutes. The chair is rafaelweingartne. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:40 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:00:42 The meeting name has been set to 'cloudkitty' 14:00:44 Hello guys 14:00:52 Roll count 14:01:02 o/ 14:03:06 Hi! 14:03:57 :) 14:05:30 #topic Review priorities 14:05:40 Do you guys have some review priorities? 14:05:51 At least, from my side, I do not have any so far 14:06:28 I'll look at the policy patch, it's one of the priorities for this cycle. 14:07:45 I can do testing of changes to the v2 API once I wrap my head around how v2 API works. :) 14:08:17 I am mistaken, I would have some priorities 14:08:19 #link https://review.opendev.org/c/openstack/cloudkitty-specs/+/770928 14:08:26 #link https://review.opendev.org/c/openstack/cloudkitty-specs/+/771513 14:08:32 Did you have time to check them? 14:09:08 Yeah, good shout on this one, rafaelweingartne. 14:09:43 As soon as I get your feedback on them there, and if we are ok with them. I could create the patches 14:09:52 and maybe we can add these to Wallaby release as well 14:11:29 There would need to be a change in database migration between releases, I imagine. 14:11:50 exactly 14:12:46 and specially for the state field deprecation 14:13:43 I'm totally onboard with this change and I feel like the name you suggested describes this column way better. 14:14:41 (but I've already given my +1 to this one) 14:15:20 I need to check the code but I think the last_processed_date is OK, although I'll have comments 14:15:24 Thanks for the review in both of them 14:15:39 priteau: I am open to suggestions 14:15:45 The other one I am not so sure, I was hoping the fetcher could do something automatic 14:15:51 the last_processed_date was just what I came up with 14:16:10 priteau: we discussed that, but it is not so simple 14:17:04 There are some implication if we do that automatically, and we could always miss data, or create a situation that the system could be exploited 14:20:45 It might be better to have an option to manually set projects as inactive rather than no such option at all. 14:22:51 OK, looking at the Gnocchi fetcher code, it is based on resource.list(). I thought that it was looking at metrics. 14:24:34 Your approach may be appropriate then 14:27:42 Thank you guys for your reviews! 14:28:03 I will open for general questions and topics that people might have. 14:28:07 #topic AOB 14:29:54 Do you want to discuss the mutators? 14:30:19 If you guys want, we do have time for it 14:31:24 Sure. Is there anything you want to discuss? 14:32:10 There are no changes yet but I belive we've agreed to going the "function mappings" route for now. 14:33:04 Unless you guys are comfortable with using eval() with custom strings for defining mutators. 14:33:46 I think it's best to avoid if we can get away with something well defined 14:34:24 I agree. 14:35:48 Even for ease of use. Get the function a bit wrong and you get exceptions in CloudKitty 14:36:14 However mapping allowed strings to allowed mutators is already done in the code. 14:36:57 Granted, we could move all the mutators to a dict and add more of them, especially the negating mutator. 14:38:56 Or maybe we should let users chain basic mutators together so they can create more complex functions this way? 14:39:41 Do we have use cases for that? 14:39:48 If not, I would not go down that road 14:41:26 Well, the main usecase is the Prometheus one. 14:42:50 Where 0 in openstack_nova_server_status denotes instances that are active. 14:43:38 hmm for chained mutators? 14:44:40 Well, if we let users chain mutator they could chain NOT with the NUMBOOL for this. :) 14:44:49 I mean, is there a current use case for Prometheus where one needs to retrieve some data, and then pass it through different mutators? 14:44:59 I see 14:46:04 But the same can easier if we introduce a "NOT NUMBOOL" mutator 14:48:50 which returns 1 when the measurement is a zero and 0 otherwise. 14:49:35 I see 14:49:52 we do not actually use mutators, but I can see where you are using it 14:49:53 But then what if someone wants to bill shut down instances but not these in error state? 14:50:15 We use the dynamic pollster for that 14:50:22 we map the states to either 0 or 1 14:50:44 and then we create a metric on Gnocchi with these, and this metric that has either 0 or 1 is rated by Cloudkitty 14:50:55 we do this for octavia, VPN, and other resources as well 14:51:09 Ah, nice! 14:51:24 That is why we do not use the mutators 14:51:38 CloudKitty receives that data already prepared and processed, and it only has to rate it 14:52:36 We do know that Ceilometer removed the binary that collection pollsters, but the dynamic pollsters is generic :) 14:52:58 I've no idea if it's possible to tell Prometheus to convert values it returns to bools before submitting them but I'll check. 14:52:59 therefore, the operators create their own using YAML 14:53:41 data collection pollsters* 14:56:20 guys, I gotta go now 14:56:34 Thank you guys for participating. Have a nice week. 14:56:39 Thanks both 14:56:43 Bye! 14:56:44 If you need anything from me, just ping 14:56:54 #endmeeting