Commit Graph

75 Commits

Author SHA1 Message Date
Masco 8632866417 add ilm policies to handle the life of the es indices
two policies are added to handle short and long term indices.

life of the indices can be configured using the 'elasticsearch.life'
field at browbeat-config.yml file
shortterm will have: 125 days
longterm will have 2 years

the policy and the policy based templates can be created using the
'es-template' install playbook.

Change-Id: I0f4a4a9acc03092fd582ae4ff50f688850def953
2023-09-07 15:29:11 +05:30
Sanjay Chari 0c8e4cba04 Add option to create Grafana annotations
This patch adds an option in browbeat-config.yaml to create annotations
on a Grafana dashboard for a Browbeat scenario. This would be useful for
CI as it provides information on Grafana about what Browbeat scenario was
running at a particular time.

Change-Id: I83a9c74a56379da35ec9466a7492aecc2ee64ea9
2022-10-17 11:22:59 +05:30
Sanjay Chari 68283e1f67 Change default image from cirros to cirro5
Browbeat uses cirros as the default image for many scenarios.
In OSP17 we encountered issues with interface creation in cirros version 0.3.5.
This patch changes the default from cirros 0.3.5 to cirros 0.5.1(cirro5).

Change-Id: Idfb0aff3a6b79eef5a6f0252c0f948f3cd207427
2022-06-14 16:44:08 +05:30
Sanjay Chari 8e873e678a Start and stop collectd containers while running workloads
This patch introduces the following changes.
1. Playbooks have been created to start collectd on different hosts.
2. A feature has been added that allows a user to start collectd containers
before running workloads, and stop the collectd containers after running
the workloads. This will help us in minimising the space used for storing
collectd data.

Change-Id: I7926884f461e97bc67453f46eef0121c46c7f19e
2021-11-22 13:14:55 +05:30
Zuul f78bcfebbc Merge "Add more Cinder Scenarios" 2020-04-06 16:09:38 +00:00
Asma Syed Hameed d45e67c5d3 Add more Cinder Scenarios
Change-Id: I5060f08169f72d79df00626f2baf3240f004e4f9
2020-04-06 21:14:49 +05:30
Sai Sindhur Malleni fbf309baee Add common logging with filebeat
This commit
1. Provides a playbook to install the filebeat agent on all
   undercloud/overcloud nodes
2. Provides another playbook that adds the browbeat uuid to the
   filebeat config file and starts filebeat during browbeat run
3. Corresponding changes in browbeat.py and browbeat/tools.py
   to run the playbook to insert custom browbeat uuid in the
   filebeat configuration.

Change-Id: Idd2efaf931f4ff581db715a04adef738f81d281c
2020-04-03 19:27:24 +00:00
Asma Syed Hameed 26bab04c72 Benchmark undercloud
Now we have the option to benchmark both undercloud and overcloud by setting rally_benchmark variable in browbeat-config.yaml

Change-Id: Id04bc9b6b24dfc8a0d8216b6c3596422567cce95
2020-03-06 14:06:41 +05:30
Sai Sindhur Malleni 735822463d Add custom cinder plugin for nova attach
Change-Id: I0c1d8d600cc2f249750891f996a37fa75227b07d
Signed-off-by: Sai Sindhur Malleni <smalleni@redhat.com>
2020-01-30 14:58:12 -05:00
Charles Short 0fa8454fd1 Remove PerfkitBenchMaker
No longer supported.

Change-Id: Iae8ff4e0a1f55af67b49df16e8ecf276877f2525
Signed-off-by: Charles Short <chucks@redhat.com>
2019-11-20 14:54:43 -05:00
Sai Sindhur Malleni 904396c01d Auto-Detect Shaker File paths
We can no longer hardcode shaker file paths due to python2.7/python3.6 variability.

Change-Id: I2ca509c896c66b230cf975b74c3988a6bec73077
2019-11-11 13:42:41 -05:00
Sai Sindhur Malleni f539cbbf88 Let stockpile set container_cli
With the addition of a8b256cad6
and 3791692021 we can have stockpile
set the var so that's one less var for the user to set.

Change-Id: Ic0e31549685d0f66fe09b4dc1694945f3071b873
2019-11-05 15:08:42 -05:00
Charles Short 46a17336b1 Allow specify container_cli
In OSP15, the default containers are podman. So we need
to pass container_cli environment variable as "podman"
so that the podman containers configuration file on the
undercloud can be parsed.

Change-Id: I223c46baf4cf36596c8ff1e7468eb9fd1a0f1126
Signed-off-by: Charles Short <chucks@redhat.com>
2019-07-16 08:54:05 -04:00
Asma Syed Hameed 1263990861 Add nova resize scenario
Change-Id: I7bcaaba563957df03d52737a2a20d1cc58036f01
2019-07-02 13:30:01 +05:30
Sai Sindhur Malleni 86bfc78e25 BuhBye YODA
YODA is no longer a used or maintainer workload. This will help remove
any confusion.

Change-Id: Ifef26f1419be9429bd9ac72a1d25f90ad8241bfc
2019-03-08 15:21:53 -05:00
Joe Talerico 032e7ad374 Flipping the bit
Moving to stockpile instead of the traditional gather script. Soon
totally remove the old gather work.

Change-Id: Ia37aabb4b110930cae0cc1d5af6d4d405e41d4f3
2018-12-05 13:38:56 -05:00
agopi 0b56097272 Adding stockpile to collect data
This would facilitate browbeat users to take advantage of
work being done wrt browbench utilities.

To use stockpile just update metadata_playbook to
ansible/gather/stockpile_gather.yml

Change-Id: I4c12920007f66bc3378439b437676e4cb162b082
2018-11-13 21:52:40 +00:00
akrzos 1c3b60a8c8 Mix and Match Workloads
* Mix and Match Workloads
* rerun_type - ['iteration', 'complete'] - allows you to rerun complete
  browbeat workload or iteratively
* browbeat/config.py for loading and validating config schema
* tests/test_config.py to test config.py

Change-Id: I99ea87c01c17d5d06cf7f8d1eec3299aa8d483a5
2017-12-12 11:08:50 -05:00
Joe Talerico db8096ca48 port-create-associate
Creates port and associates it to a host

Change-Id: Ie94978ff42f91eb20f8a95964606260de603e3f2
2017-12-04 18:17:54 +00:00
akrzos e585fb3df4 Upgrade Rally to 0.9.1
Migrated plugins and cleaned up config files and improved ease of
running some scenarios/plugins.

Change-Id: If76ce233f3067b85aa086be7f615dbb900a1bcb9
2017-10-13 19:33:06 +00:00
akrzos 4052a93f50 Remove connmon
Unfortunately connmon hasn't been used in a while and isn't well tested on latest releases,
thus ideally in order to prevent any more cruft issues, lets remove it for now and if it becomes
relevant again we can add it back in.

Change-Id: I0759d164621f3aac1c36dbe1fac49acd7dde97e3
2017-10-11 10:47:30 -04:00
akrzos aa1b7651d3 Auto venv via path module
* Add path module to handle paths
  * Finds the venv
  * Finds the overcloudrc
* Clean-up/refactor imports

Change-Id: I24c269f2073a28ae0bee230cb9911dc89249f79f
2017-10-06 11:29:11 -04:00
akrzos c111042326 Remove Grafana Snapshot
It was a good idea, but as html+pngs it doesn't look well nor
is used much (if any).

Change-Id: I1f394c197686917e98a2be1364c4ae4d53aeee6c
2017-09-13 15:25:20 -06:00
Sai Sindhur Malleni 8d11344b4b Remove hardcoded references to overcloud credentials
1. Make overcloud credentials a configurable parameter in browbeat
configuration

2. Make venv format consistent in browbeat configuration

Change-Id: I2fa05725c89e1bdb9487af70567efaf8ff19bd34
2017-08-02 15:20:26 -04:00
jkilpatr b21cd3cebc Add YODA for undercloud and overcloud workloads
Yoda is a Browbeat workload for Ironic and TripleO

It can perform and monitor the following

 * Introspection bulk or batch
 * Cloud deployment with varying node types and numbers
 * Baremetal node import timing (actually done during introspection tests)

Metrics that are gathered inclue

 * Time to pxe
 * Time till pingable
 * Success/Failure rate ahd times
 * Overcloud Metadata after each deploy

Potential issues

Change-Id: I89809cc35db2cfaa39f8ede49ec853572c0e468e
2017-06-15 15:25:31 +00:00
akrzos 9cee8200a6 Update PerfKitBenchmarker to v1.12.0 and small fix
* Small fix for PerfKitBenchmarker results directory
* Update to v1.12.0 PerfKitBenchmarker
* Fix which requirements are needed inside perfkit-venv

Change-Id: Icfc497a6fe411691f8bf33c1a34e3c807c627344
2017-06-13 16:23:37 +00:00
jkilpatr c60b55ec83 Update tox.ini with Ansible linting and Browbeat config linting
This commit enanbles Ansible linting and does some
minor refactoring to make existing Ansible roles
compatible with the new rules.

Several Ansible linting rules have been excluded to keep the number
of changes from being too onerous.

Also a new script in ci-scripts is used to check very config file
included in the Browbeat repo for validity using the template
Browbeat uses when it runs.

Here's a list of the new linting rules

* Ansible tasks must have names
* When you use shell you must use become not sudo
* Using become_user without using become is not allowed
* If a repo is pulled it must be a pinned version of commit, not latest
* Always_run is deprecated don't use it
* Variables without {{}} and not in when statements are deprecated don't use them
* No Trailing whitepaces
* YAML checking, catches big syntax errors but not less obvious ones

Change-Id: Ic531c91c408996d4e7d8899afe8b21d364998680
2017-03-29 07:35:34 -04:00
jkilpatr 33f30eb58a Revert making log and results directory
Reverting Commit: 2ba6da9022

This needed much more testing before merging, my bad.
I strongly suggest we don't add this functionality
in a seperate commit again, it doesn't make sense
to reorg and test all of this and then the pip commit
right after. Just add it's functionality there.

Change-Id: Iee7aa439fbc077c3c71f67b625b67fc55a86f199
2017-01-26 09:48:10 -05:00
Chandan Kumar 2ba6da9022 Make results and log directory path using browbeat-config
* if results and log path not found, create it.
* Also resolve $FOO in browbeat config paths -jkilpatr

Change-Id: Ie5ec32386ca0d6db9177d9a3a55387b5b1e88a69
2017-01-24 17:18:18 +00:00
Jenkins 30f95ee2eb Merge "Refactor Shaker" 2017-01-17 17:36:43 +00:00
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
Russell Bryant 7dd59f392c Update shaker scenario name in browbeat-complete.
This scenario name didn't match the convention followed by all other
scenarios in this file.

Change-Id: Ib02a82c71f2941c4e224c94faa84cc9f1085637c
Signed-off-by: Russell Bryant <rbryant@redhat.com>
2017-01-12 20:29:44 -05:00
Joe Talerico a0e9752c3c Adding more Nova Scenarios
We ship Nova with only two Scenarios. This commit is to enable other API
workloads for Nova.

Change-Id: I499853fc1451301b4ec9d50fd9a3460b7d251110
2016-10-10 12:49:24 -04:00
akrzos 8611eea339 Upgrade PerfKit to latest (v1.7.0)
Working:
* Benchmark output makes it to browbeat results directory
* v1.7 PerfKitBenchmarker is installed
* Many benchmarks are tested however there is still some that
  require testing/configuration
* Example are provided in conf/perfkit-benchmarks.yml

Change-Id: I62dec86fe7e8c6f71b7c5654abfd4b2079904e4b
2016-09-27 23:06:52 +00:00
Jenkins 7d90a11856 Merge "Adding Keystone Kibana Dashboards and Visualizations" 2016-09-21 17:19:26 +00:00
Sai Sindhur Malleni 2357ad4743 Gather Metadata in main browbeat run
This commit adds logic to run Metadata at the beginning of every browbeat
run through browbeat.py. Also some imports have been fixed.

Co-Authored-By: Joe Talerico <jtaleric@redhat.com>

Change-Id: Ibc13a64710209b25a755f606ea7fddc80232cbc4
2016-09-21 10:41:38 -04:00
akrzos bfb1b5bcfe Adding Keystone Kibana Dashboards and Visualizations
+ Adding status_code to Kibana tasks to check for HTTP 201 Created
+ Removes existing Searches/Dashboards/Visualizations before uploading
+ Templatized Keystone Version Comparsion Dashboard Visualizations
+ Dashboards use latest metadata format/structure
+ Add version.json to config files and provide example version.json
+ Added line to remind updating version.json in metadata directory
+ s/browbeat/Browbeat/ when referenced not as file

Change-Id: If5f200b9d4557c6ef5a13ed1880cd46e8172ac86
2016-09-21 14:07:09 +00:00
Jenkins 7e507b2b97 Merge "Adding new Rally Plugin" 2016-08-03 04:21:45 +00:00
Sai Sindhur Malleni 659afbb03a Adding new Rally Plugin
This plugin tracks the the lifecycle of an instance from image creation to deletion.
Part of ongoing work to stress glance and see how glance workers affect nova.

Change-Id: I20ef48ff810beb3b0e14c41d71aa52e6711dc400
2016-08-02 16:10:33 -04:00
Sai Sindhur Malleni 5a48323531 Adding Glance Rally Scenarios
Adding some common scenarios for stressing glance.
+ Create and list images
+ Create and delete images
+ Create image and boot instances off it
+ List images by placing image in context

Also adding a separate configuration file for glance only.

Change-Id: I5327e9c65cb1b045f686e442e88b3e71f73ac5cf
2016-08-01 23:50:55 +00:00
Sai Sindhur Malleni 2150975345 Patching config file
Removing unused shaker option

Change-Id: I0465a058f8f607de2bfcc8517405cff4baa639c3
2016-07-14 14:41:04 -04:00
Sindhur e76b8acb4b Upgrading to Shaker version 0.0.14
Currently we are using Shaker version 0.0.10, however version 0.0.14
has more network tests including ping, tcp bidirectional and also
has a slick format for printing reports for tests with varying
concurrencies.

Moreover, we intend to use the json output from this version to index
shaker results in elastic search through a future commit.

+ Adding dns options
+ Patching validator to check for dns_nameserver key
+ Removing dns option, to be pushed when the pypi package includes
  the change
Change-Id: I522d1c78e7cacda3763f326f5e7dfa53e4ada1a8
2016-06-21 20:11:16 +00:00
Alex Krzos f3021755f9 Index Cloud name with Workload Result
This change adds the cloud name to the indexed data.  This allows you
to filter out other cloud's results if you have multiple clouds
feeding browbeat result data into ElasticSearch.

Change-Id: I92c764af115736380660157ad4da54f737e1db98
2016-06-17 14:03:13 -04:00
Alex Krzos 921ba0500b Updates to metadata
+ Move metadata to its own .gitignore-d directory
+ Add elasticsearch configuration to other browbeat config files in conf/
+ Adjustments to base .gitignore to ignore ansible retry files and removing legacy pbench-hosts-file

Change-Id: I7e3205f070e5f66e508cb486ae2306d28d4982bd
2016-06-16 15:53:11 -04:00
Joe Talerico c838c61ba2 Adding snapshot scneario
Change-Id: Ie2b7558b3f8fdf797aea02899bc6f1b39d33c74d
2016-06-08 15:33:35 -04:00
Joe Talerico 884100d101 New Plugin for Rally
Plugin to allow the user to create a router and attach N networks to
that router.

Change-Id: Id081f8d319f1d79c11811472596c03a229d2f869
2016-05-25 14:10:00 -04:00
Alex Krzos 38034172ff Adding more perfkit.
+ Use a specific version of perfkit (v1.4.0).
+ Ensure names are unique to avoid name conflict with results directory.
+ Adjust the validator mapping
+ Reduce number of time stamp variables for readability

Change-Id: Iad9e4417ff0800985914a57dd3d00bfc44dd9c07
2016-04-29 14:11:43 -04:00
Joe Talerico 13c67b4e11 Elastic search connector - Rally
+ Added function for Rally Results
+ Modified the Service filed
+ Rally.py now produces a json file and returns json
+ Grafana to return the URL list
+ Quick single workload test worked.. +1
+ Switched to a List for the config
+ Rebase
+ Remove parent/child work
+ Error check
+ Default 3 jsons in the config file
+ Rebase
+ Pep
+ Remove Grafana-API Key per Akrzos
+ Small bug
+ Removed getter/setter in Grafana.py

Change-Id: I9f1d5f27597c4c4897fc4ee821aad309fa11a04b
2016-04-27 23:40:29 -04:00
Alex Krzos 86dba51a41 Snapshots via Grafana Anonymous Access
+ Anonymous access on grafana allows pngs to be rendered without authentication
+ Fixed ansible 2.0 depreciation warning.
+ Specify ansible_python_interpreter to avoid following issue:
  - https://github.com/ansible/ansible/issues/13773

Change-Id: I2f68d8e9ad5f9f39befb05a023cc68b1de754e94
2016-03-31 00:05:47 -04:00
Alex Krzos cc5fee596b Remove ansible api due to 1.9.4 confusion and bugs.
+ Adjusted workloads to positional args and is flexiable to take:
  - ./browbeat.py                      ---> Runs all worklaods in order: perfkit rally shaker
  - ./browbeat.py all                  ---> Runs all workloads in order: perfkit rally shaker
  - ./browbeat.py perfkit rally        ---> Runs workloads in order: perfkit rally
  - ./browbeat.py shaker rally perfkit ---> Runs workloads in order: shaker rally perfkit
+ --debug now displays debug messages in stdout in addition to previous locations it logged
+ --setup or -s to take a config, Defaults to browbeat-config.yaml (Same as before), Examples:
  - ./browbeat.py -s browbeat-complete.yaml rally
  - ./browbeat.py -s conf/browbeat-keystone-complete.yaml --debug
+ Use __init__.py to allow cleaner importing of files under lib/
+ Remove ansible version restriction in requirements.txt
+ Separate connmon config from browbeat config for clarity.

Change-Id: Ifb74e5868be128fb378c7b052ba5a1bea46b4dff
2016-03-30 15:00:15 -04:00