17:05:35 #startmeeting Rally 17:05:36 Meeting started Tue Feb 18 17:05:35 2014 UTC and is due to finish in 60 minutes. The chair is boris-42_. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:05:37 miarmak ping 17:05:38 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:05:40 The meeting name has been set to 'rally' 17:05:49 Hi everybody 17:05:54 Hi 17:05:55 seems like I have some issues 17:06:06 Hi one more time hughsaunders rediskin miarmak julienvey stannie tnurlygayanov tzabal jroovers|afk jaypipes mkoderer 17:06:36 boris-42_ hi 17:06:41 nkhare ping 17:07:03 boris-42_, pong 17:07:42 * boris-42_ writing todays topics 17:08:39 Hi 17:10:43 Okay todays topics 17:10:45 1. Benchmarking refactoring 17:10:47 2. Benchmarks in VMs 17:10:49 3. Deployments (Multinode/Bugfixes/LXC) 17:10:51 4. Results processing (Graphics) 17:10:53 5. Verification updates 17:10:55 #topic 1. Benchmarking refactoring 17:11:18 msdubov could you introduce us, what happened during the last week and what we are going to do on this 17:11:25 msdubov I will find link to the doucment 17:12:11 #link https://docs.google.com/a/mirantis.com/document/d/1LYUAHkZQD8W7dtlj2I3PDA6x67TiD3AMnSWG6ljsups/edit 17:12:22 msdubov are you typing?) 17:12:39 boris-42_ Well I thikk it's better to see the weekly updates page on wiki :) 17:12:45 msdubov nope 17:12:51 msdubov it is not better 17:12:57 msdubov just say in couple of words 17:13:31 eyerediskin ping 17:13:49 sup 17:14:06 msdubov is trying to say high level view of benchmarking refactoring 17:14:14 msdubov pls just go through all points 17:14:25 msdubov so we will be able to discuss them 17:14:28 boris-42_ OK wait a minute pls 17:16:42 Well the fisrt thing is the reimplementation of different benchmarking strategies via subclassing 17:17:19 This makes the code way moreclean 17:18:10 Also we've added support for the so-called "user" endpoints 17:18:25 i.e. endpoints withou admin permissions 17:18:39 But they are not fully integra ted yet 17:20:09 msdubov okay let's speed up this discussion 17:20:39 msdubov point 1 from that document 17:20:44 Improving scenario input args validation: 17:21:14 jroovers said that probably there will be some cases 17:21:23 when you need to check for every single user 17:21:34 My concern is that verification should be very quick 17:21:47 and in case when we are creating 5k tmp users validation could take for a while 17:22:07 boris-42_ you mean different user types? 17:22:12 nope 17:22:20 will they be really so different? 17:22:33 in case of network they will be a bit different 17:22:37 boris-42_ what then? 17:22:39 in different tenants 17:22:49 so probably we should add new type 17:22:59 so we will have TYPE.tennant 17:23:04 tenant 17:23:11 It will run for every tenant 1 time 17:23:29 it should be actually used only for network validator 17:23:54 so we will be able to run from 1 users, for 1 user from every tenant 17:24:05 and from admin 17:24:16 I think it will cover most situation and will be pretty optimal 17:24:45 any thoughts?) 17:24:53 miarmak rediskin ^ 17:24:55 hughsaunders ^ 17:25:33 boris-42_ are there already network validators implemented? 17:25:34 looks good but probably we can make it more agile 17:26:00 with the ability to configure count of users/tenants and etc. 17:26:21 tnurlygayanov___ could you make some case?) 17:26:32 tnurlygayanov___ where this complexity will be used actually? 17:27:44 tnurlygayanov___ are you typing?) 17:27:53 so we can have the users with different roles in one tenant 17:28:02 tnurlygayanov___ nope 17:28:10 tnurlygayanov___ because we are generating them with one role 17:28:23 hm, ok. 17:28:25 tnurlygayanov___ in case of procreated user 17:28:32 tnurlygayanov___ we have to test for all users 17:28:43 tnurlygayanov___ because of roles and so on 17:28:51 tnurlygayanov___ so I think this is a good step for start 17:29:02 tnurlygayanov___ if we will support generating users with different roles 17:29:08 tnurlygayanov___ then okay=) 17:29:33 #topic 1.2 Running benchmarks with pre-created non-admin users 17:29:50 ^ okay msdubov prepared all pathes, but they are waiting for improving validation 17:30:04 yes, I agree, this is good for "start" and we can improve these scenarios in the future 17:30:11 tnurlygayanov___ yep 17:30:26 #topic 1.3 Improve scenario pluggability 17:30:27 Yep and I've issued a new, related, patch that refactors osclients a bit 17:30:55 Okay to improve scenario pluggability we should make changes to existing confi 17:31:11 msdubov tnurlygayanov___ rediskin miarmak are everybody agree with it? 17:31:15 I am looking this patch https://review.openstack.org/#/c/67720 and I have 1 question. 17:31:42 miarmak so ask it=) 17:32:10 what changes in config? 17:32:26 here we have endpoints in list and what if we will provide severel admins credentials? by mistake or smth like this 17:32:30 tnurlygayanov___ take a look at document 17:32:39 ok 17:32:39 tnurlygayanov___ point 3.1 17:32:52 tnurlygayanov___ new format of task config 17:33:01 it's not enough clear for me 17:33:08 miarmak it is actually okay 17:33:10 hi all 17:33:12 miarmak to provide N admins 17:33:13 hughsaunders hi=) 17:33:26 hughsaunders: hello) 17:33:32 miarmak then it will chose them randomly and run rally as a from admin 17:33:36 hey miarmak boris-42_, sorry late busy week! 17:33:47 miarmak so with procreating all tmp users and so on 17:33:54 hughsaunders no problems =) 17:34:00 boris-42_: yes, looks good 17:34:00 boris-42_: oh, okey, thanks) 17:34:17 hughsaunders we are discussing new task config at the moment 17:34:22 cool 17:35:01 hughsaunders so what do you think about new task config?) 17:35:18 boris-42_: "cloud_config" block is unclear 17:35:29 tnurlygayanov___ agree 17:35:43 what we want to describe in this block? 17:35:48 tnurlygayanov___ hughsaunders miarmak msdubov variants 17:36:06 we are describing all operation that will be in "init" 17:36:14 resource_creation ? 17:36:20 cloud_init 17:36:21 ? 17:36:44 because there will be as well network setup and probably some other stuff 17:37:07 setup_configuration 17:37:10 yep, so it describes the resources (users, tenants, networks, images?) that will be created for use in that run 17:37:20 and need to move this block up 17:37:23 hughsaunders something like thath 17:37:29 tnurlygayanov___ where? 17:37:31 tnurlygayanov___ why? 17:38:29 need to move 'setup; block before 'scenario args' and other block to show that this action will be the fisrt 17:38:34 *first 17:38:43 tnurlygayanov___ it is actually JSON=) 17:38:48 tnurlygayanov___ order doesn't matter 17:39:17 tnurlygayanov___ but agree it will be better for wiki 17:39:25 yes 17:39:29 so name? 17:39:47 setup_config / cloud_config / resource_config 17:39:50 I still like resource_creation, as it describes whats actually happening 17:39:57 or resource_config, that works for me also 17:40:30 cloud_config imho better) 17:40:39 so, setup links to Python-unittests pattern ) 17:41:18 fuu = )lol 17:41:29 we are not able to decide the right name for it=) 17:41:35 =) 17:41:37 load_generator --> run_configuration 17:42:44 preconditions maybe. 17:43:15 tnurlygayanov___: that implies things that must be setup before the task is started 17:43:32 tnurlygayanov___: rather than resources rally will create for the task? 17:44:06 so okay I added all variants 17:44:11 to doc 17:44:16 let discuss other things=) 17:44:22 :) 17:44:23 and continue discussion of this in rally caht=) 17:44:28 boris-42_: random.choice() 17:44:36 ya something like that=) 17:44:46 )) 17:44:49 #topic Move load_generator validation to scenario runners 17:45:13 okay this is the last blocker to make scenario runners totally pluggable 17:45:31 so we will add just method to scenario runner aka validate 17:45:38 and send this part "load_generator" 17:45:46 to it and check that it pass 17:46:06 so every scenario runner will be able to override it and use own schema 17:46:12 (e.g. in deployment stuff0 17:46:19 I think it's ok approach?) 17:47:33 somebody?) 17:47:42 now we use different validators for each parameter 17:47:55 * hughsaunders looks in code 17:48:01 and how it will workk after this change? 17:48:15 tnurlygayanov___ now we have spaghetti 17:48:21 tnurlygayanov___ in benchmark engine 17:48:23 we will have only one method .validate() 17:48:28 yes 17:48:42 tnurlygayanov___ yep that will use specify for scenario runner json schema 17:49:00 tnurlygayanov___ and probably specify validate() implantation 17:49:31 tnurlygayanov___ https://github.com/stackforge/rally/blob/master/rally/benchmark/runners/continuous.py#L24 17:49:41 tnurlygayanov___ in this class you will just add new method 17:49:53 tnurlygayanov___ validate() that is specific for ContinuousScenarioRunner 17:50:23 tnurlygayanov___ so instance of this scenario runner will be chased if you specify type: "continuous" 17:50:30 but how we will validate different test scenaries with different parameters using only one method? 17:50:36 boris-42_: ahh, I understand, so each scenario runner can validate its own config block, and therefore require different parameters 17:50:46 hughsaunders yep 17:50:51 hm 17:50:52 ok, makes sense to me 17:51:09 tnurlygayanov___ https://github.com/stackforge/rally/blob/master/rally/benchmark/engine.py#L101-L121 17:51:19 we will use different runners for scenaries with different parameters? 17:51:19 tnurlygayanov___ we have this spaghetti 17:51:39 tnurlygayanov___ different scneariorunners already now have different parameters 17:52:00 tnurlygayanov___ continue accept always "active_users" and periodical accepts "period" 17:52:38 tnurlygayanov___ so load_generator parameters are different 17:52:43 tnurlygayanov___ for different load generators 17:52:51 ok 17:52:59 tnurlygayanov___so only laod_generator knows how to validate them 17:53:14 tnurlygayanov___ so in benchmark engine we will get proper scenario runner using "type" 17:53:20 tnurlygayanov___ and call validate() 17:53:20 yes, now it is clear, thank you ) 17:53:33 so everybody agree with this chage? 17:54:02 #topic Stress execution 17:54:03 17:54:17 Okay here we have to make as well changes 17:54:20 in config 17:54:25 are everybody agree with them? 17:55:04 boris-42_: yep 17:55:36 hughsaunders yep so about stroing results 17:55:40 we will use asynchronous engine for stress tests? 17:55:41 boris-42_ yep 17:55:55 tnurlygayanov___ nope 17:56:31 tnurlygayanov___ all steps one by one 17:57:01 and where we can describe the scenaries for this stress test? 17:57:03 tnurlygayanov___ first you are running for N active user then for N+step 17:57:09 tnurlygayanov___ ? 17:57:30 hm, I found. 17:57:40 tnurlygayanov___ {“start”: 2, “stop”: 10, “step”: 1, “max_failure_rate”: 0.8} 17:57:55 tnurlygayanov___ this is the same as adding in array N times 17:58:03 tnurlygayanov___ full description of benchmark 17:58:19 tnurlygayanov___ so it will produce N separated benchmarks 17:58:25 looks like we write incorrect JSON with '|' 17:58:33 tnurlygayanov___ lol 17:58:39 tnurlygayanov___ it is "OR" 17:58:49 ok ) 17:59:09 it means that in that field you are able to use different 17:59:18 syntax 17:59:19 so 17:59:31 I think that stress execution should be stored as a one task 17:59:37 30 seconds 17:59:46 we can continue in Rally chat 17:59:59 #endmeeting