Commit Graph

48 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
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
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
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
valli03 b3f4329ea3 Adding Browbeat workload - Sysbench with CPU test
Sysbench is an open source benchmarking tool used to evaluate the system
performance. Currently, the Sysbench CPU test is being integrated into
the Rally workload.

Change-Id: I032d4bc5621d598c0c8ebc6b6367bdd50a15d929
2018-07-24 12:14:17 -04:00
akrzos 8c84205e01 Upgrade Rally and PerfKit
* Also add Plugin Scenario to boot persisting instances with a volume

Change-Id: Ia06b3336a6856e83b76114d6ddaff2aee5bd20fa
2017-12-21 14:38:52 +00:00
akrzos 155a0cef15 Tripleo Quickstart Browbeat Install script
* Installs Browbeat either on local machine or oooq Undercloud

Change-Id: I2c536da9ab7c84cc32809b0f09574861ca1fece9
2017-12-13 10:58:06 -05: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
akrzos 1a65cd1feb Refactor of linting/config validation
* Use the built-in pykwalify cli validator
* Use set -e on loop inside tox.ini to ensure invalid configs fail CI

Change-Id: I251f7ead8393b97e93de03dc3b6accbdd9670092
2017-11-29 18:41:53 +00:00
jkilpatr bb44cd830c Rsyslog -> Elasticsearch logging
This implements rsyslog -> elasticsearch logging as well
as rsyslog forwarder -> rsyslog aggregator -> elasticsearch logging
using the common logging template as a base and adding
in dynamic detection of containerized services and log path
detection.

Services can be moved into and out of containers and add
or remove log files and the log detector script will create a template
that reflects these changes dynamically.

Logging inherits cloud name and elasticsearch info from the existing
group_vars variables, so this should be no additional work to setup
beyond setting logging_backend: rsyslog and either running the install
playbook or the rsyslog-logging playbook.

Finally additional variables can be passed into the deployment with
-e or just being in the ansible namespace, this way things like a
unique build ID can be templated into the logs automatically. I've
added support for browbeat_uuid, dlrn_hash, and rhos_puddle others
should be trivial to add.

There are also additional tunables to configure if logging instaces
should be standalone (viable for small clouds) or rely on a server
side aggregator service (more efficient for large deployments).
Disk backed mode is another tunable that will create a variable
disk load that may be undesierable in some deployments, but if
collecting every last log is important it can be turned on creating
a one or two layer queueing structure in case of Elasticsearch downtime
or overload depending on if the aggregation server is in use.

If you want to see examples from both containerized and non
container clouds check out elk.browbeatproject.org's logstash
index.

Change-Id: I3e6652223a08ab8a716a40b7a0e21b7fcea6c000
2017-10-16 12:08:26 +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 203cfd7926 Adding more nova boot and persist scenarios.
* Rally context to insert delay for specific scenarios
* Boot a persisting instance with NIC and a volume
* Boot a persisting instance with NIC and associate a FIP
* Boot a persisting instance with a NIC and a volume and associate
  a FIP

Change-Id: I3735495148ef88e69fc13be23fb53f29c184ed87
2017-10-10 14:39:38 -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 0c0497c4a3 Remove more Grafana Snapshot cruft.
Change-Id: Ie69c3a032790d09ddeafc93012b54cc094b0f8c7
2017-09-22 13:09:34 +00:00
Jenkins fdf31ed15a Merge "Browbeat Workloads - Rally/UPerf" 2017-08-08 20:01:08 +00:00
Joe Talerico cf053ddbd2 Browbeat Workloads - Rally/UPerf
Adding linpack to Browbeat. Eventaully I will be moving all pbench
workloads to this directory.

Change-Id: If35a7952feaae19d5201ba171f0b1919137412dc
2017-08-07 14:32:04 -04: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
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
Alex Krzos 645504a7cf Gnocchi Benchmarks via Rally Plugins
Benchmarks
+ archive-policy
  + list
  + create
  + create & delete
+ archive-policy-rule
  + list
  + create
  + create & delete
+ capabilities
  + list
+ metric
  + aggregation
  + get measures
  + list
  + create
  + create & delete
+ resource
  + list
  + create
  + create & delete
+ resource-type
  + list
  + create
  + create & delete
+ status
  + get

Browbeat Configs:
+ gnocchi-minimal.yaml - Check if your OSP can handle Gnocchi Benchmarks
+ Scale+Performance for Telemetry+Gnocchi
  + telemetry-nova-neutron-gnocchi-1k-100-per-30m.yaml
  + telemetry-nova-neutron-gnocchi-1k-500-per-30m.yaml
  + telemetry-nova-neutron-gnocchi-5k-500-per-30m.yaml
  + telemetry-nova-neutron-gnocchi-10k-1000-per-30m.yaml

Change-Id: I0b658cd4a749dc37c9b714d1caf37cab20a20b2b
2017-03-15 15:42:47 -04:00
akrzos 14283768b4 Telemetry Workload 2.0
+ Adjust boot and persist instances from 200 to 1000 instances
+ Boot and persist instances attached to a network (1000 instances)
+ Neutron context plugin to persist network over entire browbeat run
+ Added docs for the plugins

Change-Id: I58802218f1e2201063cf9ec3f82efa71b28ac1a0
2017-02-06 20:46:21 -05:00
akrzos 950207a2bb Update to Rally 0.8.1
+ Add one more KeystoneBasic Scenario

Change-Id: I670f090529c7bd565f4e897d1030ee80ca82117a
2017-01-30 13:25:14 -05:00
akrzos a2cff851b0 Upgrade Rally to 0.7.0
+ Adding another Keystone Scenario

Change-Id: Ia52dd4465e7fddf1b879244d385816e2cc2dbe88
2016-11-18 19:07:36 +00: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
Alex Krzos f18707403c Browbeat Ceilometer Rally Tests
+ Added all Rally Ceilometer scenarios and added minimal ceilometer
  config to ceilometer-minimal.yaml
+ BrowbeatPlugin: Nova boot and persist scenario which boots
  persisting extra tiny instances
+ Two additional Browbeat Configs that use nova boot and persist
  plugin to stress telemetry services over time

Change-Id: Ib52c60559c974c2e63478305a610df6afca5f087
2016-08-09 09:24: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
Alex Krzos eaedad454f Remove validate_ceilometer plugin and use validate_ceilometer from rally
+ Remove existing plugin
+ Use the version of the scenario merged into upstream rally (0.5)

Change-Id: I61f79a85515dcc3ae8a665a78e204b2f130b37ba
2016-07-25 11:17:52 -04:00
Joe Talerico e25530a3be Move ceilometer conf
Change-Id: Ief70445f67548ebf2f65aa6654ee3b1de6058cef
2016-07-13 14:42:14 -04: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
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
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
Alex Krzos 33f7395c91 Moving Rally to list format for ordered benchmarks/scenarios.
+ Adding plugin to browbeat-config.yaml
+ Address -s config (setting default so error logging is correct)

Change-Id: I5531a5b18a87cfe1a701ba8f467909c862b099e4
2016-03-21 21:38:29 -04:00
Alex Krzos 51953755bb More PerfKit Benchmarks
Change-Id: I940ad14fa66d861207fa178674f68fac108af6ab
2016-03-11 17:20:47 +01:00
Alex Krzos c7a8420bf1 Adding PerfKitBenchmarker to Browbeat.
+ Adding more benchmarks + Grafana snapshots
+ Benchmarks in list for ordering now.
+ Adding connmon

Change-Id: I9fa4f5d31f9575ad7636218ae6091c8e11343410
2016-03-08 15:31:55 -05:00
Alex Krzos 3b863bb580 Breaking Rally Keystone Scenarios into Authenticate and KeystoneBasic.
Change-Id: Ie33d2cd1aba5029fbbfcedd662b68ca6dc5f5388
2016-03-02 17:20:08 +01:00