1:00pm] cdent: boris-42: you about, I'd like to get a quick primer on how to do some rally+ceilometer explorations [1:01pm] boris-42: cdent hi there [1:01pm] cdent: Ah, cool, I've got a devstack set up with rally enabled [1:02pm] boris-42: cdent so what you are going to test?) [1:02pm] cdent: and I want to benchmark various api commands (as a starting point) [1:02pm] cdent: I want to compare different database setups [1:02pm] cdent: Once I have a handle on how things work I want to go deeper, but I figure that's a good starting point. [1:03pm] boris-42: cdent okay yep [1:04pm] boris-42: cdent so what you need is to run "rally deployment check" [1:04pm] boris-42: cdent to ensure that rally successfully installed [1:04pm] cdent: yup lots of stuff listed as "available" [1:04pm] boris-42: cdent great [1:05pm] cdent: (including ceilo) [1:05pm] boris-42: cdent so now you can run some benchmarks [1:05pm] boris-42: cdent lemme find some sample [1:05pm] dzwiedziu joined the chat room. [1:05pm] cdent: tmuch boris-42 [1:05pm] boris-42: cdent so all samples are here https://github.com/stackforge/rally/tree/master/doc/samples/tasks/scenarios [1:06pm] boris-42: cdent you have ceilometer samples https://github.com/stackforge/rally/tree/master/doc/samples/tasks/scenarios/ceilometer [1:06pm] boris-42: cdent unfroutantelly during some bug not all works =) [1:06pm] cdent: that's fair [1:06pm] cdent: so those are on my disk, how do I call them? [1:07pm] boris-42: cdent so create_meter_and_get_stats: and .create_and_query_samples doesn't work [1:07pm] boris-42: cdent other you can run [1:07pm] boris-42: cdent so you can run these benchmarks with next command [1:08pm] boris-42: cdent rally -v task start [1:08pm] boris-42: cdent that is all=) [1:09pm] cdent: sweet [1:09pm] boris-42: cdent then you will get at the end hints [1:09pm] cdent: yup, seeing that [1:09pm] boris-42: cdent to get all results (in json) or (html report) [1:09pm] cdent: if I want to adjust concurrency and count and such I just modify the scenario file to my liking, yes? [1:10pm] boris-42: cdent yep load generators are plugable [1:10pm] boris-42: cdent different plugins can be used changing "type" key [1:10pm] boris-42: cdent and they have all own arguments [1:10pm] claudiub left the chat room. (Quit: Page closed) [1:10pm] claudiub joined the chat room. [1:10pm] boris-42: cdent so actually just to make it clear in constant runner "times" means total times [1:11pm] boris-42: cdent e.g. if you specify times: 10 and concurrency: 5 [1:11pm] boris-42: it will call 10 times benchmark scenario (in total) [1:11pm] • cdent nods [1:11pm] • cdent is looking at html output [1:11pm] boris-42: but at any moment of time there will be exactly 5 running scenarios [1:11pm] boris-42: cdent I am going to refactor it [1:11pm] boris-42: cdent cause now it sux =( [1:11pm] cdent: I sux a whole lot less than nothing at all. [1:12pm] boris-42: cdent =) [1:12pm] boris-42: cdent so actually it will be full report [1:12pm] boris-42: cdent with detailed description of what was benchmarked [1:12pm] boris-42: cdent like we will put docstrings from benchmarks/runners to it [1:12pm] boris-42: cdent so it will be "full" report not just some strange graphs=) [1:13pm] cdent: I can see how, once you get a hang of how to set up scenarios, this could be _very_ useful [1:14pm] boris-42: cdent ? [1:14pm] boris-42: cdent you mean how to write own scenarios? [1:14pm] cdent: What I mean is: One _I_ figure how to write scenarios, it will be very useful to me. [1:14pm] cdent: s/One/Once/ [1:14pm] boris-42: cdent so it's really super extra easy [1:15pm] cdent: :) [1:15pm] boris-42: cdent actually whole my team is working on making framwrok [1:15pm] boris-42: cdent so we don't write any scenarios just making everything simple easy and flexible=) [1:15pm] boris-42: cdent here are ceilometer scenarios https://github.com/stackforge/rally/tree/master/rally/benchmark/scenarios/ceilometer [1:16pm] boris-42: cdent basically what you need is next [1:16pm] dzwiedziu left the chat room. (Remote host closed the connection) [1:17pm] boris-42: cdent you should create a class that is subclass of base.Scenario [1:17pm] boris-42: cdent in this case, ceilometerutils.CeilometerScenario - is subclass of base.Scenario [1:17pm] • cdent nods [1:18pm] boris-42: cdent then any method that has this @base.scenario decorator https://github.com/stackforge/rally/blob/master/rally/benchmark/scenarios/ceilometer/alarms.py#L24 [1:18pm] boris-42: cdent is benchmark it will be autodiscovered [1:18pm] boris-42: cdent and name of this will be CeilometerAlarms.create_alarm [1:18pm] • cdent nods [1:18pm] boris-42: cdent it will accept in "args" meter_name and threshold [1:18pm] boris-42: cdent and very last thing that you should know is what is in utils [1:19pm] boris-42: cdent https://github.com/stackforge/rally/blob/master/rally/benchmark/scenarios/ceilometer/utils.py#L49-L62 [1:19pm] boris-42: cdent so basically we are calling this from benchmark [1:19pm] boris-42: cdent https://github.com/stackforge/rally/blob/master/rally/benchmark/scenarios/ceilometer/utils.py#L49 this will measure duration of this metho [1:19pm] • cdent nods [1:19pm] boris-42: cdent so you can have more granularity then just (whole duration of whole benchmark scenario) [1:19pm] boris-42: cdent inide it you are calling https://github.com/stackforge/rally/blob/master/rally/benchmark/scenarios/ceilometer/utils.py#L61 [1:20pm] boris-42: cdent self.clients("ceilometer") - is initialized plain ceilometer python clinet [1:20pm] boris-42: cdent there is as well sefl.admin_clinets("ceilometer") - that will be initialized by admin [1:20pm] cdent: makes sense [1:21pm] dzwiedziu joined the chat room. [1:21pm] boris-42: cdent heh ceilometer samples should be fixed lol [1:22pm] boris-42: cdent I'll do that =) [1:22pm] cdent: This gives me enough to experiment with. If I hit a roadblock I'll give you a shout. I think at this point the best thing for me to do is make some more coffee and do some experimentation. Thanks very much for the detailed info. [1:22pm] boris-42: cdent one more thing [1:23pm] boris-42: cdent about this https://github.com/stackforge/rally/blob/master/doc/samples/tasks/scenarios/authenticate/keystone.json#L9-L14 [1:23pm] cdent: yes [1:23pm] boris-42: cdent "users" context will create users and tenants that will be used by self.clinets() [1:23pm] boris-42: cdent e.g. every time when we are calling benchmark scenario, it will get one randomly passed user [1:23pm] cdent: makes sense [1:23pm] boris-42: cdent so you can play with amount of users and tenatns [1:24pm] boris-42: cdent for now by default even if you don't specify [1:24pm] boris-42: cdent it will create 1 tenant and 1 user [1:25pm] cdent: right, thanks. I'm get food and get to it.