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
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
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
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
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
Now we have the option to benchmark both undercloud and overcloud by setting rally_benchmark variable in browbeat-config.yaml
Change-Id: Id04bc9b6b24dfc8a0d8216b6c3596422567cce95
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
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>
Moving to stockpile instead of the traditional gather script. Soon
totally remove the old gather work.
Change-Id: Ia37aabb4b110930cae0cc1d5af6d4d405e41d4f3
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
* 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
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
1. Make overcloud credentials a configurable parameter in browbeat
configuration
2. Make venv format consistent in browbeat configuration
Change-Id: I2fa05725c89e1bdb9487af70567efaf8ff19bd34
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
* Small fix for PerfKitBenchmarker results directory
* Update to v1.12.0 PerfKitBenchmarker
* Fix which requirements are needed inside perfkit-venv
Change-Id: Icfc497a6fe411691f8bf33c1a34e3c807c627344
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
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
* if results and log path not found, create it.
* Also resolve $FOO in browbeat config paths -jkilpatr
Change-Id: Ie5ec32386ca0d6db9177d9a3a55387b5b1e88a69
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
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>
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
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
+ 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
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
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
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
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
+ 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
+ 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
+ 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
+ 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
+ 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