This patch adds support to pass multiple Rally
result json files as arguments to the Google Sheet
generation script. This helps in comparison between results
of different runs.
Change-Id: Ic833b10b3fb94e8d5771a5ab3235576fedebfec6
This patch adds a new feature to the Rally json Google Sheets python script
to generate additional worksheets for atomic actions that do not pass SLA criteria.
Change-Id: Ic56672b78ac844f2deffdd5b1d8f5e498943beb3
Browbeat adds configuration for sqlalchemy collectd on the configuration files
of many Openstack API containers on controller hosts. This causes issues in the
next overcloud deployment. This patch adds a playbook to clean up sqlalchemy
collectd configuration.
Closes-Bug: #1975693
Change-Id: I2574676aa444f76e11cec91d9e0e2a66282301ac
This patch introduces a script that takes the
Rally json report as input and creates a Google sheet
with duration data for an atomic action.
Change-Id: Ia3a116da0a39f2e3754f79970d997d1bf87eb167
This patch introduces the following changes.
1. We often have multiple executions of the same atomic action in
a single rally iteration. Existing rally charts do not show duration
for duplicate actions in an iteration accurately. This patch introduces
line charts for each occurence of a duplicate atomic action for each
instance, by passing it as additive data.
2. This patch also adds a per iteration stacked area chart that shows
data per iteration for each occurence of all atomic actions in the iteration.
3. This patch also adds a duration line chart for each resource created by
Rally.
Co-authored-by: venkata anil <anilvenkata@redhat.com>
Change-Id: I44dafad69cdbcd6db7c8fd9148f1b35d89924e03
Rally cleans up resources automatically at the end of testing.
However, we disable cleanup in rally sometimes during testing
and later try to manually delete these resources.
Cleaning up the resources at scale is very time consuming,
so we came up with a python process to speed up this activity.
To cleanup :
$ source browbeat/.rally-venv/bin/activate
$ source ~/overcloudrc
$ python browbeat/rally_cleanup.py
It spawns the user specified number of processes for cleanup.
Each process cleans up the provided resource (example, given
network). We are using python multiprocessing Pool with map,
which distributes list of resources (ex, networks) to processes
for deletion.
We also add retries to check and delete the left over resources
from previous iterations.
Change-Id: Ifeb08e6eb6b8251422ba5777bda15c6701b7fefe
This patch adds an option to clone the e2e-benchmarking repo during
browbeat installation, so that we can use it to run shift-on-stack
workloads in browbeat.
Change-Id: I56f0b7e2e1e7d214cbed10b06f8c8d7a0f0f2395
This patch automates collectd_container var to set to true if running on OpenStack version
Stein or later and set to false for below OpenStack version which was manually done earlier.
Change-Id: Idd61f060a088caa1eae9d2a80e3c7ceb5debc424
This patch adds the support for using Prometheus with
Grafana and Collectd. Automated the most panels within the
openstack system performance dashboad.
To test it:
$ansible-playbook -i hosts install/grafana-prometheus-dashboards.yml
And make sure add grafana-api-key in the group_vars/all.yml
Co-authored-by: Asma Syed Hameed <asyedham@redhat.com>
Co-authored-by: Sai Sindhur Malleni <smalleni@redhat.com>
Change-Id: Icb9fa058324165c0d304dc1dcf2dd843662307cf
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
This commit does several things at once:
- Use ansible_distribution_major_version to detect which version of the
EPEL repository. So we dont have to hard code the URL for either epel7
or epel 8.
- Remove "stein" workaround for colelctd-openstack role. The "stein"
workaround has been removed in favor of running the collectd daemon
in a podman container.
- Drop opendaylight support for collectd since it is no longer
suupported.
- Add the collectd playbook so we can run collectd in a centos 7
container going forward for "train". This commit still needs
to be tested on "stein" but it will probably work anyways.
- Add browbeat-containers to tox.ini for flake8
- Simplify detection of docker or podman for older versions of OSP.
(sai)
- Fixed typo from compute_compute to collectd_compute that caused failures on computes
- clear graphite_host in install/group_vars/all.yml
- Move container DockerFiles into brwobeat tree
- Conditionally copy required Dockerfiles to node instead of git clone
- Fix up some log file paths
- Use Docker/Podman depending on release
- Provide single interface(collectd.yml) which has container and baremetal playbooks
- Introduce variable collectd_container in install/group_vars/all
- remove unneeded selinux rebaelling (already running as priveleged) when running container
- remove unneed hostfs mount
- collectd container logs to file instead of STDOUT for easier debug
- add collectd-ping package to collectd-openstack Dockerfile
- Improve docs to reflect changes
- dynamically set rabbitmq and swift paths as well for tail plugin
Co-Authored-By: Sai Sindhur Malleni <smalleni@redhat.com>
Change-Id: I627a696f6f1240d96a0e1d85c26d59bbbfae2b1b
Signed-off-by: Charles Short <chucks@redhat.com>
Signed-off-by: Sai Sindhur Malleni <smalleni@redhat.com>
Disable perfkitbenchmaker on RHEL8 since
it does not reliably work with python3.
Change-Id: I04a1805db2a04194d8bb77d31b310e9539273781
Signed-off-by: Charles Short <chucks@redhat.com>
Updated ansible-lint to run via pre-commit only on ansible files.
Moved config file to its standard location, repository root, which
simplifies syncronization and usage.
Contains bumping ansible-lint to current version which also required
adding few more rule excludes. These excludes are going to be removed
one by one in follow-up changes. This gradual approach allow us to
improve code style without endless merge conflicts.
Config settings mostly based on those used by tripleo repos.
Bumping linters can now be done by running 'pre-commit autoupdate'.
Pro-commit always locks versions so there is no chance that a newer
linter (ansible-lint) would break CI.
Some documentation can be found at https://github.com/openstack/tripleo-quickstart/blob/master/doc/source/contributing.rst
and applies mostly to any project using pre-commit.
Co-Authored-By: Sorin Sbarnea <ssbarnea@redhat.com>
Change-Id: I05eb561c4e353b5fe0bc7c6d3ab2f8ea6c6ea2f4
1. Browbeat shall make use of the fs001 which is the targetted version
of stockpile, thus it won't run all roles against all hosts.
2. Also updated the bug where node_name wasn't added to dictionary when
prescribe first hits data that was gathered from outside config file.
Change-Id: Ieac2c090713b307b4971aee3fd4d5b24f14b9fc9
This was built to help users standup infrastructure. However, we no
longer maintain these playbooks, and there are other solutions out there
to help uers deploy ELK.
Change-Id: I001ca4ed75c55dce617b7efe9ac9e38f2f0b9060
There was some confusion around installing grafana dashboards since
the move to grafyaml, tried to update the docs to make it further clear
about steps needed.
Change-Id: I536a82b1d9800e9a648ef3d5e67a1437f097ff2a
Closes-Bug: #1757545
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
Move numpy out of requirements into extras, as it's not required
for running browbeat, but only used for insights like compare
results.
So to install with insights, pip install .[insights], to perform
the CLI operations such as compare.
Added a tox test to ensure no dep conflict arises.
Change-Id: Id8aafcd479003ae79ab8c2d0f1fa378ea38d60d2
Closes-Bug: #1799690
Grafyaml needs to be installed for dahboard uploading to work. So,
the browbeat installation playbook needs to be run before uploading dashboards.
This commit adds text in docs to emphasize the order in which playbooks are run.
Change-Id: Iec154f600db156907a2bf78fcb1c71b4bceb5469
Right now we depend on Kibana to do our comparisons. This will give the
user a CLI mechansim to compare two different browbeat runs.
+ Small fix to browbeat metadata comparsion to not query _all
+ Changing how the metadata comparsion is displayed
Change-Id: I3881486100c91dcf3cc4eeeb4ddfa532ff01a7f1
openstack-dashboards.yml had been renamed to grafana-dashboards.yml.
Also the networking guide was 404 when clicking on the link in the
installation documentation, so point it to the right(?) documentation.
Change-Id: I60dc3d797d38ac0280a5347a4c5e580531169f54
Signed-off-by: Chuck Short <chucks@redhat.com>
Converting some of generate_tripleo_hostfile.sh into Python
* Use API bindings rather than cli commands
* Pluggable design to allow other Ansible ssh-config/inventory generator
* Two integration tests for testing cli of bootstrap.py and bootstrap/tripleo.py
Change-Id: I0669d96904891f1d54d0b805fbb0acadb4a7bf57
Checks were built to verify installation of the overcloud had
performance tunings applied. However, it has not been maintained over
the past year.
Change-Id: I48e99a6ea6266da30186b0b07079d96dccdac3d8
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
* 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
This playbook has caused much pain, with people assuming this works
irrespective of how their underlay is configured. Removing this to
remove confusion.
Co-Authored-By: Alex Krzos akrzos@redhat.com
Change-Id: I21ea865e31176be3ad7ceafd0696634d89a0d86a