17:01:54 #startmeeting rally 17:01:59 Meeting started Tue Apr 22 17:01:54 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:02:00 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:02:02 The meeting name has been set to 'rally' 17:02:19 marcoemorais meteorfox msdubov ping 17:02:22 boris-42, hi 17:02:27 boris-42: hi 17:02:29 hughsaunders ping 17:02:42 boris-42: hi 17:03:06 kun_huang ping 17:03:55 rediskin hi 17:03:58 hi 17:04:07 boris-42 hi 17:04:13 let's meeting :) 17:04:33 * boris-42 kun_huang is ready to have some meeting 17:04:38 ^_^ 17:05:21 so let's start 17:05:22 boris-42 chen is pregnant, so it is a little hard for her being online at this time 17:05:38 kun_huang oO nice =) 17:06:01 kun_huang ok it's good that you are here so you'll be able to share info 17:06:03 congratulations :) 17:06:11 okay lets start=) 17:06:40 #topic PERFORMANCE GATES FOREVER!! =) 17:06:51 rediskin could you share with others 17:06:59 rediskin with your graet work =) 17:07:30 now we can easyly add rally-jobs. it is now as easy as python-jobs 17:07:46 but 17:08:00 we have to make scenarios work out-of-the-box 17:08:14 rediskin i think it's only related to nova benchmarks 17:08:15 without editing image_id and other stuff 17:08:22 marcoemorais should finish his patch soon 17:08:25 marcoemorais ^ 17:08:29 boris-42: ack 17:08:39 boris-42: saw your comments on review 17:08:52 marcoemorais we will discuss it after this topic 17:08:53 =) 17:09:10 So for others that are not related to gates 17:09:14 there is new gate in rally 17:09:41 it's called check-rally-dsvm-rally 17:10:05 it will run 1 task with bunch of benchmarks 17:10:13 this job just run tests_ci/scenarios/rally.yaml 17:10:14 and upload html with results 17:10:31 so we need to add to this yaml as many scenarios as possible %) 17:10:35 boris-42: where in the tree is the code for this gate? ;) 17:10:36 yep so we will put in rally.yaml all benchmarks 17:10:51 https://review.openstack.org/#/c/86945/ 17:10:52 meteorfox it's not in tree yet 17:11:01 currently gates seems broken 17:11:07 ok 17:11:44 meteorfox here is successful run http://logs.openstack.org/45/86945/15/check/check-rally-dsvm-rally/780bb2e/logs/devstack-gate-post-test-hook.txt.gz 17:12:01 meteorfox on bottom you can see table with result 17:12:04 boris-42: thanks 17:12:13 but it's now a bit complicated 17:12:32 in future after this patch https://review.openstack.org/#/c/89562/ 17:12:39 we will get html plots=) 17:12:51 awesome 17:12:55 does anybody has any question?) 17:13:12 agree this is pretty nice 17:13:24 love it 17:13:36 boris-42, so the output is equivalent as if we run it with the -vd option? 17:14:06 msdubov link was log* 17:14:06 msdubov: https://review.openstack.org/#/c/86945/17/tests_ci/rally-gate.sh 17:14:14 msdubov that allows to troubleshot 17:14:23 msdubov but it will be as well plots 17:14:37 boris-42, rediskin Yep I see 17:15:06 if morder or clarkb merge our patch https://review.openstack.org/#/c/89562/ =) 17:15:17 so okay let's just move to next topic 17:15:29 why merge out? merge in =) 17:15:35 our* 17:15:38 not out lol 17:15:41 %) 17:15:44 >< 17:15:56 #topic pre processing of args 17:16:04 boris-42: will they gate have the concept of thresholds, say, like tolerating that the certain metric is +/- 10%, and have absolute limits? 17:16:20 meteorfox I think in half year we will be able to make something like that 17:16:25 meteorfox or year 17:16:26 =) 17:16:38 boris-42: cool 17:16:45 meteorfox it's hard cause node pool has absolutely different nodes 17:16:59 and normalization in benchmarking is quite complex stuff 17:17:03 marcoemorais ping 17:17:09 marcoemorais your turn 17:17:25 boris-42: so open question is to add types 17:17:43 boris-42: types will be more generic way to apply transformation 17:17:44 #link https://review.openstack.org/#/c/86116/ 17:18:23 marcoemorais so I think that Types will be simpler to organize code 17:18:27 boris-42: idea of types is to create a class which has a transform method 17:18:30 and it will be simpler to understand 17:19:24 boris-42: for now the only 2 Types are Image and Flavor 17:19:25 marcoemorais: sorry, I still no too familiar with the code base, what kind of Types are we talking about? benchmark types, results types? 17:19:45 meteorfox: Types are objects inside of our scenario config 17:20:07 meteorfox we are speaking about input arguments 17:20:19 gotcha 17:20:25 kinda OpenStack objects types, like Image, Snapshot, Volume, Network? 17:20:29 meteorfox https://github.com/stackforge/rally/blob/master/doc/samples/tasks/nova/boot-and-delete.json#L5-L6 17:20:45 meteorfox: given a Type — you can do a transform on that type to normalize it to be consistent with what the scenario expects 17:20:47 so we would like to be able to specify not only image_id 17:21:06 ok, now I understand, thanks 17:21:08 we would like to specify image: {"id": some_id} or image: {"name": some_name} 17:21:17 image: {"reg": some_reg} 17:21:32 and now marcoemorais made patch that allows us to do any transformations 17:21:43 cause we are not able to use image name inside benchmark 17:22:09 meteorfox cause it will be huge overhead inside benchmark (e.g. if you would like jus to show() image) overhead will be almost x2 17:22:21 so there are 2 ways to resolve issue 17:22:29 more abstract 17:22:35 e.g. transformations 17:22:52 that can transfer input kwargs in any way 17:22:59 or "types" 17:23:09 that can transfer only one argument to something 17:23:14 meteorfox rediskin ^ 17:23:46 As at this moment we have only Image and Flavor types and I don't think that we will have such multi arg transformations 17:23:55 it is better to keep things simpler 17:23:57 and use just types 17:24:06 ok 17:24:23 boris-42 meteorfox where in the source tree should I put types under rally/tree/master/rally/benchmark/types? 17:24:39 meteorfox yep 17:24:42 boris-42, So having types as you suggested won't make it obligatory to specify them in the docstring as well, if I understand that correctly 17:24:43 marcoemorais yep 17:25:00 msdubov probably we can reuse them 17:25:10 msdubov for it as well 17:27:20 so marcoemorais ok? 17:27:48 boris-42 meteorfox: yes, one more small issue — for regex, we will use "first match" or fail on ambiguity? 17:28:16 marcoemorais validation stuff should fail 17:28:23 marcoemorais and say multiply images possible 17:28:32 boris-42 ok 17:28:37 ,marcoemorais as well for name 17:28:51 so next topic? 17:29:21 #topic tempest & rally integration 17:29:35 sdague probably will be interesting for you^ 17:29:56 So actually I will just make some update 17:30:20 So there are 2 parts: 17:30:28 1) verification part 17:30:35 2) benhmarking part 17:30:40 In verification part 17:31:21 We have: 1) tempest conf generation 2) support of work with multiply clouds 3) parsing results to json and storing in rally db 17:31:41 4) and base operations to work with results, e..g show/detailed/results commands 17:31:49 About benchmarking part 17:32:09 The base patch that adds possibility to run any tempest test as benchmark was merged 17:32:20 http://pavlovic.me/rally/tempest.html <- here is the sample of output 17:32:52 so actually there will be couple of improvements 17:33:29 A) we will mesure not only total duration (setUp, runTest, tearDown) but as well just of runTest in atomic actions 17:33:54 B) we will support running different tests simultaneously (this will be super usefully for testing races in tempest tests) 17:34:17 Actually here is the patch 17:34:19 https://review.openstack.org/#/c/86836/ 17:34:30 marcoemorais meteorfox msdubov hughsaunders kun_huang rediskin any questions ^ ? 17:35:08 msdubov, nope 17:35:12 boris-42, nope 17:35:45 boris-42: high level question, what is distinction btwn use of tempest for benchmarking and use of rally scenarios for benchmarking? 17:36:05 boris-42: +1 marcoemorais question 17:36:20 marcoemorais rally benchmarks are more benchmarks lol=) 17:36:52 e.g. we don't have mess of setUp/tearDown and running benchmark 17:37:02 and we have powerful mechanism of context classes 17:37:18 + we are able to collect much more results 17:37:40 using atomic actions and in future I'll add collecting of all python clients calls (equivalent to http calls) 17:37:49 that is unfortunately impossible with tempest unit tests 17:37:49 boris-42: I mean here, until rally, we did look at tempest (functional test) output as mini-benchmark, but it isn't as powerful as what we are doing with rally 17:38:19 marcoemorais meteorfox ^ 17:39:16 marcoemorais you disagree with this?) 17:39:35 boris-42: so why is tempest integration needed, I think that's my question. :) 17:39:46 meteorfox the answer is simple 17:39:50 boris-42 I think marcoemorais don't know this intrgration 17:40:14 meteorfox 1) tempest has a bunch of validation tests (every day more) 17:40:30 so running it to validate cloud is I think most proper way 17:40:50 2) why we need benchmarks from tempest tests? 17:41:00 there are couple of things 17:41:11 1) helping improving tempest (removing race conditions) 17:41:21 2) simple way to repeat race conditions from gates 17:41:44 3) if you have something already implemented in tempest (some complex scenario) that you would like to run in rally you don't need to port it 17:41:52 meteorfox ^ 17:42:27 meteorfox so as it was not hard to integrate tempest in Rally => why not?) 17:43:02 meteorfox I mean benchmarking part* (verification part was quite tricky) 17:43:21 boris-42: ok, I see. I'm concerned with new users, won't they be confused and prefer to write the benchmarks in tempest, where instead they should use Rally scenarios? 17:44:00 btw reproduce race conditions is to use 'rally task start ' ? 17:45:12 boris-42: I see the value of "perf testing" tempest scenario, and testing for race conditions, but not so much as for a meaningful workload on the whole system. 17:45:40 boris-42: but I might not be understanding all of it. 17:45:55 meteorfox if user would like to use tempest to benchmark cloud we should let him 17:46:05 meteorfox it's his wiliness imho 17:46:15 meteorfox our goal is to make it simple as possible 17:46:39 boris-42: cool, ok. 17:46:47 meteorfox why we should decide for others?) 17:47:19 meteorfox my goal is to make it simple and it is all 17:47:37 boris-42: true, I agree. :) 17:47:40 meteorfox if it will be simple -> it will be popular -> many developers will start benchmark -> we will fix openstack 17:48:07 -> I will resolve my current task -> my boss happy -> me happy=) 17:48:13 boris-42: lol 17:48:42 Okay let's move to next topic 17:48:52 #topic new output table 17:48:59 msdubov could you share with your ideas 17:49:02 about new output 17:49:15 boris-42 Yep 17:49:34 So basically the idea is to make the CLI output less messy 17:49:48 A reasonable first step seemingly would be to merge the 2 output tables 17:49:57 Namely the result table and the atomic action table 17:50:05 Here are 2 possible ways to do that: http://paste.openstack.org/show/76661/ 17:50:33 Any ideas on what looks better? 17:50:45 msdubov: still loading for me :/ 17:51:05 Note that here I removed the "success/total" column 17:51:05 msdubov opening it 17:51:12 And moved it to the parens 17:51:17 in "count" 17:51:42 Hopefully it is still clear enough, what "(0.7)" means there 17:51:58 did it open for anyone? 17:52:21 meteorfox html title is loaded, but content not 17:52:23 meteorfox, Seems that it hangs :( 17:52:27 msdubov you gave us some strange link 17:52:27 An alternative link: http://pastebin.com/ps3bDrM9 17:52:42 meteorfox: open for me, either table seems fine, but maybe the first is a little more typical (eg total at bottom rather than top) 17:53:02 marcoemorais, Yes, but the last row is also the most important one... 17:53:14 That's why I proposed the second table 17:53:18 +1 17:53:21 I lie first one 17:53:23 msdubov: I agree with marcoemorais 17:53:37 msdubov: the % success (7/10) is still a problem for me, but I don't have an idea how to improve that 17:53:40 +1 for first one 17:53:53 yep 17:54:03 so everybody decided to use first one 17:54:06 but which is better, 0.7 and 70% 17:54:20 Ok, thanks. Any ideas on what to do with success % ? 17:54:22 kebray 70% 17:54:28 msdubov: unless you have a row that is titled num failed or something that just has 3 in 'count' column and 'NA' in all other colums 17:54:28 msdubov 70% 17:54:55 msdubov btw do we need count at all? 17:54:56 msdubov: for the order of the columns, though, wouldn't avg, min, max, 90%ile, 95%ile be a better order? 17:55:20 meteorfox yep agree min/agv/max is better then max/avg/min 17:55:27 msdubov Not sure, the order also requires discussion 17:55:30 boris-42, Ok! 17:55:44 about count it should be last column 17:55:54 boris-42, But meteorfox actually suggested avg/min/max 17:55:54 I think at least 17:56:24 msdubov: btw: enhancement would be to allow user to specify a % (some users will have a specific SLA to meet eg 98.5% of all requests <= y response time and will want rally to report that 17:56:29 I think min/avg/max is probably better cause it raises from left tto right 17:56:39 boris-42, Agree 17:56:45 msdubov: I think in order in order is better, what boris-42 suggested. min/avg/max 17:56:47 boris-42: agree with count as last colum 17:57:01 marcoemorais, Yep, I think we'll add custom percetiles soon 17:57:03 msdubov: what about %error? 17:57:19 yep % instead of 0.7 will be better imho 17:57:29 meteorfox, boris-42, Perhaps than we can make a separate column for success %? 17:57:37 It will have data only for the "total" row 17:57:39 yep 17:57:43 so to columns 17:57:48 count | success 17:57:49 ? 17:58:04 boris-42, How do you imagine that? 17:58:13 2 columns* 17:58:15 two* 17:58:18 boris-42, Yep 17:58:23 boris-42 success (70%) should be the first column or last? 17:58:38 And success % only for the last row ("total")? 17:58:53 msdubov it can be done for all columns 17:58:55 =) 17:59:06 msdubov okay we can discuss this in rally caht 17:59:10 cause time is up 17:59:12 boris-42, Yep 17:59:22 #endmeeting