Performance monitoring and testing of OpenStack
Go to file
Sai Sindhur Malleni 2c1980e023 Refactor Shaker
Refactoring lib/Shaker to improve compatibility with a wide range of
shaker scenarios.  set_scenario() method has been fixed to remove hard
coded expectations on the order of accommodation list. send_to_elastic()
method has also been fixed accordingly for imporved compatibility when
indexing a large number of shaker scenarios.

Why?  The current model of overwriting the shaker scenario file with
values supplied from the browbeat-config works well for a major set of
shaker scenario files. However, the problem comes with  how we
overwrite/work with "accomodation" key in the shaker scenario. Since the
value for the accomodation is a list, we need to access the list items
to modify them[2]. Most scenario files sudh as [1] have 4 values in the
list but some such as [3] have only 3 items, so we cannot be sure the
list item we are accessing is the one we want to if we are going by list
item number.

How?  Added two methods accommodation_to_dict() and
accommodation_to_list().

accommodation_to_dict() grabs the accommodation data from shaker
scenario file[1] and converts the list to a dictionary. Since it is now
a dictionary we overwrite shaker scenario values for key "accommodation"
by checking what keys exist in the dictionary.

accommodation_to_list() converts the dictionary we created by
overwrirting arguments in shaker scenario with those in browbeat
scenario to a list again, so that it can be written back the shaker
scenario file. Shaker eventually consumes this file which has been
overwritten by the options in browbeat config.

+ Adding external_host parameter
+ Adding validation
+ Adding usage docs
+ RST Formatting

[1] - https://github.com/openstack/shaker/blob/master/shaker/scenarios/openstack/dense_l3_north_south.yaml#L11
[2] - https://github.com/openstack/browbeat/blob/master/lib/Shaker.py#L201
[3] - https://github.com/openstack/shaker/blob/master/shaker/scenarios/openstack/external/dense_l3_north_south_with_fip.yaml#L11

Change-Id: Icf7208f230cbe727d525b6cb090e82c4f19d6985
2017-01-17 12:29:54 -05:00
ansible Remove downstream (OSP*) references into upstream OSP series name. 2017-01-11 16:19:50 +00:00
ci-scripts Merge "Clean up README in ci-scripts/ directory" 2017-01-03 17:02:39 +00:00
conf Upgrade Rally to 0.7.0 2016-11-18 19:07:36 +00:00
doc/source Refactor Shaker 2017-01-17 12:29:54 -05:00
elastic Add template for Elastic 2016-10-07 16:01:12 -04:00
lib Refactor Shaker 2017-01-17 12:29:54 -05:00
log Install updates. 2016-02-15 16:25:10 +01:00
metadata Fix version JSON 2016-09-21 17:21:37 -04:00
rally Fix CentOS link 2017-01-11 10:42:14 -05:00
results Install updates. 2016-02-15 16:25:10 +01:00
utils Refactor Shaker 2017-01-17 12:29:54 -05:00
visualization Adding Visualizations and Dashboard for Shaker 2016-11-29 12:29:32 -05:00
.gitignore Make Browbeat multi-cloud friendly. 2016-08-30 21:09:47 -04:00
.gitreview Adding Browbeat Infra files 2016-06-14 09:16:53 -04:00
LICENSE Add LICENSE file for Apache 2.0 license 2016-05-06 11:25:17 -04:00
README.rst Initial cleanup of Browbeat documentation 2017-01-03 15:58:38 -05:00
bindep.txt Temporarily Disable Linters 2016-09-06 10:52:47 -04:00
browbeat-complete.yaml Refactor Shaker 2017-01-17 12:29:54 -05:00
browbeat-config.yaml Refactor Shaker 2017-01-17 12:29:54 -05:00
browbeat.py Gather Metadata in main browbeat run 2016-09-21 10:41:38 -04:00
requirements.txt Use Ansible 2.1.1.0 2016-10-07 13:38:39 -04:00
setup.cfg Add oooq Ansible Role Support 2016-11-30 20:34:31 +00:00
setup.py Adding Browbeat Infra files 2016-06-14 09:16:53 -04:00
test-requirements.txt Add tox -elinters 2016-08-16 14:40:37 -04:00
tox.ini Temporarily Disable Linters 2016-09-06 10:52:47 -04:00

README.rst

Browbeat

Browbeat is a performance tuning and analysis tool for OpenStack. Browbeat is free, Open Source software.

  • Analyze and tune your Cloud for optimal performance.
  • Create Rally workloads for performance and scale testing.
  • Automate deployment of common data analysis tools.

Documentation

Browbeat documentation is available at http://browbeat.readthedocs.io/

Resources