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
This commit is contained in:
parent
db8096ca48
commit
1c3b60a8c8
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,4 +1,10 @@
|
|||||||
*.py[cod]
|
*.py[cod]
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.eggs
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
.cache
|
||||||
.tox
|
.tox
|
||||||
|
|
||||||
# Virtual Environments:
|
# Virtual Environments:
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 3
|
|
||||||
cloud_name: {{ browbeat_cloud_name }}
|
cloud_name: {{ browbeat_cloud_name }}
|
||||||
|
rerun: 3
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: {{ elastic_enabled }}
|
enabled: {{ elastic_enabled }}
|
||||||
host: {{ elastic_host }}
|
host: {{ elastic_host }}
|
||||||
@ -16,116 +20,136 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: {{ grafana_enabled }}
|
enabled: {{ grafana_enabled }}
|
||||||
grafana_ip: {{ grafana_host }}
|
host: {{ grafana_host }}
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
venv: /home/stack/rally-venv
|
|
||||||
plugins:
|
plugins:
|
||||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: authenticate
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 16
|
join_timeout: 600
|
||||||
- 24
|
sleep_before: 0
|
||||||
times: 2500
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: authentic-keystone
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
file: rally/authenticate/keystone-cc.yml
|
instackenv: "/home/stack/instackenv.json"
|
||||||
- name: keystonebasic
|
stackrc: "/home/stack/stackrc"
|
||||||
enabled: true
|
|
||||||
concurrency:
|
workloads:
|
||||||
- 16
|
- name: authenticate
|
||||||
times: 1000
|
enabled: true
|
||||||
scenarios:
|
type: rally
|
||||||
- name: create-and-list-tenants
|
concurrency:
|
||||||
enabled: true
|
- 16
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
- 24
|
||||||
- name: neutron
|
times: 2500
|
||||||
enabled: true
|
scenarios:
|
||||||
concurrency:
|
- name: authentic-keystone
|
||||||
- 8
|
enabled: true
|
||||||
- 12
|
file: rally/authenticate/keystone-cc.yml
|
||||||
times: 128
|
- name: keystonebasic
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: create-list-router
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
file: rally/neutron/neutron-create-list-router-cc.yml
|
- 16
|
||||||
- name: create-list-network
|
times: 1000
|
||||||
enabled: true
|
scenarios:
|
||||||
file: rally/neutron/neutron-create-list-network-cc.yml
|
- name: create-and-list-tenants
|
||||||
- name: create-list-subnet
|
enabled: true
|
||||||
enabled: true
|
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
||||||
file: rally/neutron/neutron-create-list-subnet-cc.yml
|
- name: neutron
|
||||||
- name: create-list-port
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
file: rally/neutron/neutron-create-list-port-cc.yml
|
concurrency:
|
||||||
- name: create-list-security-group
|
- 8
|
||||||
enabled: true
|
- 12
|
||||||
file: rally/neutron/neutron-create-list-security-group-cc.yml
|
times: 128
|
||||||
- name: nova
|
scenarios:
|
||||||
enabled: true
|
- name: create-list-router
|
||||||
concurrency:
|
enabled: true
|
||||||
- 8
|
file: rally/neutron/neutron-create-list-router-cc.yml
|
||||||
- 12
|
- name: create-list-network
|
||||||
times: 64
|
enabled: true
|
||||||
scenarios:
|
file: rally/neutron/neutron-create-list-network-cc.yml
|
||||||
- name: boot-snapshot-delete
|
- name: create-list-subnet
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/nova/nova-boot-snapshot-cc.yml
|
file: rally/neutron/neutron-create-list-subnet-cc.yml
|
||||||
image_name: cirros
|
- name: create-list-port
|
||||||
flavor_name: m1.tiny
|
enabled: true
|
||||||
- name: boot-list
|
file: rally/neutron/neutron-create-list-port-cc.yml
|
||||||
enabled: true
|
- name: create-list-security-group
|
||||||
file: rally/nova/nova-boot-list-cc.yml
|
enabled: true
|
||||||
image_name: cirros
|
file: rally/neutron/neutron-create-list-security-group-cc.yml
|
||||||
flavor_name: m1.tiny
|
- name: nova
|
||||||
- name: glance
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
concurrency:
|
concurrency:
|
||||||
- 8
|
- 8
|
||||||
- 12
|
- 12
|
||||||
times: 64
|
times: 64
|
||||||
scenarios:
|
scenarios:
|
||||||
- name: create-and-delete-image
|
- name: boot-snapshot-delete
|
||||||
enabled: true
|
enabled: true
|
||||||
image_location: http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2.xz
|
file: rally/nova/nova-boot-snapshot-cc.yml
|
||||||
flavor_name: m1.tiny
|
image_name: cirros
|
||||||
file: rally/glance/create-and-delete-image-cc.yml
|
flavor_name: m1.tiny
|
||||||
- name: plugins
|
- name: boot-list
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
file: rally/nova/nova-boot-list-cc.yml
|
||||||
- 8
|
image_name: cirros
|
||||||
times: 64
|
flavor_name: m1.tiny
|
||||||
scenarios:
|
- name: glance
|
||||||
- name: netcreate-1-boot
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
enable_dhcp: true
|
concurrency:
|
||||||
image_name: cirros
|
- 8
|
||||||
flavor_name: m1.tiny
|
- 12
|
||||||
num_networks: 1
|
times: 64
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
scenarios:
|
||||||
- name: netcreate-5-boot
|
- name: create-and-delete-image
|
||||||
enabled: true
|
enabled: true
|
||||||
enable_dhcp: true
|
image_location: http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2.xz
|
||||||
image_name: cirros
|
flavor_name: m1.tiny
|
||||||
flavor_name: m1.tiny
|
file: rally/glance/create-and-delete-image-cc.yml
|
||||||
num_networks: 5
|
- name: plugins
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 8
|
||||||
|
times: 64
|
||||||
|
scenarios:
|
||||||
|
- name: netcreate-1-boot
|
||||||
|
enabled: true
|
||||||
|
enable_dhcp: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.tiny
|
||||||
|
num_networks: 1
|
||||||
|
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
||||||
|
- name: netcreate-5-boot
|
||||||
|
enabled: true
|
||||||
|
enable_dhcp: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.tiny
|
||||||
|
num_networks: 5
|
||||||
|
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
# Tests to be completed for the install-and-check.sh script minimal and short workloads are performed
|
# Tests to be completed for the install-and-check.sh script minimal and short workloads are performed
|
||||||
# to confirm functionality.
|
# to confirm functionality.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: {{ browbeat_cloud_name }}
|
cloud_name: {{ browbeat_cloud_name }}
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: {{ elastic_enabled }}
|
enabled: {{ elastic_enabled }}
|
||||||
host: {{ elastic_host }}
|
host: {{ elastic_host }}
|
||||||
@ -18,86 +22,111 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: {{ grafana_enabled }}
|
enabled: {{ grafana_enabled }}
|
||||||
grafana_ip: {{ grafana_host }}
|
host: {{ grafana_host }}
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
venv: /home/stack/rally-venv
|
|
||||||
plugins:
|
plugins:
|
||||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: authenticate
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 1
|
join_timeout: 600
|
||||||
times: 1
|
sleep_before: 0
|
||||||
scenarios:
|
sleep_after: 0
|
||||||
- name: authentic-keystone
|
shaker_region: regionOne
|
||||||
enabled: true
|
external_host: 2.2.2.2
|
||||||
file: rally/authenticate/keystone-cc.yml
|
yoda:
|
||||||
- name: cinder
|
instackenv: "/home/stack/instackenv.json"
|
||||||
enabled: true
|
stackrc: "/home/stack/stackrc"
|
||||||
concurrency:
|
|
||||||
- 1
|
workloads:
|
||||||
times: 1
|
- name: authenticate
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: create-attach-volume-centos
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
- 1
|
||||||
- name: keystonebasic
|
times: 1
|
||||||
enabled: false
|
scenarios:
|
||||||
concurrency:
|
- name: authentic-keystone
|
||||||
- 1
|
enabled: true
|
||||||
times: 1
|
file: rally/authenticate/keystone-cc.yml
|
||||||
scenarios:
|
|
||||||
- name: create-and-list-tenants
|
- name: cinder
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
type: rally
|
||||||
- name: neutron
|
concurrency:
|
||||||
enabled: true
|
- 1
|
||||||
concurrency:
|
times: 1
|
||||||
- 1
|
scenarios:
|
||||||
times: 1
|
- name: create-attach-volume-centos
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: create-list-network
|
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-network-cc.yml
|
- name: keystonebasic
|
||||||
- name: nova
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
concurrency:
|
concurrency:
|
||||||
- 1
|
- 1
|
||||||
times: 1
|
times: 1
|
||||||
scenarios:
|
scenarios:
|
||||||
- name: boot-snapshot-delete
|
- name: create-and-list-tenants
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/nova/nova-boot-snapshot-cc.yml
|
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.tiny
|
- name: neutron
|
||||||
- name: plugins
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
concurrency:
|
concurrency:
|
||||||
- 1
|
- 1
|
||||||
times: 1
|
times: 1
|
||||||
scenarios:
|
scenarios:
|
||||||
- name: netcreate-1-boot
|
- name: create-list-network
|
||||||
enabled: true
|
enabled: true
|
||||||
enable_dhcp: true
|
file: rally/neutron/neutron-create-list-network-cc.yml
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.tiny
|
- name: nova
|
||||||
num_networks: 1
|
enabled: true
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: boot-snapshot-delete
|
||||||
|
enabled: true
|
||||||
|
file: rally/nova/nova-boot-snapshot-cc.yml
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
|
||||||
|
- name: plugins
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: netcreate-1-boot
|
||||||
|
enabled: true
|
||||||
|
enable_dhcp: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.tiny
|
||||||
|
num_networks: 1
|
||||||
|
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
# Tests to be compleated for the install-and-check.sh script minimal and short workloads are performed
|
# Tests to be completed for the install-and-check.sh script minimal and short workloads are performed
|
||||||
# to confirm functionality.
|
# to confirm functionality.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: {{ browbeat_cloud_name }}
|
cloud_name: {{ browbeat_cloud_name }}
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: {{ elastic_enabled }}
|
enabled: {{ elastic_enabled }}
|
||||||
host: {{ elastic_host }}
|
host: {{ elastic_host }}
|
||||||
@ -18,53 +22,73 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: {{ grafana_enabled }}
|
enabled: {{ grafana_enabled }}
|
||||||
grafana_ip: {{ grafana_host }}
|
host: {{ grafana_host }}
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
|
rally:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
plugins:
|
||||||
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
yoda:
|
yoda:
|
||||||
enabled: true
|
|
||||||
instackenv: "/home/stack/instackenv.json"
|
instackenv: "/home/stack/instackenv.json"
|
||||||
stackrc: "/home/stack/stackrc"
|
stackrc: "/home/stack/stackrc"
|
||||||
benchmarks:
|
|
||||||
- name: introspect-{{ overcloud_size }}-batch-5
|
workloads:
|
||||||
type: introspection
|
- name: introspect-{{ overcloud_size }}-batch-5
|
||||||
enabled: true
|
enabled: true
|
||||||
method: individual
|
type: yoda
|
||||||
times: 3
|
yoda_type: introspection
|
||||||
timeout: 1800
|
method: individual
|
||||||
batch_size: 5
|
times: 3
|
||||||
- name: introspect-{{ overcloud_size }}-bulk
|
timeout: 1800
|
||||||
type: introspection
|
batch_size: 5
|
||||||
enabled: true
|
- name: introspect-{{ overcloud_size }}-bulk
|
||||||
method: bulk
|
enabled: true
|
||||||
times: 3
|
type: yoda
|
||||||
timeout: 1800
|
yoda_type: introspection
|
||||||
- name: HA-Max-Compute-{{ overcloud_size }}-stack-update
|
method: bulk
|
||||||
type: overcloud
|
times: 3
|
||||||
ntp_server: pool.ntp.org
|
timeout: 1800
|
||||||
timeout: 600
|
- name: HA-Max-Compute-{{ overcloud_size }}-stack-update
|
||||||
templates:
|
enabled: true
|
||||||
- ""
|
type: yoda
|
||||||
enabled: true
|
yoda_type: overcloud
|
||||||
step: 1
|
ntp_server: pool.ntp.org
|
||||||
keep_stack: true
|
timeout: 600
|
||||||
times: 1
|
templates:
|
||||||
cloud:
|
- ""
|
||||||
- node: "compute"
|
step: 1
|
||||||
start_scale: {{ overcloud_size | int - 3 }}
|
keep_stack: true
|
||||||
end_scale: {{ overcloud_size | int - 3 }}
|
times: 1
|
||||||
- node: "control"
|
cloud:
|
||||||
start_scale: 3
|
- node: "compute"
|
||||||
end_scale: 3
|
start_scale: {{ overcloud_size | int - 3 }}
|
||||||
|
end_scale: {{ overcloud_size | int - 3 }}
|
||||||
|
- node: "control"
|
||||||
|
start_scale: 3
|
||||||
|
end_scale: 3
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
# Tests to be compleated for the install-and-check.sh script minimal and short workloads are performed
|
|
||||||
# to confirm functionality.
|
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: {{ browbeat_cloud_name }}
|
cloud_name: {{ browbeat_cloud_name }}
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: {{ elastic_enabled }}
|
enabled: {{ elastic_enabled }}
|
||||||
host: {{ elastic_host }}
|
host: {{ elastic_host }}
|
||||||
@ -18,157 +20,187 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: {{ grafana_enabled }}
|
enabled: {{ grafana_enabled }}
|
||||||
grafana_ip: {{ grafana_host }}
|
host: {{ grafana_host }}
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
|
rally:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
plugins:
|
||||||
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
yoda:
|
yoda:
|
||||||
enabled: true
|
|
||||||
instackenv: "/home/stack/instackenv.json"
|
instackenv: "/home/stack/instackenv.json"
|
||||||
stackrc: "/home/stack/stackrc"
|
stackrc: "/home/stack/stackrc"
|
||||||
benchmarks:
|
|
||||||
- name: introspect-{{ overcloud_size }}-10-individual-batch-2
|
workloads:
|
||||||
type: introspection
|
|
||||||
enabled: true
|
- name: introspect-{{ overcloud_size }}-10-individual-batch-2
|
||||||
method: individual
|
type: yoda
|
||||||
times: 10
|
yoda_type: introspection
|
||||||
timeout: 900
|
enabled: true
|
||||||
batch_size: 2
|
method: individual
|
||||||
- name: introspect-{{ overcloud_size }}-10-individual-batch-4
|
times: 10
|
||||||
type: introspection
|
timeout: 900
|
||||||
enabled: true
|
batch_size: 2
|
||||||
method: individual
|
- name: introspect-{{ overcloud_size }}-10-individual-batch-4
|
||||||
times: 10
|
type: yoda
|
||||||
timeout: 900
|
yoda_type: introspection
|
||||||
batch_size: 4
|
enabled: true
|
||||||
- name: introspect-{{ overcloud_size }}-10-individual-batch-8
|
method: individual
|
||||||
type: introspection
|
times: 10
|
||||||
enabled: true
|
timeout: 900
|
||||||
method: individual
|
batch_size: 4
|
||||||
times: 10
|
- name: introspect-{{ overcloud_size }}-10-individual-batch-8
|
||||||
timeout: 900
|
type: yoda
|
||||||
batch_size: 8
|
yoda_type: introspection
|
||||||
- name: introspect-{{ overcloud_size }}-10-individual-batch-16
|
enabled: true
|
||||||
type: introspection
|
method: individual
|
||||||
enabled: true
|
times: 10
|
||||||
method: individual
|
timeout: 900
|
||||||
times: 10
|
batch_size: 8
|
||||||
timeout: 900
|
- name: introspect-{{ overcloud_size }}-10-individual-batch-16
|
||||||
batch_size: 16
|
type: yoda
|
||||||
- name: introspect-{{ overcloud_size }}-10-individual-batch-32
|
yoda_type: introspection
|
||||||
type: introspection
|
enabled: true
|
||||||
enabled: true
|
method: individual
|
||||||
method: individual
|
times: 10
|
||||||
times: 10
|
timeout: 900
|
||||||
timeout: 900
|
batch_size: 16
|
||||||
batch_size: 32
|
- name: introspect-{{ overcloud_size }}-10-individual-batch-32
|
||||||
- name: introspect-{{ overcloud_size }}-10-individual-batch-{{ overcloud_size }}
|
type: yoda
|
||||||
type: introspection
|
yoda_type: introspection
|
||||||
enabled: true
|
enabled: true
|
||||||
method: individual
|
method: individual
|
||||||
times: 10
|
times: 10
|
||||||
timeout: 900
|
timeout: 900
|
||||||
batch_size: {{ overcloud_size }}
|
batch_size: 32
|
||||||
- name: introspect-{{ overcloud_size }}-50-bulk
|
- name: introspect-{{ overcloud_size }}-10-individual-batch-{{ overcloud_size }}
|
||||||
type: introspection
|
type: yoda
|
||||||
enabled: true
|
yoda_type: introspection
|
||||||
method: bulk
|
enabled: true
|
||||||
times: 50
|
method: individual
|
||||||
timeout: 900
|
times: 10
|
||||||
- name: No-HA-Max-Compute-{{ overcloud_size }}-full-deploy
|
timeout: 900
|
||||||
type: overcloud
|
batch_size: {{ overcloud_size }}
|
||||||
ntp_server: clock01.util.phx2.redhat.com
|
- name: introspect-{{ overcloud_size }}-50-bulk
|
||||||
timeout: 600
|
type: yoda
|
||||||
templates:
|
yoda_type: introspection
|
||||||
- ""
|
enabled: true
|
||||||
enabled: true
|
method: bulk
|
||||||
step: 5
|
times: 50
|
||||||
keep_stack: false
|
timeout: 900
|
||||||
times: 2
|
- name: No-HA-Max-Compute-{{ overcloud_size }}-full-deploy
|
||||||
cloud:
|
type: yoda
|
||||||
- node: "compute"
|
yoda_type: overcloud
|
||||||
start_scale: 1
|
ntp_server: clock01.util.phx2.redhat.com
|
||||||
end_scale: {{ overcloud_size | int - 1 }}
|
timeout: 600
|
||||||
- node: "control"
|
templates:
|
||||||
start_scale: 1
|
- ""
|
||||||
end_scale: 1
|
enabled: true
|
||||||
- name: No-HA-Max-Compute-{{ overcloud_size }}-stack-update
|
step: 5
|
||||||
type: overcloud
|
keep_stack: false
|
||||||
ntp_server: clock01.util.phx2.redhat.com
|
times: 2
|
||||||
timeout: 600
|
cloud:
|
||||||
templates:
|
- node: "compute"
|
||||||
- ""
|
start_scale: 1
|
||||||
instackenv: "/home/stack/instackenv.json"
|
end_scale: {{ overcloud_size | int - 1 }}
|
||||||
enabled: true
|
- node: "control"
|
||||||
step: 5
|
start_scale: 1
|
||||||
keep_stack: true
|
end_scale: 1
|
||||||
times: 2
|
- name: No-HA-Max-Compute-{{ overcloud_size }}-stack-update
|
||||||
cloud:
|
type: yoda
|
||||||
- node: "compute"
|
yoda_type: overcloud
|
||||||
start_scale: 1
|
ntp_server: clock01.util.phx2.redhat.com
|
||||||
end_scale: {{ overcloud_size | int - 1 }}
|
timeout: 600
|
||||||
- node: "control"
|
templates:
|
||||||
start_scale: 1
|
- ""
|
||||||
end_scale: 1
|
instackenv: "/home/stack/instackenv.json"
|
||||||
- name: HA-Max-Compute-{{ overcloud_size }}-full-deploy
|
enabled: true
|
||||||
type: overcloud
|
step: 5
|
||||||
ntp_server: clock01.util.phx2.redhat.com
|
keep_stack: true
|
||||||
timeout: 600
|
times: 2
|
||||||
templates:
|
cloud:
|
||||||
- ""
|
- node: "compute"
|
||||||
enabled: true
|
start_scale: 1
|
||||||
step: 5
|
end_scale: {{ overcloud_size | int - 1 }}
|
||||||
keep_stack: false
|
- node: "control"
|
||||||
times: 2
|
start_scale: 1
|
||||||
cloud:
|
end_scale: 1
|
||||||
- node: "compute"
|
- name: HA-Max-Compute-{{ overcloud_size }}-full-deploy
|
||||||
start_scale: 1
|
type: yoda
|
||||||
end_scale: {{ overcloud_size | int - 3 }}
|
yoda_type: overcloud
|
||||||
- node: "control"
|
ntp_server: clock01.util.phx2.redhat.com
|
||||||
start_scale: 3
|
timeout: 600
|
||||||
end_scale: 3
|
templates:
|
||||||
- name: HA-Max-Compute-{{ overcloud_size }}-stack-update
|
- ""
|
||||||
type: overcloud
|
enabled: true
|
||||||
ntp_server: clock01.util.phx2.redhat.com
|
step: 5
|
||||||
timeout: 600
|
keep_stack: false
|
||||||
templates:
|
times: 2
|
||||||
- ""
|
cloud:
|
||||||
enabled: true
|
- node: "compute"
|
||||||
step: 5
|
start_scale: 1
|
||||||
keep_stack: true
|
end_scale: {{ overcloud_size | int - 3 }}
|
||||||
times: 2
|
- node: "control"
|
||||||
cloud:
|
start_scale: 3
|
||||||
- node: "compute"
|
end_scale: 3
|
||||||
start_scale: 1
|
- name: HA-Max-Compute-{{ overcloud_size }}-stack-update
|
||||||
end_scale: {{ overcloud_size | int - 3 }}
|
type: yoda
|
||||||
- node: "control"
|
yoda_type: overcloud
|
||||||
start_scale: 3
|
ntp_server: clock01.util.phx2.redhat.com
|
||||||
end_scale: 3
|
timeout: 600
|
||||||
- name: HA-Max-Compute-{{ overcloud_size }}-stack-update
|
templates:
|
||||||
type: overcloud
|
- ""
|
||||||
ntp_server: clock01.util.phx2.redhat.com
|
enabled: true
|
||||||
timeout: 600
|
step: 5
|
||||||
templates:
|
keep_stack: true
|
||||||
- ""
|
times: 2
|
||||||
enabled: true
|
cloud:
|
||||||
step: 5
|
- node: "compute"
|
||||||
keep_stack: true
|
start_scale: 1
|
||||||
times: 2
|
end_scale: {{ overcloud_size | int - 3 }}
|
||||||
cloud:
|
- node: "control"
|
||||||
- node: "compute"
|
start_scale: 3
|
||||||
start_scale: 1
|
end_scale: 3
|
||||||
end_scale: {{ overcloud_size | int - 3 }}
|
- name: HA-Max-Compute-{{ overcloud_size }}-stack-update
|
||||||
- node: "control"
|
type: yoda
|
||||||
start_scale: 3
|
yoda_type: overcloud
|
||||||
end_scale: 3
|
ntp_server: clock01.util.phx2.redhat.com
|
||||||
|
timeout: 600
|
||||||
|
templates:
|
||||||
|
- ""
|
||||||
|
enabled: true
|
||||||
|
step: 5
|
||||||
|
keep_stack: true
|
||||||
|
times: 2
|
||||||
|
cloud:
|
||||||
|
- node: "compute"
|
||||||
|
start_scale: 1
|
||||||
|
end_scale: {{ overcloud_size | int - 3 }}
|
||||||
|
- node: "control"
|
||||||
|
start_scale: 3
|
||||||
|
end_scale: 3
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
# Complete set of Stress Tests, this can take a long time (day(s))
|
# Complete set of Stress Tests, this can take a long time (day(s))
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 3
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 3
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: true
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: true
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -17,23 +21,13 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: true
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
perfkit:
|
perfkit:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
default:
|
default:
|
||||||
@ -45,13 +39,7 @@ perfkit:
|
|||||||
openstack_network: browbeat_private
|
openstack_network: browbeat_private
|
||||||
timing_measurements: runtimes
|
timing_measurements: runtimes
|
||||||
ignore_package_requirements: true
|
ignore_package_requirements: true
|
||||||
benchmarks:
|
|
||||||
- name: fio-centos-m1-small
|
|
||||||
enabled: false
|
|
||||||
benchmarks: fio
|
|
||||||
openstack_volume_size: 1
|
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
@ -59,207 +47,7 @@ rally:
|
|||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
- workloads: rally/rally-plugins/workloads
|
- workloads: rally/rally-plugins/workloads
|
||||||
benchmarks:
|
|
||||||
- name: authenticate
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 64
|
|
||||||
- 128
|
|
||||||
- 192
|
|
||||||
- 256
|
|
||||||
- 320
|
|
||||||
- 384
|
|
||||||
- 448
|
|
||||||
- 512
|
|
||||||
times: 10000
|
|
||||||
scenarios:
|
|
||||||
- name: authentic-keystone
|
|
||||||
enabled: true
|
|
||||||
file: rally/authenticate/keystone-cc.yml
|
|
||||||
sla_max_avg_duration: 6
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: authentic-neutron
|
|
||||||
enabled: true
|
|
||||||
file: rally/authenticate/validate_neutron-cc.yml
|
|
||||||
sla_max_avg_duration: 18
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: authentic-nova
|
|
||||||
enabled: true
|
|
||||||
file: rally/authenticate/validate_nova-cc.yml
|
|
||||||
sla_max_avg_duration: 12
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: cinder
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 16
|
|
||||||
- 32
|
|
||||||
- 48
|
|
||||||
- 64
|
|
||||||
times: 128
|
|
||||||
scenarios:
|
|
||||||
- name: create-attach-volume-centos
|
|
||||||
enabled: true
|
|
||||||
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: create-attach-volume-cirros
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
|
||||||
flavor_name: m1.tiny
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: keystonebasic
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 256
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: create-and-list-tenants
|
|
||||||
enabled: true
|
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: create-and-list-users
|
|
||||||
enabled: true
|
|
||||||
file: rally/keystonebasic/create_and_list_users-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: neutron
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 16
|
|
||||||
- 32
|
|
||||||
- 48
|
|
||||||
- 64
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: create-list-network
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-network-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: create-list-port
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-port-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: create-list-router
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-router-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: create-list-security-group
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-security-group-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: create-list-subnet
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-subnet-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: nova
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 16
|
|
||||||
- 32
|
|
||||||
- 48
|
|
||||||
- 64
|
|
||||||
- 80
|
|
||||||
- 96
|
|
||||||
times: 128
|
|
||||||
scenarios:
|
|
||||||
- name: boot-snapshot-delete-cirros
|
|
||||||
enabled: true
|
|
||||||
file: rally/nova/nova-boot-snapshot-cc.yml
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
- name: boot-list-cirros
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/nova/nova-boot-list-cc.yml
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
- name: boot-show-cirros
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/nova/nova-boot-show-cc.yml
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
- name: boot-bounce-delete-cirros
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/nova/nova-boot-bounce-delete-cc.yml
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
- name: boot-lock-unlock-cirros
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/nova/nova-lock-unlock-cc.yml
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
- name: glance
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 10
|
|
||||||
scenarios:
|
|
||||||
- name: create-image-boot-instances
|
|
||||||
enabled: true
|
|
||||||
image_location: /home/stack/cirros.qcow2
|
|
||||||
instances: 2
|
|
||||||
flavor_name: m1.small
|
|
||||||
file: rally/glance/create-image-and-boot-instances-cc.yml
|
|
||||||
- name: create-and-delete-image
|
|
||||||
enabled: true
|
|
||||||
image_location: /home/stack/cirros.qcow2
|
|
||||||
flavor_name: m1.small
|
|
||||||
file: rally/glance/create-and-delete-image-cc.yml
|
|
||||||
- name: create-and-list-image
|
|
||||||
enabled: true
|
|
||||||
image_location: /home/stack/cirros.qcow2
|
|
||||||
file: rally/glance/create-and-list-image-cc.yml
|
|
||||||
- name: list-images
|
|
||||||
enabled: true
|
|
||||||
file: rally/glance/list-images-cc.yml
|
|
||||||
- name: plugins
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 16
|
|
||||||
- 32
|
|
||||||
- 48
|
|
||||||
- 64
|
|
||||||
times: 128
|
|
||||||
scenarios:
|
|
||||||
- name: netcreate-boot
|
|
||||||
enabled: true
|
|
||||||
enable_dhcp: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.tiny
|
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
|
||||||
sla_max_avg_duration: 12
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: router-subnet-create-delete
|
|
||||||
enabled: true
|
|
||||||
num_networks: 50
|
|
||||||
file: rally/rally-plugins/neutron/router_subnet_create_delete.yml
|
|
||||||
- name: glance-create-boot-delete
|
|
||||||
enabled: true
|
|
||||||
image_location: /home/stack/cirros.qcow2
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/glance/glance_create_boot_delete.yml
|
|
||||||
- name: rally-port-create-associate
|
|
||||||
file: rally/rally-plugins/neutron/port_create_assoicate.yml
|
|
||||||
enabled: true
|
|
||||||
num_networks: 1
|
|
||||||
num_ports: 100
|
|
||||||
hypervisor: overcloud-compute-0.localdomain
|
|
||||||
browbeat_ssh_config: ansible/ssh-config
|
|
||||||
username: heat-admin
|
|
||||||
#shaker scenarios require atleast 2 compute nodes
|
|
||||||
shaker:
|
shaker:
|
||||||
enabled: true
|
|
||||||
server: 1.1.1.1
|
server: 1.1.1.1
|
||||||
port: 5555
|
port: 5555
|
||||||
flavor: m1.small
|
flavor: m1.small
|
||||||
@ -268,121 +56,349 @@ shaker:
|
|||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
shaker_region: regionOne
|
shaker_region: regionOne
|
||||||
external_host: 2.2.2.2
|
external_host: 2.2.2.2
|
||||||
scenarios:
|
|
||||||
- name: l2-4-1
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 1
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l2-8-1
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 1
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l2-4-2
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 2
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l2-8-2
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 2
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l3-north-south-4-1
|
|
||||||
enabled: true
|
|
||||||
placement: single_room
|
|
||||||
density: 4
|
|
||||||
compute: 1
|
|
||||||
progression: null
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-north-south-8-1
|
|
||||||
enabled: false
|
|
||||||
placement: single_room
|
|
||||||
density: 8
|
|
||||||
compute: 1
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-north-south-4-2
|
|
||||||
enabled: true
|
|
||||||
placement: single_room
|
|
||||||
density: 4
|
|
||||||
compute: 2
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-north-south-8-2
|
|
||||||
enabled: true
|
|
||||||
placement: single_room
|
|
||||||
density: 8
|
|
||||||
compute: 2
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-east-west-4-1
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 1
|
|
||||||
placement: single_room
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
- name: l3-east-west-8-1
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 1
|
|
||||||
placement: single_room
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
- name: l3-east-west-4-2
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 2
|
|
||||||
placement: single_room
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
- name: l3-east-west-8-2
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 2
|
|
||||||
time: 60
|
|
||||||
placement: single_room
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
#yoda scenarios WILL redeploy your overcloud
|
|
||||||
yoda:
|
yoda:
|
||||||
enabled: false
|
|
||||||
instackenv: "/home/stack/instackenv.json"
|
instackenv: "/home/stack/instackenv.json"
|
||||||
stackrc: "/home/stack/stackrc"
|
stackrc: "/home/stack/stackrc"
|
||||||
benchmarks:
|
|
||||||
- name: scale-deploy
|
workloads:
|
||||||
type: overcloud
|
# PerfKitBenchmarker
|
||||||
ntp_server: pool.ntp.org
|
- name: fio-centos-m1-small
|
||||||
enabled: true
|
enabled: false
|
||||||
templates:
|
type: perfkit
|
||||||
- ""
|
benchmarks: fio
|
||||||
timeout: 600 #deploy timeout in minutes
|
openstack_volume_size: 1
|
||||||
step: 1
|
|
||||||
keep_stack: false
|
# Rally
|
||||||
times: 3
|
- name: authenticate
|
||||||
cloud:
|
enabled: true
|
||||||
- node: "compute"
|
type: rally
|
||||||
start_scale: 1
|
concurrency:
|
||||||
end_scale: 1
|
- 64
|
||||||
- node: "control"
|
- 128
|
||||||
start_scale: 1
|
- 192
|
||||||
end_scale: 3
|
- 256
|
||||||
- name: introspect-batch
|
- 320
|
||||||
type: introspection
|
- 384
|
||||||
enabled: true
|
- 448
|
||||||
method: individual #other option is bulk
|
- 512
|
||||||
times: 3
|
times: 10000
|
||||||
timeout: 900 #introspection timeout in seconds
|
scenarios:
|
||||||
batch_size: 2
|
- name: authentic-keystone
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
||||||
|
sla_max_avg_duration: 6
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: authentic-neutron
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/validate_neutron-cc.yml
|
||||||
|
sla_max_avg_duration: 18
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: authentic-nova
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/validate_nova-cc.yml
|
||||||
|
sla_max_avg_duration: 12
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: cinder
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 16
|
||||||
|
- 32
|
||||||
|
- 48
|
||||||
|
- 64
|
||||||
|
times: 128
|
||||||
|
scenarios:
|
||||||
|
- name: create-attach-volume-centos
|
||||||
|
enabled: true
|
||||||
|
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-attach-volume-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
||||||
|
flavor_name: m1.tiny
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: keystonebasic
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 256
|
||||||
|
times: 5000
|
||||||
|
scenarios:
|
||||||
|
- name: create-and-list-tenants
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-and-list-users
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_and_list_users-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: neutron
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 16
|
||||||
|
- 32
|
||||||
|
- 48
|
||||||
|
- 64
|
||||||
|
times: 500
|
||||||
|
scenarios:
|
||||||
|
- name: create-list-network
|
||||||
|
enabled: true
|
||||||
|
file: rally/neutron/neutron-create-list-network-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-list-port
|
||||||
|
enabled: true
|
||||||
|
file: rally/neutron/neutron-create-list-port-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-list-router
|
||||||
|
enabled: true
|
||||||
|
file: rally/neutron/neutron-create-list-router-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-list-security-group
|
||||||
|
enabled: true
|
||||||
|
file: rally/neutron/neutron-create-list-security-group-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-list-subnet
|
||||||
|
enabled: true
|
||||||
|
file: rally/neutron/neutron-create-list-subnet-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: nova
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 16
|
||||||
|
- 32
|
||||||
|
- 48
|
||||||
|
- 64
|
||||||
|
- 80
|
||||||
|
- 96
|
||||||
|
times: 128
|
||||||
|
scenarios:
|
||||||
|
- name: boot-snapshot-delete-cirros
|
||||||
|
enabled: true
|
||||||
|
file: rally/nova/nova-boot-snapshot-cc.yml
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-list-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-boot-list-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-show-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-boot-show-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-bounce-delete-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-boot-bounce-delete-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-lock-unlock-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-lock-unlock-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: glance
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 8
|
||||||
|
times: 10
|
||||||
|
scenarios:
|
||||||
|
- name: create-image-boot-instances
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
instances: 2
|
||||||
|
flavor_name: m1.small
|
||||||
|
file: rally/glance/create-image-and-boot-instances-cc.yml
|
||||||
|
- name: create-and-delete-image
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
flavor_name: m1.small
|
||||||
|
file: rally/glance/create-and-delete-image-cc.yml
|
||||||
|
- name: create-and-list-image
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
file: rally/glance/create-and-list-image-cc.yml
|
||||||
|
- name: list-images
|
||||||
|
enabled: true
|
||||||
|
file: rally/glance/list-images-cc.yml
|
||||||
|
- name: plugins
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 16
|
||||||
|
- 32
|
||||||
|
- 48
|
||||||
|
- 64
|
||||||
|
times: 128
|
||||||
|
scenarios:
|
||||||
|
- name: netcreate-boot
|
||||||
|
enabled: true
|
||||||
|
enable_dhcp: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.tiny
|
||||||
|
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
||||||
|
sla_max_avg_duration: 12
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: router-subnet-create-delete
|
||||||
|
enabled: true
|
||||||
|
num_networks: 50
|
||||||
|
file: rally/rally-plugins/neutron/router_subnet_create_delete.yml
|
||||||
|
- name: glance-create-boot-delete
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
file: rally/rally-plugins/glance/glance_create_boot_delete.yml
|
||||||
|
- name: rally-port-create-associate
|
||||||
|
file: rally/rally-plugins/neutron/port_create_assoicate.yml
|
||||||
|
enabled: true
|
||||||
|
num_networks: 1
|
||||||
|
num_ports: 100
|
||||||
|
hypervisor: overcloud-compute-0.localdomain
|
||||||
|
browbeat_ssh_config: ansible/ssh-config
|
||||||
|
username: heat-admin
|
||||||
|
|
||||||
|
# Shaker scenarios require atleast 2 compute nodes
|
||||||
|
- name: l2-4-1
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 4
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: l2-8-1
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 8
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: l2-4-2
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 4
|
||||||
|
compute: 2
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: l2-8-2
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 8
|
||||||
|
compute: 2
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: l3-north-south-4-1
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
placement: single_room
|
||||||
|
density: 4
|
||||||
|
compute: 1
|
||||||
|
progression: null
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
||||||
|
- name: l3-north-south-8-1
|
||||||
|
enabled: false
|
||||||
|
type: shaker
|
||||||
|
placement: single_room
|
||||||
|
density: 8
|
||||||
|
compute: 1
|
||||||
|
progression: null
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
||||||
|
- name: l3-north-south-4-2
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
placement: single_room
|
||||||
|
density: 4
|
||||||
|
compute: 2
|
||||||
|
progression: null
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
||||||
|
- name: l3-north-south-8-2
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
placement: single_room
|
||||||
|
density: 8
|
||||||
|
compute: 2
|
||||||
|
progression: null
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
||||||
|
- name: l3-east-west-4-1
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 4
|
||||||
|
compute: 1
|
||||||
|
placement: single_room
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
||||||
|
- name: l3-east-west-8-1
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 8
|
||||||
|
compute: 1
|
||||||
|
placement: single_room
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
||||||
|
- name: l3-east-west-4-2
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 4
|
||||||
|
compute: 2
|
||||||
|
placement: single_room
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
||||||
|
- name: l3-east-west-8-2
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 8
|
||||||
|
compute: 2
|
||||||
|
time: 60
|
||||||
|
placement: single_room
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
||||||
|
|
||||||
|
# Yoda scenarios WILL redeploy your overcloud
|
||||||
|
- name: scale-deploy
|
||||||
|
enabled: true
|
||||||
|
type: yoda
|
||||||
|
yoda_type: overcloud
|
||||||
|
ntp_server: pool.ntp.org
|
||||||
|
templates:
|
||||||
|
- ""
|
||||||
|
timeout: 600 #deploy timeout in minutes
|
||||||
|
step: 1
|
||||||
|
keep_stack: false
|
||||||
|
times: 3
|
||||||
|
cloud:
|
||||||
|
- node: "compute"
|
||||||
|
start_scale: 1
|
||||||
|
end_scale: 1
|
||||||
|
- node: "control"
|
||||||
|
start_scale: 1
|
||||||
|
end_scale: 3
|
||||||
|
- name: introspect-batch
|
||||||
|
enabled: true
|
||||||
|
type: yoda
|
||||||
|
yoda_type: introspection
|
||||||
|
method: individual #other option is bulk
|
||||||
|
times: 3
|
||||||
|
timeout: 900 #introspection timeout in seconds
|
||||||
|
batch_size: 2
|
||||||
|
@ -1,13 +1,21 @@
|
|||||||
# Basic set of initial stress tests to test overcloud before running complete set of benchmarks.
|
# Basic set of initial stress tests to test overcloud before running complete set of benchmarks.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
# Two types of rerun:
|
||||||
|
# iteration reruns on the iteration
|
||||||
|
# complete reruns after all workloads complete
|
||||||
|
# rerun_type: complete
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: true
|
enabled: false
|
||||||
regather: true
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -17,23 +25,13 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: true
|
enabled: false
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
perfkit:
|
perfkit:
|
||||||
enabled: false
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
default:
|
default:
|
||||||
@ -45,45 +43,7 @@ perfkit:
|
|||||||
openstack_network: browbeat_private
|
openstack_network: browbeat_private
|
||||||
timing_measurements: runtimes
|
timing_measurements: runtimes
|
||||||
ignore_package_requirements: true
|
ignore_package_requirements: true
|
||||||
benchmarks:
|
|
||||||
- name: fio-centos-m1-small
|
|
||||||
enabled: false
|
|
||||||
benchmarks: fio
|
|
||||||
openstack_volume_size: 1
|
|
||||||
shaker:
|
|
||||||
enabled: true
|
|
||||||
server: 1.1.1.1
|
|
||||||
port: 5555
|
|
||||||
flavor: m1.small
|
|
||||||
join_timeout: 600
|
|
||||||
sleep_before: 5
|
|
||||||
sleep_after: 5
|
|
||||||
shaker_region: regionOne
|
|
||||||
external_host: 2.2.2.2
|
|
||||||
scenarios:
|
|
||||||
- name: l2
|
|
||||||
enabled: true
|
|
||||||
density: 1
|
|
||||||
compute: 1
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l3-north-south
|
|
||||||
enabled: true
|
|
||||||
placement: double_room
|
|
||||||
density: 1
|
|
||||||
compute: 1
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-east-west
|
|
||||||
enabled: true
|
|
||||||
density: 1
|
|
||||||
compute: 1
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
@ -91,178 +51,231 @@ rally:
|
|||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
- workloads: rally/rally-plugins/workloads
|
- workloads: rally/rally-plugins/workloads
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: authenticate
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 8
|
join_timeout: 600
|
||||||
times: 100
|
sleep_before: 0
|
||||||
scenarios:
|
sleep_after: 0
|
||||||
- name: authentic-keystone
|
shaker_region: regionOne
|
||||||
enabled: true
|
external_host: 2.2.2.2
|
||||||
file: rally/authenticate/keystone-cc.yml
|
yoda:
|
||||||
- name: authentic-neutron
|
instackenv: "/home/stack/instackenv.json"
|
||||||
enabled: true
|
stackrc: "/home/stack/stackrc"
|
||||||
file: rally/authenticate/validate_neutron-cc.yml
|
|
||||||
- name: authentic-nova
|
|
||||||
enabled: true
|
|
||||||
file: rally/authenticate/validate_nova-cc.yml
|
|
||||||
|
|
||||||
- name: cinder
|
workloads:
|
||||||
enabled: true
|
# PerfKitBenchmarker
|
||||||
concurrency:
|
- name: fio-centos-m1-small
|
||||||
- 2
|
enabled: false
|
||||||
times: 10
|
type: perfkit
|
||||||
scenarios:
|
benchmarks: fio
|
||||||
- name: create-attach-volume-cirros
|
openstack_volume_size: 1
|
||||||
enabled: true
|
# Shaker
|
||||||
image_name: cirros
|
- name: shaker-l2
|
||||||
flavor_name: m1.tiny
|
enabled: true
|
||||||
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
type: shaker
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: shaker-l3-north-south
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
placement: double_room
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
progression: null
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
||||||
|
- name: shaker-l3-east-west
|
||||||
|
enabled: true
|
||||||
|
type: shaker
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
||||||
|
# Rally
|
||||||
|
- name: authenticate
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 8
|
||||||
|
times: 100
|
||||||
|
scenarios:
|
||||||
|
- name: authentic-keystone
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
||||||
|
- name: authentic-neutron
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/validate_neutron-cc.yml
|
||||||
|
- name: authentic-nova
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/validate_nova-cc.yml
|
||||||
|
|
||||||
- name: keystonebasic
|
- name: cinder
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
type: rally
|
||||||
- 8
|
concurrency:
|
||||||
times: 100
|
- 2
|
||||||
scenarios:
|
times: 10
|
||||||
- name: create-and-list-tenants
|
scenarios:
|
||||||
enabled: false
|
- name: create-attach-volume-cirros
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
enabled: true
|
||||||
- name: create-and-list-users
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.tiny
|
||||||
file: rally/keystonebasic/create_and_list_users-cc.yml
|
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
||||||
|
|
||||||
- name: neutron
|
- name: keystonebasic
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
type: rally
|
||||||
- 2
|
concurrency:
|
||||||
times: 10
|
- 8
|
||||||
scenarios:
|
times: 100
|
||||||
- name: create-list-network
|
scenarios:
|
||||||
enabled: true
|
- name: create-and-list-tenants
|
||||||
file: rally/neutron/neutron-create-list-network-cc.yml
|
enabled: false
|
||||||
- name: create-list-port
|
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
||||||
enabled: true
|
- name: create-and-list-users
|
||||||
file: rally/neutron/neutron-create-list-port-cc.yml
|
enabled: true
|
||||||
- name: create-list-router
|
file: rally/keystonebasic/create_and_list_users-cc.yml
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-router-cc.yml
|
|
||||||
- name: create-list-security-group
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-security-group-cc.yml
|
|
||||||
- name: create-list-subnet
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-subnet-cc.yml
|
|
||||||
|
|
||||||
- name: nova
|
- name: neutron
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
type: rally
|
||||||
- 2
|
concurrency:
|
||||||
times: 10
|
- 2
|
||||||
scenarios:
|
times: 10
|
||||||
- name: boot-snapshot-delete-cirros
|
scenarios:
|
||||||
enabled: true
|
- name: create-list-network
|
||||||
file: rally/nova/nova-boot-snapshot-cc.yml
|
enabled: true
|
||||||
image_name: cirros
|
file: rally/neutron/neutron-create-list-network-cc.yml
|
||||||
flavor_name: m1.xtiny
|
- name: create-list-port
|
||||||
- name: boot-list-cirros
|
enabled: true
|
||||||
enabled: true
|
file: rally/neutron/neutron-create-list-port-cc.yml
|
||||||
image_name: cirros
|
- name: create-list-router
|
||||||
file: rally/nova/nova-boot-list-cc.yml
|
enabled: true
|
||||||
flavor_name: m1.xtiny
|
file: rally/neutron/neutron-create-list-router-cc.yml
|
||||||
- name: boot-show-cirros
|
- name: create-list-security-group
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
file: rally/neutron/neutron-create-list-security-group-cc.yml
|
||||||
file: rally/nova/nova-boot-show-cc.yml
|
- name: create-list-subnet
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
- name: boot-bounce-delete-cirros
|
file: rally/neutron/neutron-create-list-subnet-cc.yml
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/nova/nova-boot-bounce-delete-cc.yml
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
- name: boot-lock-unlock-cirros
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
file: rally/nova/nova-lock-unlock-cc.yml
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
|
|
||||||
- name: glance
|
- name: nova
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
type: rally
|
||||||
- 2
|
concurrency:
|
||||||
times: 10
|
- 2
|
||||||
scenarios:
|
times: 10
|
||||||
- name: create-and-delete-image
|
scenarios:
|
||||||
enabled: true
|
- name: boot-snapshot-delete-cirros
|
||||||
image_location: /home/stack/cirros.qcow2
|
enabled: true
|
||||||
container_format: bare
|
file: rally/nova/nova-boot-snapshot-cc.yml
|
||||||
disk_format: qcow2
|
image_name: cirros
|
||||||
file: rally/glance/create-and-delete-image-cc.yml
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-list-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-boot-list-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-show-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-boot-show-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-bounce-delete-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-boot-bounce-delete-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
- name: boot-lock-unlock-cirros
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
file: rally/nova/nova-lock-unlock-cc.yml
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
|
||||||
- name: simple-plugins
|
- name: glance
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
type: rally
|
||||||
- 8
|
concurrency:
|
||||||
times: 10
|
- 2
|
||||||
scenarios:
|
times: 10
|
||||||
- name: netcreate-boot
|
scenarios:
|
||||||
enabled: true
|
- name: create-and-delete-image
|
||||||
enable_dhcp: true
|
enabled: true
|
||||||
image_name: cirros
|
image_location: /home/stack/cirros.qcow2
|
||||||
flavor_name: m1.tiny
|
container_format: bare
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
disk_format: qcow2
|
||||||
- name: netcreate-boot-ping
|
file: rally/glance/create-and-delete-image-cc.yml
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
ext_net_id:
|
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot_fip_ping.yml
|
|
||||||
- name: router-subnet-create-delete
|
|
||||||
enabled: true
|
|
||||||
num_networks: 5
|
|
||||||
file: rally/rally-plugins/neutron/router_subnet_create_delete.yml
|
|
||||||
- name: glance-create-boot-delete
|
|
||||||
enabled: true
|
|
||||||
image_location: /home/stack/cirros.qcow2
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/glance/glance_create_boot_delete.yml
|
|
||||||
- name: neutron-securitygroup-port
|
|
||||||
enabled: true
|
|
||||||
file: rally/rally-plugins/neutron/securitygroup_port.yml
|
|
||||||
|
|
||||||
- name: plugin-workloads
|
- name: simple-plugins
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
type: rally
|
||||||
- 1
|
concurrency:
|
||||||
times: 1
|
- 8
|
||||||
scenarios:
|
times: 10
|
||||||
- name: linpack
|
scenarios:
|
||||||
enabled: true
|
- name: netcreate-boot
|
||||||
image_name: browbeat-linpack
|
enabled: true
|
||||||
flavor_name: m1.small
|
enable_dhcp: true
|
||||||
external_network:
|
image_name: cirros
|
||||||
net_id:
|
flavor_name: m1.tiny
|
||||||
file: rally/rally-plugins/workloads/linpack.yml
|
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot.yml
|
||||||
|
- name: netcreate-boot-ping
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
ext_net_id:
|
||||||
|
file: rally/rally-plugins/netcreate-boot/netcreate_nova_boot_fip_ping.yml
|
||||||
|
- name: router-subnet-create-delete
|
||||||
|
enabled: true
|
||||||
|
num_networks: 5
|
||||||
|
file: rally/rally-plugins/neutron/router_subnet_create_delete.yml
|
||||||
|
- name: glance-create-boot-delete
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
file: rally/rally-plugins/glance/glance_create_boot_delete.yml
|
||||||
|
- name: neutron-securitygroup-port
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/neutron/securitygroup_port.yml
|
||||||
|
|
||||||
- name: browbeat-pbench-uperf
|
- name: plugin-workloads
|
||||||
enabled: true
|
enabled: false
|
||||||
user: root
|
type: rally
|
||||||
image_name: browbeat-uperf
|
concurrency:
|
||||||
flavor_name: m1.small
|
- 1
|
||||||
# hypervisor_server: "nova:overcloud-compute-1.localdomain"
|
times: 1
|
||||||
# hypervisor_client: "nova:overcloud-compute-0.localdomain"
|
scenarios:
|
||||||
external_network:
|
- name: linpack
|
||||||
net_id:
|
enabled: true
|
||||||
protocols: tcp,udp
|
image_name: browbeat-linpack
|
||||||
instances: 1
|
flavor_name: m1.small
|
||||||
num_pairs: 1
|
external_network:
|
||||||
samples: 1
|
net_id:
|
||||||
test_types: stream,rr
|
file: rally/rally-plugins/workloads/linpack.yml
|
||||||
message_sizes: 64,1024,16384
|
|
||||||
test_name: "browbeat-pbench-uperf"
|
- name: browbeat-pbench-uperf
|
||||||
send_results: true
|
enabled: true
|
||||||
cloudname:
|
user: root
|
||||||
elastic_host:
|
image_name: browbeat-uperf
|
||||||
elastic_port: 9200
|
flavor_name: m1.small
|
||||||
file: rally/rally-plugins/workloads/pbench-uperf.yml
|
# hypervisor_server: "nova:overcloud-compute-1.localdomain"
|
||||||
|
# hypervisor_client: "nova:overcloud-compute-0.localdomain"
|
||||||
|
external_network:
|
||||||
|
net_id:
|
||||||
|
protocols: tcp,udp
|
||||||
|
instances: 1
|
||||||
|
num_pairs: 1
|
||||||
|
samples: 1
|
||||||
|
test_types: stream,rr
|
||||||
|
message_sizes: 64,1024,16384
|
||||||
|
test_name: "browbeat-pbench-uperf"
|
||||||
|
send_results: true
|
||||||
|
cloudname:
|
||||||
|
elastic_host:
|
||||||
|
elastic_port: 9200
|
||||||
|
file: rally/rally-plugins/workloads/pbench-uperf.yml
|
||||||
|
159
browbeat.py
159
browbeat.py
@ -21,6 +21,8 @@ import time
|
|||||||
import browbeat.elastic
|
import browbeat.elastic
|
||||||
import browbeat.tools
|
import browbeat.tools
|
||||||
import browbeat.workloadbase
|
import browbeat.workloadbase
|
||||||
|
from browbeat.config import load_browbeat_config
|
||||||
|
from browbeat.path import results_path
|
||||||
|
|
||||||
_workload_opts = ['perfkit', 'rally', 'shaker', 'yoda']
|
_workload_opts = ['perfkit', 'rally', 'shaker', 'yoda']
|
||||||
_config_file = 'browbeat-config.yaml'
|
_config_file = 'browbeat-config.yaml'
|
||||||
@ -28,26 +30,20 @@ debug_log_file = 'log/debug.log'
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
tools = browbeat.tools.Tools()
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="Browbeat Performance and Scale testing for Openstack")
|
description="Browbeat Performance and Scale testing for Openstack")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-s',
|
'-s', '--setup', nargs='?', default=_config_file,
|
||||||
'--setup',
|
|
||||||
nargs='?',
|
|
||||||
default=_config_file,
|
|
||||||
help='Provide Browbeat YAML configuration file. Default is ./{}'.format(_config_file))
|
help='Provide Browbeat YAML configuration file. Default is ./{}'.format(_config_file))
|
||||||
parser.add_argument('workloads', nargs='*', help='Browbeat workload(s). Takes a space separated'
|
parser.add_argument(
|
||||||
' list of workloads ({}) or \"all\"'.format(', '.join(_workload_opts)))
|
'workloads', nargs='*', help='Browbeat workload(s). Takes a space separated'
|
||||||
parser.add_argument('--debug', action='store_true',
|
' list of workloads ({}) or \"all\"'.format(', '.join(_workload_opts)))
|
||||||
help='Enable Debug messages')
|
parser.add_argument('--debug', action='store_true', help='Enable Debug messages')
|
||||||
parser.add_argument('-p', '--postprocess',
|
parser.add_argument(
|
||||||
dest="path", help="Path to process, ie results/20170101/")
|
'-p', '--postprocess', dest="path", help="Path to process, ie results/20171130-191420/")
|
||||||
parser.add_argument('-c', '--compare',
|
parser.add_argument(
|
||||||
help="Compare metadata", dest="compare",
|
'-c', '--compare', help="Compare metadata", dest="compare", choices=['software-metadata'])
|
||||||
choices=['software-metadata'])
|
parser.add_argument('-u', '--uuid', help="UUIDs to pass", dest="uuids", nargs=2)
|
||||||
parser.add_argument('-u', '--uuid',
|
|
||||||
help="UUIDs to pass", dest="uuids", nargs=2)
|
|
||||||
_cli_args = parser.parse_args()
|
_cli_args = parser.parse_args()
|
||||||
|
|
||||||
_logger = logging.getLogger('browbeat')
|
_logger = logging.getLogger('browbeat')
|
||||||
@ -70,8 +66,10 @@ def main():
|
|||||||
_logger.debug("CLI Args: {}".format(_cli_args))
|
_logger.debug("CLI Args: {}".format(_cli_args))
|
||||||
|
|
||||||
# Load Browbeat yaml config file:
|
# Load Browbeat yaml config file:
|
||||||
_config = tools._load_config(_cli_args.setup)
|
_config = load_browbeat_config(_cli_args.setup)
|
||||||
|
tools = browbeat.tools.Tools(_config)
|
||||||
|
|
||||||
|
# Browbeat compare
|
||||||
if _cli_args.compare == "software-metadata":
|
if _cli_args.compare == "software-metadata":
|
||||||
es = browbeat.elastic.Elastic(_config, "BrowbeatCLI")
|
es = browbeat.elastic.Elastic(_config, "BrowbeatCLI")
|
||||||
es.compare_metadata("_all", 'controller', _cli_args.uuids)
|
es.compare_metadata("_all", 'controller', _cli_args.uuids)
|
||||||
@ -81,74 +79,93 @@ def main():
|
|||||||
parser.print_help()
|
parser.print_help()
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
# Default to all workloads
|
# Browbeat postprocess
|
||||||
|
if _cli_args.path:
|
||||||
|
_logger.info("Browbeat Postprocessing {}".format(_cli_args.path))
|
||||||
|
return tools.post_process(_cli_args)
|
||||||
|
|
||||||
|
# Browbeat workload - "browbeat run"
|
||||||
if _cli_args.workloads == []:
|
if _cli_args.workloads == []:
|
||||||
_cli_args.workloads.append('all')
|
_cli_args.workloads.append('all')
|
||||||
if _cli_args.path:
|
|
||||||
return tools.post_process(_cli_args)
|
|
||||||
|
|
||||||
if len(_cli_args.workloads) == 1 and 'all' in _cli_args.workloads:
|
if len(_cli_args.workloads) == 1 and 'all' in _cli_args.workloads:
|
||||||
_cli_args.workloads = _workload_opts
|
_cli_args.workloads = _workload_opts
|
||||||
invalid_wkld = [
|
invalid_wkld = [wkld for wkld in _cli_args.workloads if wkld not in _workload_opts]
|
||||||
wkld for wkld in _cli_args.workloads if wkld not in _workload_opts]
|
|
||||||
if invalid_wkld:
|
if invalid_wkld:
|
||||||
_logger.error("Invalid workload(s) specified: {}".format(invalid_wkld))
|
_logger.error("Invalid workload(s) specified: {}".format(invalid_wkld))
|
||||||
if 'all' in _cli_args.workloads:
|
if 'all' in _cli_args.workloads:
|
||||||
_logger.error(
|
_logger.error(
|
||||||
"If you meant 'all' use: './browbeat.py all' or './browbeat.py'")
|
"If you meant 'all' use: './browbeat.py all' or './browbeat.py'")
|
||||||
exit(1)
|
exit(1)
|
||||||
else:
|
|
||||||
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
|
||||||
_logger.info("Browbeat test suite kicked off")
|
|
||||||
_logger.info("Browbeat UUID: {}".format(browbeat.elastic.browbeat_uuid))
|
|
||||||
if _config['elasticsearch']['enabled']:
|
|
||||||
_logger.info("Checking for Metadata")
|
|
||||||
metadata_exists = tools.check_metadata()
|
|
||||||
if not metadata_exists:
|
|
||||||
_logger.error("Elasticsearch has been enabled but"
|
|
||||||
" metadata files do not exist")
|
|
||||||
_logger.info("Gathering Metadata")
|
|
||||||
tools.gather_metadata()
|
|
||||||
elif _config['elasticsearch']['regather']:
|
|
||||||
_logger.info("Regathering Metadata")
|
|
||||||
tools.gather_metadata()
|
|
||||||
|
|
||||||
_logger.info("Running workload(s): {}".format(
|
result_dir_ts = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
||||||
','.join(_cli_args.workloads)))
|
_logger.info("Browbeat test suite kicked off")
|
||||||
for wkld_provider in _cli_args.workloads:
|
_logger.info("Browbeat UUID: {}".format(browbeat.elastic.browbeat_uuid))
|
||||||
if wkld_provider in _config:
|
if _config['elasticsearch']['enabled']:
|
||||||
if _config[wkld_provider]['enabled']:
|
_logger.info("Checking for Metadata")
|
||||||
tools._run_workload_provider(wkld_provider)
|
metadata_exists = tools.check_metadata()
|
||||||
else:
|
if not metadata_exists:
|
||||||
_logger.warning("{} is not enabled in {}".format(wkld_provider,
|
_logger.error("Elasticsearch has been enabled but"
|
||||||
_cli_args.setup))
|
" metadata files do not exist")
|
||||||
else:
|
_logger.info("Gathering Metadata")
|
||||||
_logger.error("{} is missing in {}".format(
|
tools.gather_metadata()
|
||||||
wkld_provider, _cli_args.setup))
|
elif _config['elasticsearch']['regather']:
|
||||||
result_dir = _config['browbeat']['results']
|
_logger.info("Regathering Metadata")
|
||||||
browbeat.workloadbase.WorkloadBase.print_report(result_dir, time_stamp)
|
tools.gather_metadata()
|
||||||
_logger.info("Saved browbeat result summary to {}".format(
|
|
||||||
os.path.join(result_dir, time_stamp + '.' + 'report')))
|
|
||||||
browbeat.workloadbase.WorkloadBase.print_summary()
|
|
||||||
|
|
||||||
browbeat_rc = 0
|
_logger.info("Running workload(s): {}".format(','.join(_cli_args.workloads)))
|
||||||
if browbeat.workloadbase.WorkloadBase.failure > 0:
|
# Iteration rerun_type pushes rerun logic down to the workload itself. This allows the workload
|
||||||
browbeat_rc = 1
|
# to run multiple times before moving to the next workload
|
||||||
if browbeat.workloadbase.WorkloadBase.index_failures > 0:
|
if _config["browbeat"]["rerun_type"] == "iteration":
|
||||||
browbeat_rc = 2
|
for workload in _config["workloads"]:
|
||||||
|
if not workload["enabled"]:
|
||||||
|
_logger.info("{} workload {} disabled in browbeat config".format(workload["type"],
|
||||||
|
workload["name"]))
|
||||||
|
continue
|
||||||
|
|
||||||
if browbeat_rc == 1:
|
if not workload["type"] in _cli_args.workloads:
|
||||||
_logger.info("Browbeat finished with test failures, UUID: {}".format(
|
_logger.info(
|
||||||
browbeat.elastic.browbeat_uuid))
|
"{} workload {} disabled via cli".format(workload["type"], workload["name"]))
|
||||||
sys.exit(browbeat_rc)
|
continue
|
||||||
elif browbeat_rc == 2:
|
|
||||||
_logger.info("Browbeat finished with Elasticsearch indexing failures, UUID: {}"
|
_logger.info("{} workload {} is enabled".format(workload["type"], workload["name"]))
|
||||||
.format(browbeat.elastic.browbeat_uuid))
|
tools.run_workload(workload, result_dir_ts, 0)
|
||||||
sys.exit(browbeat_rc)
|
browbeat.workloadbase.WorkloadBase.print_summary()
|
||||||
else:
|
|
||||||
_logger.info("Browbeat finished successfully, UUID: {}".format(
|
elif _config["browbeat"]["rerun_type"] == "complete":
|
||||||
browbeat.elastic.browbeat_uuid))
|
# Complete rerun_type, reruns after all workloads have been run.
|
||||||
sys.exit(0)
|
for run_iteration in range(0, _config["browbeat"]["rerun"]):
|
||||||
|
for workload in _config["workloads"]:
|
||||||
|
if not workload["enabled"]:
|
||||||
|
_logger.info("{} workload {} disabled in browbeat config"
|
||||||
|
.format(workload["type"], workload["name"]))
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not workload["type"] in _cli_args.workloads:
|
||||||
|
_logger.info("{} workload {} disabled via cli".format(workload["type"],
|
||||||
|
workload["name"]))
|
||||||
|
continue
|
||||||
|
|
||||||
|
_logger.info("{} workload {} is enabled".format(workload["type"], workload["name"]))
|
||||||
|
tools.run_workload(workload, result_dir_ts, run_iteration)
|
||||||
|
browbeat.workloadbase.WorkloadBase.print_summary()
|
||||||
|
|
||||||
|
browbeat.workloadbase.WorkloadBase.print_report(results_path, result_dir_ts)
|
||||||
|
_logger.info("Saved browbeat result summary to {}"
|
||||||
|
.format(os.path.join(results_path, "{}.report".format(result_dir_ts))))
|
||||||
|
|
||||||
|
if browbeat.workloadbase.WorkloadBase.failure > 0:
|
||||||
|
_logger.info(
|
||||||
|
"Browbeat finished with test failures, UUID: {}".format(browbeat.elastic.browbeat_uuid))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if browbeat.workloadbase.WorkloadBase.index_failures > 0:
|
||||||
|
_logger.info("Browbeat finished with Elasticsearch indexing failures, UUID: {}"
|
||||||
|
.format(browbeat.elastic.browbeat_uuid))
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
_logger.info("Browbeat finished successfully, UUID: {}".format(browbeat.elastic.browbeat_uuid))
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
|
57
browbeat/config.py
Normal file
57
browbeat/config.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
from pykwalify import core as pykwalify_core
|
||||||
|
from pykwalify import errors as pykwalify_errors
|
||||||
|
|
||||||
|
from browbeat.path import conf_schema_path
|
||||||
|
|
||||||
|
|
||||||
|
_logger = logging.getLogger("browbeat.config")
|
||||||
|
|
||||||
|
def load_browbeat_config(path):
|
||||||
|
"""Loads and validates an entire Browbeat config per the expected schema.
|
||||||
|
|
||||||
|
:param path: The path to the Browbeat Config file
|
||||||
|
"""
|
||||||
|
with open(path, "r") as config_file:
|
||||||
|
browbeat_config = yaml.safe_load(config_file)
|
||||||
|
_logger.debug("Browbeat config {} yaml loaded".format(path))
|
||||||
|
|
||||||
|
# Validate base config for Browbeat format
|
||||||
|
_validate_yaml("browbeat", browbeat_config)
|
||||||
|
_logger.info("Config {} validated".format(path))
|
||||||
|
|
||||||
|
# Validate per-workloads
|
||||||
|
for workload in browbeat_config["workloads"]:
|
||||||
|
_validate_yaml(workload["type"], workload)
|
||||||
|
_logger.info("Workload {} validated as {}".format(workload["name"], workload["type"]))
|
||||||
|
|
||||||
|
return browbeat_config
|
||||||
|
|
||||||
|
def _validate_yaml(schema, config):
|
||||||
|
"""Raises exception if config is invalid.
|
||||||
|
|
||||||
|
:param schema: The schema to validate with (browbeat, perfkit, rally...)
|
||||||
|
:param config: Loaded yaml to validate
|
||||||
|
"""
|
||||||
|
with open("{}/{}.yml".format(conf_schema_path, schema), "r") as schema_file:
|
||||||
|
schema = yaml.safe_load(schema_file)
|
||||||
|
check = pykwalify_core.Core(source_data=config, schema_data=schema)
|
||||||
|
try:
|
||||||
|
check.validate(raise_exception=True)
|
||||||
|
except pykwalify_errors.SchemaError as e:
|
||||||
|
_logger.error("Schema validation failed")
|
||||||
|
raise Exception("File does not conform to {} schema: {}".format(schema, e))
|
@ -19,8 +19,8 @@ class Grafana(object):
|
|||||||
self.logger = logging.getLogger('browbeat.grafana')
|
self.logger = logging.getLogger('browbeat.grafana')
|
||||||
self.config = config
|
self.config = config
|
||||||
self.cloud_name = self.config['browbeat']['cloud_name']
|
self.cloud_name = self.config['browbeat']['cloud_name']
|
||||||
self.grafana_ip = self.config['grafana']['grafana_ip']
|
self.host = self.config['grafana']['host']
|
||||||
self.grafana_port = self.config['grafana']['grafana_port']
|
self.port = self.config['grafana']['port']
|
||||||
self.grafana_url = {}
|
self.grafana_url = {}
|
||||||
|
|
||||||
def grafana_urls(self):
|
def grafana_urls(self):
|
||||||
@ -31,7 +31,7 @@ class Grafana(object):
|
|||||||
from_ts = time['from_ts']
|
from_ts = time['from_ts']
|
||||||
to_ts = time['to_ts']
|
to_ts = time['to_ts']
|
||||||
url = 'http://{}:{}/dashboard/db/'.format(
|
url = 'http://{}:{}/dashboard/db/'.format(
|
||||||
self.grafana_ip, self.grafana_port)
|
self.host, self.port)
|
||||||
for dashboard in self.config['grafana']['dashboards']:
|
for dashboard in self.config['grafana']['dashboards']:
|
||||||
self.grafana_url[dashboard] = '{}{}?from={}&to={}&var-Cloud={}'.format(
|
self.grafana_url[dashboard] = '{}{}?from={}&to={}&var-Cloud={}'.format(
|
||||||
url,
|
url,
|
||||||
|
@ -27,6 +27,8 @@ base_path = os.path.abspath(os.path.join(browbeat_path, os.pardir))
|
|||||||
|
|
||||||
conf_path = os.path.join(browbeat_path, 'conf')
|
conf_path = os.path.join(browbeat_path, 'conf')
|
||||||
|
|
||||||
|
conf_schema_path = os.path.join(browbeat_project_path, 'schema')
|
||||||
|
|
||||||
log_path = os.path.join(browbeat_path, 'log')
|
log_path = os.path.join(browbeat_path, 'log')
|
||||||
|
|
||||||
results_path = os.path.join(browbeat_path, 'results')
|
results_path = os.path.join(browbeat_path, 'results')
|
||||||
|
@ -23,15 +23,17 @@ import elastic
|
|||||||
import grafana
|
import grafana
|
||||||
from path import get_overcloudrc
|
from path import get_overcloudrc
|
||||||
from path import get_workload_venv
|
from path import get_workload_venv
|
||||||
|
from path import results_path
|
||||||
import tools
|
import tools
|
||||||
import workloadbase
|
import workloadbase
|
||||||
|
|
||||||
class PerfKit(workloadbase.WorkloadBase):
|
class PerfKit(workloadbase.WorkloadBase):
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config, result_dir_ts):
|
||||||
self.logger = logging.getLogger('browbeat.perfkit')
|
self.logger = logging.getLogger('browbeat.perfkit')
|
||||||
self.overcloudrc = get_overcloudrc()
|
self.overcloudrc = get_overcloudrc()
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.result_dir_ts = result_dir_ts
|
||||||
self.error_count = 0
|
self.error_count = 0
|
||||||
self.tools = tools.Tools(self.config)
|
self.tools = tools.Tools(self.config)
|
||||||
self.grafana = grafana.Grafana(self.config)
|
self.grafana = grafana.Grafana(self.config)
|
||||||
@ -40,16 +42,6 @@ class PerfKit(workloadbase.WorkloadBase):
|
|||||||
self.scenario_count = 0
|
self.scenario_count = 0
|
||||||
self.pass_count = 0
|
self.pass_count = 0
|
||||||
|
|
||||||
def _log_details(self):
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Perkit scenarios executed: {}".format(self.scenario_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Perfkit test(s) executed: {}".format(self.test_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Perfkit test(s) succeeded: {}".format(self.pass_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Perfkit test failures: {}".format(self.error_count))
|
|
||||||
|
|
||||||
def string_to_dict(self, string):
|
def string_to_dict(self, string):
|
||||||
"""Function for converting "|" quoted hash data into python dictionary."""
|
"""Function for converting "|" quoted hash data into python dictionary."""
|
||||||
dict_data = {}
|
dict_data = {}
|
||||||
@ -126,6 +118,8 @@ class PerfKit(workloadbase.WorkloadBase):
|
|||||||
# Build command to run
|
# Build command to run
|
||||||
if 'enabled' in benchmark_config:
|
if 'enabled' in benchmark_config:
|
||||||
del benchmark_config['enabled']
|
del benchmark_config['enabled']
|
||||||
|
if 'type' in benchmark_config:
|
||||||
|
del benchmark_config['type']
|
||||||
cmd = ("source {0}; source {1}; "
|
cmd = ("source {0}; source {1}; "
|
||||||
"{2}/PerfKitBenchmarker/pkb.py "
|
"{2}/PerfKitBenchmarker/pkb.py "
|
||||||
"--cloud={3} --run_uri=browbeat".format(
|
"--cloud={3} --run_uri=browbeat".format(
|
||||||
@ -182,54 +176,47 @@ class PerfKit(workloadbase.WorkloadBase):
|
|||||||
|
|
||||||
return success, to_ts, from_ts
|
return success, to_ts, from_ts
|
||||||
|
|
||||||
def run_workloads(self):
|
def run_workload(self, workload, run_iteration):
|
||||||
self.logger.info("Starting PerfKitBenchmarker Workloads.")
|
self.logger.info("Starting PerfKitBenchmarker Workloads.")
|
||||||
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
||||||
self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp))
|
self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp))
|
||||||
benchmarks = self.config.get('perfkit')['benchmarks']
|
|
||||||
if (benchmarks is not None and len(benchmarks) > 0):
|
self.logger.info("Benchmark: {}".format(workload['name']))
|
||||||
for benchmark in benchmarks:
|
self.update_scenarios()
|
||||||
if benchmark['enabled']:
|
self.update_total_scenarios()
|
||||||
self.logger.info("Benchmark: {}".format(benchmark['name']))
|
# Add default parameters as necessary
|
||||||
self.update_scenarios()
|
for default_item, value in self.config['perfkit']['default'].iteritems():
|
||||||
self.update_total_scenarios()
|
if default_item not in workload:
|
||||||
# Add default parameters as necessary
|
workload[default_item] = value
|
||||||
for default_item, value in self.config['perfkit']['default'].iteritems():
|
|
||||||
if default_item not in benchmark:
|
# Correct iteration/rerun
|
||||||
benchmark[default_item] = value
|
rerun_range = range(self.config["browbeat"]["rerun"])
|
||||||
for run in range(self.config['browbeat']['rerun']):
|
if self.config["browbeat"]["rerun_type"] == "complete":
|
||||||
self.update_tests()
|
rerun_range = range(run_iteration, run_iteration + 1)
|
||||||
self.update_total_tests()
|
|
||||||
result_dir = self.tools.create_results_dir(
|
for run in rerun_range:
|
||||||
self.config['browbeat']['results'], time_stamp, benchmark['name'],
|
self.update_tests()
|
||||||
str(run))
|
self.update_total_tests()
|
||||||
test_name = "{}-{}-{}".format(time_stamp, benchmark['name'], run)
|
result_dir = self.tools.create_results_dir(
|
||||||
workload = self.__class__.__name__
|
results_path, self.result_dir_ts, workload['name'], str(run))
|
||||||
self.workload_logger(result_dir, workload)
|
test_name = "{}-{}-{}".format(time_stamp, workload['name'], run)
|
||||||
success, to_ts, from_ts = self.run_benchmark(benchmark, result_dir,
|
self.workload_logger(self.__class__.__name__)
|
||||||
test_name)
|
success, to_ts, from_ts = self.run_benchmark(workload, result_dir, test_name)
|
||||||
index_success = 'disabled'
|
index_success = 'disabled'
|
||||||
if self.config['elasticsearch']['enabled']:
|
if self.config['elasticsearch']['enabled']:
|
||||||
index_success = self.index_results(success, result_dir, test_name, run,
|
index_success = self.index_results(success, result_dir, test_name, run, workload)
|
||||||
benchmark)
|
new_test_name = test_name.split('-')
|
||||||
new_test_name = test_name.split('-')
|
new_test_name = new_test_name[2:]
|
||||||
new_test_name = new_test_name[2:]
|
new_test_name = '-'.join(new_test_name)
|
||||||
new_test_name = '-'.join(new_test_name)
|
if success:
|
||||||
if success:
|
self.update_pass_tests()
|
||||||
self.update_pass_tests()
|
self.update_total_pass_tests()
|
||||||
self.update_total_pass_tests()
|
self.get_time_dict(to_ts, from_ts, workload['benchmarks'],
|
||||||
self.get_time_dict(to_ts, from_ts, benchmark['benchmarks'],
|
new_test_name, self.__class__.__name__, "pass",
|
||||||
new_test_name, self.__class__.__name__, "pass",
|
index_success)
|
||||||
index_success)
|
else:
|
||||||
else:
|
self.update_fail_tests()
|
||||||
self.update_fail_tests()
|
self.update_total_fail_tests()
|
||||||
self.update_total_fail_tests()
|
self.get_time_dict(to_ts, from_ts, workload['benchmarks'],
|
||||||
self.get_time_dict(to_ts, from_ts, benchmark['benchmarks'],
|
new_test_name, self.__class__.__name__, "fail",
|
||||||
new_test_name, self.__class__.__name__, "fail",
|
index_success)
|
||||||
index_success)
|
|
||||||
self._log_details()
|
|
||||||
else:
|
|
||||||
self.logger.info(
|
|
||||||
"Skipping {} benchmark, enabled: false".format(benchmark['name']))
|
|
||||||
else:
|
|
||||||
self.logger.error("Config file contains no perfkit benchmarks.")
|
|
||||||
|
@ -23,15 +23,17 @@ import time
|
|||||||
import elastic
|
import elastic
|
||||||
import grafana
|
import grafana
|
||||||
from path import get_workload_venv
|
from path import get_workload_venv
|
||||||
|
from path import results_path
|
||||||
import workloadbase
|
import workloadbase
|
||||||
import tools
|
import tools
|
||||||
|
|
||||||
|
|
||||||
class Rally(workloadbase.WorkloadBase):
|
class Rally(workloadbase.WorkloadBase):
|
||||||
|
|
||||||
def __init__(self, config, hosts=None):
|
def __init__(self, config, result_dir_ts):
|
||||||
self.logger = logging.getLogger('browbeat.rally')
|
self.logger = logging.getLogger('browbeat.rally')
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.result_dir_ts = result_dir_ts
|
||||||
self.tools = tools.Tools(self.config)
|
self.tools = tools.Tools(self.config)
|
||||||
self.grafana = grafana.Grafana(self.config)
|
self.grafana = grafana.Grafana(self.config)
|
||||||
self.elastic = elastic.Elastic(self.config, self.__class__.__name__.lower())
|
self.elastic = elastic.Elastic(self.config, self.__class__.__name__.lower())
|
||||||
@ -43,7 +45,7 @@ class Rally(workloadbase.WorkloadBase):
|
|||||||
def run_scenario(self, task_file, scenario_args, result_dir, test_name, benchmark):
|
def run_scenario(self, task_file, scenario_args, result_dir, test_name, benchmark):
|
||||||
self.logger.debug("--------------------------------")
|
self.logger.debug("--------------------------------")
|
||||||
self.logger.debug("task_file: {}".format(task_file))
|
self.logger.debug("task_file: {}".format(task_file))
|
||||||
self.logger.debug("scenario_args: {}".format(scenario_args))
|
self.logger.info("Running with scenario_args: {}".format(scenario_args))
|
||||||
self.logger.debug("result_dir: {}".format(result_dir))
|
self.logger.debug("result_dir: {}".format(result_dir))
|
||||||
self.logger.debug("test_name: {}".format(test_name))
|
self.logger.debug("test_name: {}".format(test_name))
|
||||||
self.logger.debug("--------------------------------")
|
self.logger.debug("--------------------------------")
|
||||||
@ -91,17 +93,6 @@ class Rally(workloadbase.WorkloadBase):
|
|||||||
test_name)
|
test_name)
|
||||||
return self.tools.run_cmd(cmd)['stdout']
|
return self.tools.run_cmd(cmd)['stdout']
|
||||||
|
|
||||||
def _get_details(self):
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Rally scenarios executed:{}".format(
|
|
||||||
self.scenario_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Rally tests executed:{}".format(self.test_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Rally tests passed:{}".format(self.pass_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Rally test failures:{}".format(self.error_count))
|
|
||||||
|
|
||||||
def gen_scenario_html(self, task_ids, test_name):
|
def gen_scenario_html(self, task_ids, test_name):
|
||||||
all_task_ids = ' '.join(task_ids)
|
all_task_ids = ' '.join(task_ids)
|
||||||
cmd = "source {}; ".format(get_workload_venv('rally', True))
|
cmd = "source {}; ".format(get_workload_venv('rally', True))
|
||||||
@ -223,152 +214,113 @@ class Rally(workloadbase.WorkloadBase):
|
|||||||
success = False
|
success = False
|
||||||
return success
|
return success
|
||||||
|
|
||||||
def run_workloads(self):
|
def run_workload(self, workload, run_iteration):
|
||||||
"""Iterates through all rally scenarios in browbeat yaml config file"""
|
"""Runs a Browbeat Rally workload"""
|
||||||
results = collections.OrderedDict()
|
results = []
|
||||||
self.logger.info("Starting Rally workloads")
|
self.logger.info("Running Rally workload: {}".format(workload["name"]))
|
||||||
es_ts = datetime.datetime.utcnow()
|
es_ts = datetime.datetime.utcnow()
|
||||||
dir_ts = es_ts.strftime("%Y%m%d-%H%M%S")
|
def_concurrencies = workload["concurrency"]
|
||||||
self.logger.debug("Time Stamp (Prefix): {}".format(dir_ts))
|
def_times = workload["times"]
|
||||||
benchmarks = self.config.get('rally')['benchmarks']
|
self.logger.debug("Default Concurrencies: {}".format(def_concurrencies))
|
||||||
if (benchmarks is not None and len(benchmarks) > 0):
|
self.logger.debug("Default Times: {}".format(def_times))
|
||||||
for benchmark in benchmarks:
|
for scenario in workload["scenarios"]:
|
||||||
if benchmark['enabled']:
|
if not scenario["enabled"]:
|
||||||
self.logger.info("Benchmark: {}".format(benchmark['name']))
|
self.logger.info("{} scenario is disabled".format(scenario['name']))
|
||||||
scenarios = benchmark['scenarios']
|
continue
|
||||||
def_concurrencies = benchmark['concurrency']
|
|
||||||
def_times = benchmark['times']
|
|
||||||
self.logger.debug(
|
|
||||||
"Default Concurrencies: {}".format(def_concurrencies))
|
|
||||||
self.logger.debug("Default Times: {}".format(def_times))
|
|
||||||
for scenario in scenarios:
|
|
||||||
if scenario['enabled']:
|
|
||||||
self.update_scenarios()
|
|
||||||
self.update_total_scenarios()
|
|
||||||
scenario_name = scenario['name']
|
|
||||||
scenario_file = scenario['file']
|
|
||||||
self.logger.info(
|
|
||||||
"Running Scenario: {}".format(scenario_name))
|
|
||||||
self.logger.debug(
|
|
||||||
"Scenario File: {}".format(scenario_file))
|
|
||||||
|
|
||||||
del scenario['enabled']
|
self.logger.info("Running Scenario: {}".format(scenario["name"]))
|
||||||
del scenario['file']
|
self.logger.debug("Scenario File: {}".format(scenario["file"]))
|
||||||
del scenario['name']
|
self.update_scenarios()
|
||||||
if len(scenario) > 0:
|
self.update_total_scenarios()
|
||||||
self.logger.debug(
|
scenario_name = scenario["name"]
|
||||||
"Overriding Scenario Args: {}".format(scenario))
|
scenario_file = scenario["file"]
|
||||||
|
del scenario["enabled"]
|
||||||
|
del scenario["file"]
|
||||||
|
del scenario["name"]
|
||||||
|
if len(scenario) > 0:
|
||||||
|
self.logger.debug("Overriding Scenario Args: {}".format(scenario))
|
||||||
|
|
||||||
result_dir = self.tools.create_results_dir(
|
result_dir = self.tools.create_results_dir(
|
||||||
self.config['browbeat']['results'], dir_ts,
|
results_path, self.result_dir_ts,
|
||||||
self.__class__.__name__.lower(),
|
self.__class__.__name__.lower(),
|
||||||
benchmark['name'], scenario_name
|
workload["name"], scenario_name
|
||||||
)
|
)
|
||||||
self.logger.debug(
|
|
||||||
"Created result directory: {}".format(result_dir))
|
|
||||||
workload = self.__class__.__name__
|
|
||||||
self.workload_logger(result_dir, workload)
|
|
||||||
|
|
||||||
# Override concurrency/times
|
self.logger.debug("Created result directory: {}".format(result_dir))
|
||||||
if 'concurrency' in scenario:
|
self.workload_logger(self.__class__.__name__)
|
||||||
concurrencies = scenario['concurrency']
|
|
||||||
del scenario['concurrency']
|
|
||||||
else:
|
|
||||||
concurrencies = def_concurrencies
|
|
||||||
concurrency_count_dict = collections.Counter(
|
|
||||||
concurrencies)
|
|
||||||
if 'times' not in scenario:
|
|
||||||
scenario['times'] = def_times
|
|
||||||
|
|
||||||
for concurrency in concurrencies:
|
# Override concurrency/times
|
||||||
scenario['concurrency'] = concurrency
|
if "concurrency" in scenario:
|
||||||
for run in range(self.config['browbeat']['rerun']):
|
concurrencies = scenario["concurrency"]
|
||||||
if run not in results:
|
del scenario["concurrency"]
|
||||||
results[run] = []
|
else:
|
||||||
self.update_tests()
|
concurrencies = def_concurrencies
|
||||||
self.update_total_tests()
|
if "times" not in scenario:
|
||||||
if concurrency_count_dict[concurrency] == 1:
|
scenario["times"] = def_times
|
||||||
test_name = "{}-browbeat-{}-{}-iteration-{}".format(
|
|
||||||
dir_ts, scenario_name, concurrency, run)
|
|
||||||
else:
|
|
||||||
test_name = "{}-browbeat-{}-{}-{}-iteration-{}".format(
|
|
||||||
dir_ts, scenario_name, concurrency,
|
|
||||||
concurrency_count_dict[concurrency], run)
|
|
||||||
self.logger.debug("Duplicate concurrency {} found,"
|
|
||||||
" setting test name"
|
|
||||||
" to {}".format(concurrency, test_name))
|
|
||||||
concurrency_count_dict[
|
|
||||||
concurrency] -= 1
|
|
||||||
|
|
||||||
if not result_dir:
|
concurrency_count_dict = collections.Counter()
|
||||||
self.logger.error(
|
for concurrency in concurrencies:
|
||||||
"Failed to create result directory")
|
scenario["concurrency"] = concurrency
|
||||||
exit(1)
|
|
||||||
|
|
||||||
from_time, to_time = self.run_scenario(
|
# Correct iteration/rerun
|
||||||
scenario_file, scenario, result_dir, test_name,
|
rerun_range = range(self.config["browbeat"]["rerun"])
|
||||||
benchmark['name'])
|
if self.config["browbeat"]["rerun_type"] == "complete":
|
||||||
|
rerun_range = range(run_iteration, run_iteration + 1)
|
||||||
|
|
||||||
new_test_name = test_name.split('-')
|
for run in rerun_range:
|
||||||
new_test_name = new_test_name[3:]
|
self.update_tests()
|
||||||
new_test_name = "-".join(new_test_name)
|
self.update_total_tests()
|
||||||
|
concurrency_count_dict[concurrency] += 1
|
||||||
|
test_name = "{}-browbeat-{}-{}-{}-iteration-{}".format(
|
||||||
|
es_ts.strftime("%Y%m%d-%H%M%S"), scenario_name, concurrency,
|
||||||
|
concurrency_count_dict[concurrency], run)
|
||||||
|
|
||||||
# Find task id (if task succeeded in
|
if not result_dir:
|
||||||
# running)
|
self.logger.error(
|
||||||
task_id = self.get_task_id(test_name)
|
"Failed to create result directory")
|
||||||
if task_id:
|
exit(1)
|
||||||
self.logger.info(
|
|
||||||
"Generating Rally HTML for task_id : {}".
|
|
||||||
format(task_id))
|
|
||||||
self.gen_scenario_html(
|
|
||||||
[task_id], test_name)
|
|
||||||
self.gen_scenario_json_file(
|
|
||||||
task_id, test_name)
|
|
||||||
results[run].append(task_id)
|
|
||||||
self.update_pass_tests()
|
|
||||||
self.update_total_pass_tests()
|
|
||||||
if self.config['elasticsearch']['enabled']:
|
|
||||||
# Start indexing
|
|
||||||
index_status = self.json_result(
|
|
||||||
task_id, scenario_name, run, test_name, result_dir)
|
|
||||||
if not index_status:
|
|
||||||
self.update_index_failures()
|
|
||||||
self.get_time_dict(to_time, from_time,
|
|
||||||
benchmark[
|
|
||||||
'name'], new_test_name,
|
|
||||||
workload, "pass", index_status)
|
|
||||||
else:
|
|
||||||
self.get_time_dict(to_time, from_time, benchmark[
|
|
||||||
'name'], new_test_name,
|
|
||||||
workload, "pass", )
|
|
||||||
|
|
||||||
else:
|
from_time, to_time = self.run_scenario(
|
||||||
self.logger.error(
|
scenario_file, scenario, result_dir, test_name, workload["name"])
|
||||||
"Cannot find task_id")
|
|
||||||
self.update_fail_tests()
|
|
||||||
self.update_total_fail_tests()
|
|
||||||
self.get_time_dict(
|
|
||||||
to_time, from_time, benchmark[
|
|
||||||
'name'], new_test_name,
|
|
||||||
workload, "fail")
|
|
||||||
|
|
||||||
for data in glob.glob("./{}*".format(test_name)):
|
new_test_name = test_name.split("-")
|
||||||
shutil.move(data, result_dir)
|
new_test_name = new_test_name[3:]
|
||||||
|
new_test_name = "-".join(new_test_name)
|
||||||
self._get_details()
|
|
||||||
|
|
||||||
|
# Find task id (if task succeeded in running)
|
||||||
|
task_id = self.get_task_id(test_name)
|
||||||
|
if task_id:
|
||||||
|
self.logger.info("Generating Rally HTML for task_id : {}".format(task_id))
|
||||||
|
self.gen_scenario_html([task_id], test_name)
|
||||||
|
self.gen_scenario_json_file(task_id, test_name)
|
||||||
|
results.append(task_id)
|
||||||
|
self.update_pass_tests()
|
||||||
|
self.update_total_pass_tests()
|
||||||
|
if self.config["elasticsearch"]["enabled"]:
|
||||||
|
# Start indexing
|
||||||
|
index_status = self.json_result(
|
||||||
|
task_id, scenario_name, run, test_name, result_dir)
|
||||||
|
if not index_status:
|
||||||
|
self.update_index_failures()
|
||||||
|
self.get_time_dict(to_time, from_time, workload["name"], new_test_name,
|
||||||
|
self.__class__.__name__, "pass", index_status)
|
||||||
else:
|
else:
|
||||||
self.logger.info(
|
self.get_time_dict(to_time, from_time, workload["name"], new_test_name,
|
||||||
"Skipping {} scenario enabled: false".format(scenario['name']))
|
self.__class__.__name__, "pass", )
|
||||||
else:
|
|
||||||
self.logger.info(
|
else:
|
||||||
"Skipping {} benchmarks enabled: false".format(benchmark['name']))
|
self.logger.error("Cannot find task_id")
|
||||||
self.logger.debug("Creating Combined Rally Reports")
|
self.update_fail_tests()
|
||||||
for run in results:
|
self.update_total_fail_tests()
|
||||||
combined_html_name = 'all-rally-run-{}'.format(run)
|
self.get_time_dict(to_time, from_time, workload["name"], new_test_name,
|
||||||
self.gen_scenario_html(results[run], combined_html_name)
|
self.__class__.__name__, "fail")
|
||||||
if os.path.isfile('{}.html'.format(combined_html_name)):
|
|
||||||
shutil.move('{}.html'.format(combined_html_name),
|
for data in glob.glob("./{}*".format(test_name)):
|
||||||
'{}/{}'.format(self.config['browbeat']['results'], dir_ts))
|
shutil.move(data, result_dir)
|
||||||
else:
|
|
||||||
self.logger.error("Config file contains no rally benchmarks.")
|
self.logger.debug("Creating Combined Rally Reports")
|
||||||
|
combined_html_name = "all-rally-run-{}".format(run_iteration)
|
||||||
|
self.gen_scenario_html(results, combined_html_name)
|
||||||
|
if os.path.isfile("{}.html".format(combined_html_name)):
|
||||||
|
shutil.move("{}.html".format(combined_html_name), "{}/{}/{}/{}".format(results_path,
|
||||||
|
self.result_dir_ts, self.__class__.__name__.lower(), workload["name"]))
|
||||||
|
194
browbeat/schema/browbeat.yml
Normal file
194
browbeat/schema/browbeat.yml
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
# This schema defines how Browbeat config files are formated. Generally items
|
||||||
|
# in a dictionary format will be alphabetically ordered however the Browbeat
|
||||||
|
# options will appear first in base level yaml dictionary.
|
||||||
|
name: Browbeat configuration schema
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
# General Browbeat Configuration Items
|
||||||
|
browbeat:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
cloud_name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
rerun:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
rerun_type:
|
||||||
|
type: str
|
||||||
|
enum: ['iteration', 'complete']
|
||||||
|
required: True
|
||||||
|
ansible:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
hosts:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
metadata_playbook:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
ssh_config:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
elasticsearch:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
host:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
metadata_files:
|
||||||
|
type: seq
|
||||||
|
required: True
|
||||||
|
sequence:
|
||||||
|
- type: map
|
||||||
|
mapping:
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
file:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
port:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
regather:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
grafana:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
dashboards:
|
||||||
|
type: seq
|
||||||
|
required: True
|
||||||
|
sequence:
|
||||||
|
- type: str
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
host:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
port:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
perfkit:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
default:
|
||||||
|
type: map
|
||||||
|
required: True
|
||||||
|
mapping:
|
||||||
|
image:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
machine_type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
os_type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ['rhel', 'debian', 'ubuntu_container', 'windows']
|
||||||
|
openstack_image_username:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
openstack_floating_ip_pool:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
openstack_network:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
ignore_package_requirements:
|
||||||
|
type: bool
|
||||||
|
required: False
|
||||||
|
timing_measurements:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
sleep_after:
|
||||||
|
type: number
|
||||||
|
required: True
|
||||||
|
sleep_before:
|
||||||
|
type: number
|
||||||
|
required: True
|
||||||
|
rally:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
plugins:
|
||||||
|
type: seq
|
||||||
|
required: False
|
||||||
|
sequence:
|
||||||
|
- type: map
|
||||||
|
required: False
|
||||||
|
allowempty: True
|
||||||
|
sleep_after:
|
||||||
|
type: number
|
||||||
|
required: True
|
||||||
|
sleep_before:
|
||||||
|
type: number
|
||||||
|
required: True
|
||||||
|
shaker:
|
||||||
|
required: True
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
server:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
|
||||||
|
port:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
flavor:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
join_timeout:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
sleep_before:
|
||||||
|
type: number
|
||||||
|
required: True
|
||||||
|
sleep_after:
|
||||||
|
type: number
|
||||||
|
required: True
|
||||||
|
shaker_region:
|
||||||
|
type: str
|
||||||
|
required: true
|
||||||
|
external_host:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
|
||||||
|
yoda:
|
||||||
|
type: map
|
||||||
|
required: True
|
||||||
|
mapping:
|
||||||
|
instackenv:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
stackrc:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
workloads:
|
||||||
|
required: True
|
||||||
|
type: seq
|
||||||
|
sequence:
|
||||||
|
- type: map
|
||||||
|
required: True
|
||||||
|
allowempty: True
|
||||||
|
mapping:
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ['perfkit', 'rally', 'shaker', 'yoda']
|
48
browbeat/schema/perfkit.yml
Normal file
48
browbeat/schema/perfkit.yml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# This schema defines how a PerfKitBenchmarker workload is formated
|
||||||
|
name: PerfKitBenchmarker workload schema
|
||||||
|
type: map
|
||||||
|
allowempty: True
|
||||||
|
mapping:
|
||||||
|
# Required items to be a PerfKit workload
|
||||||
|
benchmarks:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ["perfkit"]
|
||||||
|
# Over-ridable defaults:
|
||||||
|
ignore_package_requirements:
|
||||||
|
type: bool
|
||||||
|
required: False
|
||||||
|
image:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
machine_type:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
openstack_floating_ip_pool:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
openstack_image_username:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
openstack_network:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
openstack_volume_size:
|
||||||
|
type: int
|
||||||
|
required: False
|
||||||
|
os_type:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
enum: ['rhel', 'debian', 'ubuntu_container', 'windows']
|
||||||
|
timing_measurements:
|
||||||
|
type: str
|
||||||
|
required: False
|
38
browbeat/schema/rally.yml
Normal file
38
browbeat/schema/rally.yml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# This schema defines how a Rally workload is formated
|
||||||
|
name: Rally workload schema
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
# Required items to be a Rally workload
|
||||||
|
concurrency:
|
||||||
|
type: seq
|
||||||
|
required: True
|
||||||
|
sequence:
|
||||||
|
- type: int
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
times:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ["rally"]
|
||||||
|
scenarios:
|
||||||
|
type: seq
|
||||||
|
sequence:
|
||||||
|
- type: map
|
||||||
|
allowempty: True
|
||||||
|
mapping:
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
file:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
19
browbeat/schema/shaker.yml
Normal file
19
browbeat/schema/shaker.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# This schema defines how a Rally workload is formated
|
||||||
|
name: Shaker workload schema
|
||||||
|
type: map
|
||||||
|
allowempty: True
|
||||||
|
mapping:
|
||||||
|
# Required items to be a Shaker workload
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
required: True
|
||||||
|
file:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ["shaker"]
|
71
browbeat/schema/yoda.yml
Normal file
71
browbeat/schema/yoda.yml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# This schema defines how a Yoda workload is formated
|
||||||
|
name: Yoda workload schema
|
||||||
|
type: map
|
||||||
|
mapping:
|
||||||
|
# Required items to be a Yoda workload
|
||||||
|
enabled:
|
||||||
|
required: True
|
||||||
|
type: bool
|
||||||
|
name:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
timeout:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
times:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ["yoda"]
|
||||||
|
yoda_type:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
enum: ['introspection', 'overcloud']
|
||||||
|
# Optional/type-specific items for Yoda workload:
|
||||||
|
batch_size:
|
||||||
|
type: int
|
||||||
|
required: False
|
||||||
|
cloud:
|
||||||
|
type: seq
|
||||||
|
required: False
|
||||||
|
sequence:
|
||||||
|
- type: map
|
||||||
|
allowempty: True
|
||||||
|
mapping:
|
||||||
|
node:
|
||||||
|
type: str
|
||||||
|
required: True
|
||||||
|
start_scale:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
end_scale:
|
||||||
|
type: int
|
||||||
|
required: True
|
||||||
|
instackenv:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
keep_stack:
|
||||||
|
type: bool
|
||||||
|
required: False
|
||||||
|
max_fail_amnt:
|
||||||
|
type: float
|
||||||
|
required: False
|
||||||
|
method:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
node_pinning:
|
||||||
|
type: bool
|
||||||
|
required: False
|
||||||
|
ntp_server:
|
||||||
|
type: str
|
||||||
|
required: False
|
||||||
|
step:
|
||||||
|
type: int
|
||||||
|
required: False
|
||||||
|
templates:
|
||||||
|
type: seq
|
||||||
|
required: False
|
||||||
|
sequence:
|
||||||
|
- type: str
|
@ -23,16 +23,18 @@ import elastic
|
|||||||
import grafana
|
import grafana
|
||||||
from path import get_overcloudrc
|
from path import get_overcloudrc
|
||||||
from path import get_workload_venv
|
from path import get_workload_venv
|
||||||
|
from path import results_path
|
||||||
import workloadbase
|
import workloadbase
|
||||||
import tools
|
import tools
|
||||||
|
|
||||||
|
|
||||||
class Shaker(workloadbase.WorkloadBase):
|
class Shaker(workloadbase.WorkloadBase):
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config, result_dir_ts):
|
||||||
self.logger = logging.getLogger('browbeat.shaker')
|
self.logger = logging.getLogger('browbeat.shaker')
|
||||||
self.overcloudrc = get_overcloudrc()
|
self.overcloudrc = get_overcloudrc()
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.result_dir_ts = result_dir_ts
|
||||||
self.tools = tools.Tools(self.config)
|
self.tools = tools.Tools(self.config)
|
||||||
self.grafana = grafana.Grafana(self.config)
|
self.grafana = grafana.Grafana(self.config)
|
||||||
self.elastic = elastic.Elastic(self.config, self.__class__.__name__.lower())
|
self.elastic = elastic.Elastic(self.config, self.__class__.__name__.lower())
|
||||||
@ -42,24 +44,14 @@ class Shaker(workloadbase.WorkloadBase):
|
|||||||
self.scenario_count = 0
|
self.scenario_count = 0
|
||||||
|
|
||||||
def shaker_checks(self):
|
def shaker_checks(self):
|
||||||
cmd = "source {}; glance image-list | grep -w shaker-image".format(self.overcloudrc)
|
cmd = "source {}; source {}; glance image-list | grep -w shaker-image".format(
|
||||||
|
get_workload_venv('shaker', True), self.overcloudrc)
|
||||||
if self.tools.run_cmd(cmd)['stdout'] == "":
|
if self.tools.run_cmd(cmd)['stdout'] == "":
|
||||||
self.logger.error("Shaker Image is not built, try again")
|
self.logger.error("Shaker Image is not built, try again")
|
||||||
exit(1)
|
exit(1)
|
||||||
else:
|
else:
|
||||||
self.logger.info("Shaker image is built, continuing")
|
self.logger.info("Shaker image is built, continuing")
|
||||||
|
|
||||||
def get_stats(self):
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Shaker tests executed: {}".format(
|
|
||||||
self.test_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Shaker tests passed: {}".format(
|
|
||||||
self.pass_count))
|
|
||||||
self.logger.info(
|
|
||||||
"Current number of Shaker tests failed: {}".format(
|
|
||||||
self.error_count))
|
|
||||||
|
|
||||||
def accommodation_to_dict(self, accommodation):
|
def accommodation_to_dict(self, accommodation):
|
||||||
accommodation_dict = {}
|
accommodation_dict = {}
|
||||||
for item in accommodation:
|
for item in accommodation:
|
||||||
@ -406,57 +398,46 @@ class Shaker(workloadbase.WorkloadBase):
|
|||||||
else:
|
else:
|
||||||
self.result_check(result_dir, test_name, scenario, to_time, from_time)
|
self.result_check(result_dir, test_name, scenario, to_time, from_time)
|
||||||
|
|
||||||
def run_workloads(self):
|
def run_workload(self, workload, run_iteration):
|
||||||
self.logger.info("Starting Shaker workloads")
|
self.logger.info("Starting Shaker workloads")
|
||||||
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
||||||
self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp))
|
self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp))
|
||||||
scenarios = self.config.get('shaker')['scenarios']
|
|
||||||
venv = get_workload_venv('shaker', False)
|
|
||||||
default_time = 60
|
|
||||||
self.shaker_checks()
|
|
||||||
if (scenarios is not None and len(scenarios) > 0):
|
|
||||||
for scenario in scenarios:
|
|
||||||
if scenario['enabled']:
|
|
||||||
self.update_scenarios()
|
|
||||||
self.update_total_scenarios()
|
|
||||||
shaker_uuid = uuid.uuid4()
|
|
||||||
es_ts = datetime.datetime.utcnow()
|
|
||||||
es_list = []
|
|
||||||
if "time" in scenario:
|
|
||||||
test_time = scenario['time']
|
|
||||||
else:
|
|
||||||
test_time = default_time
|
|
||||||
for interval in range(0, test_time + 9):
|
|
||||||
es_list.append(
|
|
||||||
datetime.datetime.utcnow() +
|
|
||||||
datetime.timedelta(0, interval))
|
|
||||||
|
|
||||||
for run in range(self.config['browbeat']['rerun']):
|
venv = get_workload_venv('shaker', False)
|
||||||
self.logger.info("Scenario: {}".format(scenario['name']))
|
self.shaker_checks()
|
||||||
self.logger.info("Run: {}".format(run))
|
|
||||||
fname = os.path.join(venv, scenario['file'])
|
self.update_scenarios()
|
||||||
self.set_scenario(scenario, fname, default_time)
|
self.update_total_scenarios()
|
||||||
self.logger.debug("Set Scenario File: {}".format(
|
shaker_uuid = uuid.uuid4()
|
||||||
fname))
|
es_ts = datetime.datetime.utcnow()
|
||||||
result_dir = self.tools.create_results_dir(
|
es_list = []
|
||||||
self.config['browbeat'][
|
# Default test time to 60
|
||||||
'results'], time_stamp, "shaker",
|
test_time = workload.get("time", 60)
|
||||||
scenario['name'] + "-" + str(run))
|
for interval in range(0, test_time + 9):
|
||||||
workload = self.__class__.__name__
|
es_list.append(
|
||||||
self.workload_logger(result_dir, workload)
|
datetime.datetime.utcnow() +
|
||||||
time_stamp1 = datetime.datetime.now().strftime(
|
datetime.timedelta(0, interval))
|
||||||
"%Y%m%d-%H%M%S")
|
|
||||||
test_name = "{}-browbeat-{}-{}-{}".format(
|
rerun_range = range(self.config["browbeat"]["rerun"])
|
||||||
time_stamp1, "shaker", scenario['name'], run)
|
if self.config["browbeat"]["rerun_type"] == "complete":
|
||||||
self.run_scenario(
|
# Compelete rerun type means force
|
||||||
scenario, result_dir, test_name, fname, shaker_uuid,
|
rerun_range = range(run_iteration, run_iteration + 1)
|
||||||
es_ts, es_list, run)
|
|
||||||
self.get_stats()
|
for run in rerun_range:
|
||||||
else:
|
self.logger.info("Scenario: {}".format(workload['name']))
|
||||||
self.logger.info(
|
self.logger.info("Run: {}".format(run))
|
||||||
"Skipping {} as scenario enabled: false".format(
|
fname = os.path.join(venv, workload['file'])
|
||||||
scenario['name']))
|
self.set_scenario(workload, fname, 60)
|
||||||
self.final_stats(self.scenario_count)
|
self.logger.debug("Set Scenario File: {}".format(fname))
|
||||||
else:
|
result_dir = self.tools.create_results_dir(
|
||||||
self.logger.error(
|
results_path, self.result_dir_ts, "shaker",
|
||||||
"Configuration file contains no shaker scenarios")
|
workload['name'] + "-" + str(run))
|
||||||
|
self.workload_logger(self.__class__.__name__)
|
||||||
|
time_stamp1 = datetime.datetime.now().strftime(
|
||||||
|
"%Y%m%d-%H%M%S")
|
||||||
|
test_name = "{}-browbeat-{}-{}-{}".format(
|
||||||
|
time_stamp1, "shaker", workload['name'], run)
|
||||||
|
self.run_scenario(
|
||||||
|
workload, result_dir, test_name, fname, shaker_uuid,
|
||||||
|
es_ts, es_list, run)
|
||||||
|
self.final_stats(self.scenario_count)
|
||||||
|
@ -10,14 +10,11 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import copy
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import yaml
|
|
||||||
|
|
||||||
from pykwalify import core as pykwalify_core
|
|
||||||
from pykwalify import errors as pykwalify_errors
|
|
||||||
|
|
||||||
import perfkit
|
import perfkit
|
||||||
import rally
|
import rally
|
||||||
@ -27,10 +24,9 @@ import yoda
|
|||||||
|
|
||||||
class Tools(object):
|
class Tools(object):
|
||||||
|
|
||||||
def __init__(self, config=None):
|
def __init__(self, config):
|
||||||
self.logger = logging.getLogger('browbeat.tools')
|
self.logger = logging.getLogger('browbeat.tools')
|
||||||
self.config = config
|
self.config = config
|
||||||
return None
|
|
||||||
|
|
||||||
# Returns true if ping successful, false otherwise
|
# Returns true if ping successful, false otherwise
|
||||||
def is_pingable(self, ip):
|
def is_pingable(self, ip):
|
||||||
@ -88,47 +84,24 @@ class Tools(object):
|
|||||||
return False
|
return False
|
||||||
return the_directory
|
return the_directory
|
||||||
|
|
||||||
def _load_config(self, path, validate=True):
|
def run_workload(self, workload, result_dir_ts, run_iteration):
|
||||||
try:
|
"""Creates workload object and runs a specific workload.
|
||||||
stream = open(path, 'r')
|
|
||||||
except IOError:
|
|
||||||
self.logger.error(
|
|
||||||
"Configuration file {} passed is missing".format(path))
|
|
||||||
exit(1)
|
|
||||||
config = yaml.safe_load(stream)
|
|
||||||
stream.close()
|
|
||||||
self.config = config
|
|
||||||
if validate:
|
|
||||||
self.validate_yaml()
|
|
||||||
return config
|
|
||||||
|
|
||||||
def validate_yaml(self):
|
:param workload: Dictionary of workload attributes defined by browbeat config
|
||||||
self.logger.info(
|
:param result_dir_ts: Result directory timestamp
|
||||||
"Validating the configuration file passed by the user")
|
:param run_iteration: Iteration for a specific run
|
||||||
stream = open("browbeat/validate.yaml", 'r')
|
"""
|
||||||
schema = yaml.safe_load(stream)
|
if workload["type"] == "perfkit":
|
||||||
check = pykwalify_core.Core(
|
workloads = perfkit.PerfKit(self.config, result_dir_ts)
|
||||||
source_data=self.config, schema_data=schema)
|
elif workload["type"] == "rally":
|
||||||
try:
|
workloads = rally.Rally(self.config, result_dir_ts)
|
||||||
check.validate(raise_exception=True)
|
elif workload["type"] == "shaker":
|
||||||
self.logger.info("Validation successful")
|
workloads = shaker.Shaker(self.config, result_dir_ts)
|
||||||
except pykwalify_errors.SchemaError as e:
|
elif workload["type"] == "yoda":
|
||||||
self.logger.error("Schema Validation failed")
|
workloads = yoda.Yoda(self.config, result_dir_ts)
|
||||||
raise Exception('File does not conform to schema: {}'.format(e))
|
|
||||||
|
|
||||||
def _run_workload_provider(self, provider):
|
|
||||||
self.logger = logging.getLogger('browbeat')
|
|
||||||
if provider == "perfkit":
|
|
||||||
workloads = perfkit.PerfKit(self.config)
|
|
||||||
elif provider == "rally":
|
|
||||||
workloads = rally.Rally(self.config)
|
|
||||||
elif provider == "shaker":
|
|
||||||
workloads = shaker.Shaker(self.config)
|
|
||||||
elif provider == "yoda":
|
|
||||||
workloads = yoda.Yoda(self.config)
|
|
||||||
else:
|
else:
|
||||||
self.logger.error("Unknown workload provider: {}".format(provider))
|
self.logger.error("Unknown workload provider: {}".format(workload["type"]))
|
||||||
workloads.run_workloads()
|
workloads.run_workload(copy.deepcopy(workload), run_iteration)
|
||||||
|
|
||||||
def check_metadata(self):
|
def check_metadata(self):
|
||||||
meta = self.config['elasticsearch']['metadata_files']
|
meta = self.config['elasticsearch']['metadata_files']
|
||||||
@ -140,12 +113,11 @@ class Tools(object):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def gather_metadata(self):
|
def gather_metadata(self):
|
||||||
os.putenv("ANSIBLE_SSH_ARGS",
|
os.putenv("ANSIBLE_SSH_ARGS", " -F {}".format(self.config['ansible']['ssh_config']))
|
||||||
" -F {}".format(self.config['ansible']['ssh_config']))
|
|
||||||
|
|
||||||
ansible_cmd = \
|
ansible_cmd = \
|
||||||
'ansible-playbook -i {} {}' \
|
'ansible-playbook -i {} {}' \
|
||||||
.format(self.config['ansible']['hosts'], self.config['ansible']['metadata'])
|
.format(self.config['ansible']['hosts'], self.config['ansible']['metadata_playbook'])
|
||||||
self.run_cmd(ansible_cmd)
|
self.run_cmd(ansible_cmd)
|
||||||
if not self.check_metadata():
|
if not self.check_metadata():
|
||||||
self.logger.warning("Metadata could not be gathered")
|
self.logger.warning("Metadata could not be gathered")
|
||||||
|
@ -1,331 +0,0 @@
|
|||||||
name: Browbeat configuration schema
|
|
||||||
type: map
|
|
||||||
mapping:
|
|
||||||
browbeat:
|
|
||||||
required: True
|
|
||||||
type: map
|
|
||||||
mapping:
|
|
||||||
results:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
rerun:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
cloud_name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
|
|
||||||
elasticsearch:
|
|
||||||
required: True
|
|
||||||
type: map
|
|
||||||
mapping:
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
host:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
|
|
||||||
regather:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
port:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
metadata_files:
|
|
||||||
type: seq
|
|
||||||
required: True
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
file:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
|
|
||||||
ansible:
|
|
||||||
required: True
|
|
||||||
type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
ssh_config:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
hosts:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
adjust:
|
|
||||||
type: map
|
|
||||||
mapping:
|
|
||||||
keystone_token:
|
|
||||||
type: str
|
|
||||||
neutron_l3:
|
|
||||||
type: str
|
|
||||||
nova_db:
|
|
||||||
type: str
|
|
||||||
workers:
|
|
||||||
type: str
|
|
||||||
shaker_build:
|
|
||||||
type: str
|
|
||||||
metadata:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
|
|
||||||
grafana:
|
|
||||||
required: True
|
|
||||||
type: map
|
|
||||||
mapping:
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
grafana_ip:
|
|
||||||
type: str
|
|
||||||
pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
|
|
||||||
grafana_port:
|
|
||||||
type: int
|
|
||||||
dashboards:
|
|
||||||
type: seq
|
|
||||||
sequence:
|
|
||||||
- type: str
|
|
||||||
|
|
||||||
perfkit:
|
|
||||||
required: False
|
|
||||||
type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
sleep_before:
|
|
||||||
type: number
|
|
||||||
required: True
|
|
||||||
sleep_after:
|
|
||||||
type: number
|
|
||||||
required: True
|
|
||||||
default:
|
|
||||||
type: map
|
|
||||||
required: True
|
|
||||||
mapping:
|
|
||||||
image:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
machine_type:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
os_type:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
enum: ['rhel', 'debian', 'ubuntu_container', 'windows']
|
|
||||||
openstack_image_username:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
openstack_floating_ip_pool:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
openstack_network:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
ignore_package_requirements:
|
|
||||||
type: bool
|
|
||||||
required: False
|
|
||||||
timing_measurements:
|
|
||||||
type: str
|
|
||||||
required: False
|
|
||||||
benchmarks:
|
|
||||||
type: seq
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
benchmarks:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
|
|
||||||
shaker:
|
|
||||||
required: False
|
|
||||||
allowempty: True
|
|
||||||
type: map
|
|
||||||
mapping:
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
server:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
|
|
||||||
port:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
flavor:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
join_timeout:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
sleep_before:
|
|
||||||
type: number
|
|
||||||
required: True
|
|
||||||
sleep_after:
|
|
||||||
type: number
|
|
||||||
required: True
|
|
||||||
shaker_region:
|
|
||||||
type: str
|
|
||||||
required: true
|
|
||||||
external_host:
|
|
||||||
type: str
|
|
||||||
required: False
|
|
||||||
pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
|
|
||||||
scenarios:
|
|
||||||
type: seq
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
file:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
|
|
||||||
rally:
|
|
||||||
required: False
|
|
||||||
type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
sleep_before:
|
|
||||||
type: number
|
|
||||||
required: True
|
|
||||||
sleep_after:
|
|
||||||
type: number
|
|
||||||
required: True
|
|
||||||
benchmarks:
|
|
||||||
type: seq
|
|
||||||
required: True
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
mapping:
|
|
||||||
name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
enabled:
|
|
||||||
required: True
|
|
||||||
type: bool
|
|
||||||
concurrency:
|
|
||||||
type: seq
|
|
||||||
required: True
|
|
||||||
sequence:
|
|
||||||
- type: int
|
|
||||||
times:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
scenarios:
|
|
||||||
type: seq
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
file:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
|
|
||||||
yoda:
|
|
||||||
required: False
|
|
||||||
type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
enabled:
|
|
||||||
type: bool
|
|
||||||
required: True
|
|
||||||
instackenv:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
stackrc:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
benchmarks:
|
|
||||||
type: seq
|
|
||||||
required: True
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
mapping:
|
|
||||||
name:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
type:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
enabled:
|
|
||||||
required: True
|
|
||||||
type: bool
|
|
||||||
ntp_server:
|
|
||||||
type: str
|
|
||||||
required: False
|
|
||||||
templates:
|
|
||||||
type: seq
|
|
||||||
required: False
|
|
||||||
sequence:
|
|
||||||
- type: str
|
|
||||||
instackenv:
|
|
||||||
type: str
|
|
||||||
required: false
|
|
||||||
times:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
step:
|
|
||||||
type: int
|
|
||||||
required: False
|
|
||||||
method:
|
|
||||||
type: str
|
|
||||||
required: False
|
|
||||||
timeout:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
max_fail_amnt:
|
|
||||||
type: float
|
|
||||||
required: False
|
|
||||||
batch_size:
|
|
||||||
type: int
|
|
||||||
required: False
|
|
||||||
keep_stack:
|
|
||||||
type: bool
|
|
||||||
required: False
|
|
||||||
node_pinning:
|
|
||||||
type: bool
|
|
||||||
required: False
|
|
||||||
cloud:
|
|
||||||
type: seq
|
|
||||||
sequence:
|
|
||||||
- type: map
|
|
||||||
allowempty: True
|
|
||||||
mapping:
|
|
||||||
node:
|
|
||||||
type: str
|
|
||||||
required: True
|
|
||||||
start_scale:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
||||||
end_scale:
|
|
||||||
type: int
|
|
||||||
required: True
|
|
@ -15,6 +15,8 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
from browbeat.path import results_path
|
||||||
|
|
||||||
|
|
||||||
class WorkloadBase(object):
|
class WorkloadBase(object):
|
||||||
__metaclass__ = abc.ABCMeta
|
__metaclass__ = abc.ABCMeta
|
||||||
@ -26,8 +28,11 @@ class WorkloadBase(object):
|
|||||||
index_failures = 0
|
index_failures = 0
|
||||||
browbeat = {}
|
browbeat = {}
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.result_dir_ts = ""
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def run_workloads(self):
|
def run_workload(self, workload, run_iteration):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
@ -61,17 +66,15 @@ class WorkloadBase(object):
|
|||||||
def update_index_failures(self):
|
def update_index_failures(self):
|
||||||
WorkloadBase.index_failures += 1
|
WorkloadBase.index_failures += 1
|
||||||
|
|
||||||
def workload_logger(self, result_dir, workload):
|
def workload_logger(self, workload):
|
||||||
base = result_dir.split('/')
|
workload_result_dir = os.path.join(results_path, self.result_dir_ts)
|
||||||
if not os.path.isfile("{}/{}/browbeat-{}-run.log".format(base[0], base[1], workload)):
|
if not os.path.isfile("{}/browbeat-{}-run.log".format(workload_result_dir, workload)):
|
||||||
file = logging.FileHandler(
|
filehandler = logging.FileHandler(
|
||||||
"{}/{}/browbeat-{}-run.log".format(base[0], base[1], workload))
|
"{}/browbeat-{}-run.log".format(workload_result_dir, workload))
|
||||||
file.setLevel(logging.DEBUG)
|
filehandler.setLevel(logging.DEBUG)
|
||||||
formatter = logging.Formatter(
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)5s - %(message)s')
|
||||||
'%(asctime)s - %(name)s - %(levelname)5s - %(message)s')
|
filehandler.setFormatter(formatter)
|
||||||
file.setFormatter(formatter)
|
self.logger.addHandler(filehandler)
|
||||||
self.logger.addHandler(file)
|
|
||||||
return None
|
|
||||||
|
|
||||||
def get_time_dict(self, to_time, from_time, benchmark, test_name, workload, status,
|
def get_time_dict(self, to_time, from_time, benchmark, test_name, workload, status,
|
||||||
index_status="disabled"):
|
index_status="disabled"):
|
||||||
|
@ -30,15 +30,17 @@ import requests
|
|||||||
|
|
||||||
import elastic
|
import elastic
|
||||||
import grafana
|
import grafana
|
||||||
|
from path import results_path
|
||||||
import workloadbase
|
import workloadbase
|
||||||
import tools
|
import tools
|
||||||
|
|
||||||
|
|
||||||
class Yoda(workloadbase.WorkloadBase):
|
class Yoda(workloadbase.WorkloadBase):
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config, result_dir_ts):
|
||||||
self.logger = logging.getLogger('browbeat.yoda')
|
self.logger = logging.getLogger('browbeat.yoda')
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.result_dir_ts = result_dir_ts
|
||||||
self.tools = tools.Tools(self.config)
|
self.tools = tools.Tools(self.config)
|
||||||
self.grafana = grafana.Grafana(self.config)
|
self.grafana = grafana.Grafana(self.config)
|
||||||
self.elastic = elastic.Elastic(self.config, self.__class__.__name__.lower())
|
self.elastic = elastic.Elastic(self.config, self.__class__.__name__.lower())
|
||||||
@ -497,7 +499,7 @@ class Yoda(workloadbase.WorkloadBase):
|
|||||||
|
|
||||||
def setup_scenario(self, benchmark_name, dir_ts):
|
def setup_scenario(self, benchmark_name, dir_ts):
|
||||||
results_dir = self.tools.create_results_dir(
|
results_dir = self.tools.create_results_dir(
|
||||||
self.config['browbeat']['results'], dir_ts, benchmark_name, benchmark_name)
|
results_path, dir_ts, benchmark_name, benchmark_name)
|
||||||
|
|
||||||
if isinstance(results_dir, bool):
|
if isinstance(results_dir, bool):
|
||||||
self.logger.error(
|
self.logger.error(
|
||||||
@ -505,8 +507,7 @@ class Yoda(workloadbase.WorkloadBase):
|
|||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
self.logger.debug("Created result directory: {}".format(results_dir))
|
self.logger.debug("Created result directory: {}".format(results_dir))
|
||||||
workload = self.__class__.__name__
|
self.workload_logger(self.__class__.__name__)
|
||||||
self.workload_logger(results_dir, workload)
|
|
||||||
return results_dir
|
return results_dir
|
||||||
|
|
||||||
def introspection_workload(
|
def introspection_workload(
|
||||||
@ -640,7 +641,7 @@ class Yoda(workloadbase.WorkloadBase):
|
|||||||
results = out[0]
|
results = out[0]
|
||||||
changed = out[1]
|
changed = out[1]
|
||||||
|
|
||||||
def run_workloads(self):
|
def run_workload(self, workload, run_iteration):
|
||||||
"""Iterates through all yoda scenarios in browbeat yaml config file"""
|
"""Iterates through all yoda scenarios in browbeat yaml config file"""
|
||||||
self.logger.info("Starting YODA workloads")
|
self.logger.info("Starting YODA workloads")
|
||||||
es_ts = datetime.datetime.utcnow()
|
es_ts = datetime.datetime.utcnow()
|
||||||
@ -667,39 +668,24 @@ class Yoda(workloadbase.WorkloadBase):
|
|||||||
conn = connection.Connection(**auth_args)
|
conn = connection.Connection(**auth_args)
|
||||||
|
|
||||||
instackenv = self.config.get('yoda')['instackenv']
|
instackenv = self.config.get('yoda')['instackenv']
|
||||||
benchmarks = self.config.get('yoda')['benchmarks']
|
|
||||||
if (benchmarks is not None and len(benchmarks) > 0):
|
|
||||||
for benchmark in benchmarks:
|
|
||||||
if benchmark['enabled']:
|
|
||||||
|
|
||||||
results_dir = self.setup_scenario(
|
results_dir = self.setup_scenario(workload['name'], dir_ts)
|
||||||
benchmark['name'], dir_ts)
|
times = workload['times']
|
||||||
times = benchmark['times']
|
if 'instackenv' not in workload:
|
||||||
if 'instackenv' not in benchmark:
|
workload['instackenv'] = instackenv
|
||||||
benchmark['instackenv'] = instackenv
|
|
||||||
for rerun in range(self.config['browbeat']['rerun']):
|
|
||||||
for run in range(times):
|
|
||||||
if benchmark['type'] == "overcloud":
|
|
||||||
self.overcloud_workload(benchmark,
|
|
||||||
run,
|
|
||||||
results_dir,
|
|
||||||
env_setup,
|
|
||||||
conn)
|
|
||||||
elif benchmark['type'] == "introspection":
|
|
||||||
self.introspection_workload(benchmark,
|
|
||||||
run,
|
|
||||||
results_dir,
|
|
||||||
env_setup,
|
|
||||||
conn)
|
|
||||||
else:
|
|
||||||
self.logger.error(
|
|
||||||
"Could not identify YODA workload!")
|
|
||||||
exit(1)
|
|
||||||
self.update_scenarios()
|
|
||||||
|
|
||||||
|
# Correct iteration/rerun
|
||||||
|
rerun_range = range(self.config["browbeat"]["rerun"])
|
||||||
|
if self.config["browbeat"]["rerun_type"] == "complete":
|
||||||
|
rerun_range = range(run_iteration, run_iteration + 1)
|
||||||
|
|
||||||
|
for run in rerun_range:
|
||||||
|
for run in range(times):
|
||||||
|
if workload['yoda_type'] == "overcloud":
|
||||||
|
self.overcloud_workload(workload, run, results_dir, env_setup, conn)
|
||||||
|
elif workload['yoda_type'] == "introspection":
|
||||||
|
self.introspection_workload(workload, run, results_dir, env_setup, conn)
|
||||||
else:
|
else:
|
||||||
self.logger.info(
|
self.logger.error("Could not identify YODA workload!")
|
||||||
"Skipping {} benchmarks enabled: false".format(
|
exit(1)
|
||||||
benchmark['name']))
|
self.update_scenarios()
|
||||||
else:
|
|
||||||
self.logger.error("Config file contains no yoda benchmarks.")
|
|
||||||
|
@ -1,237 +0,0 @@
|
|||||||
# Tests to be compleated for the install-and-check.sh script minimal and short workloads are performed
|
|
||||||
# to confirm functionality.
|
|
||||||
browbeat:
|
|
||||||
results : results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
|
||||||
elasticsearch:
|
|
||||||
enabled: false
|
|
||||||
host: 1.1.1.1
|
|
||||||
port: 9200
|
|
||||||
regather: true
|
|
||||||
metadata_files:
|
|
||||||
- name: hardware-metadata
|
|
||||||
file: metadata/hardware-metadata.json
|
|
||||||
- name: environment-metadata
|
|
||||||
file: metadata/environment-metadata.json
|
|
||||||
- name: software-metadata
|
|
||||||
file: metadata/software-metadata.json
|
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
|
||||||
enabled: true
|
|
||||||
grafana_ip: 1.1.1.1
|
|
||||||
grafana_port: 3000
|
|
||||||
dashboards:
|
|
||||||
- openstack-general-system-performance
|
|
||||||
perfkit:
|
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
|
||||||
sleep_after: 0
|
|
||||||
venv: /home/stack/perfkit-venv/bin/activate
|
|
||||||
default:
|
|
||||||
image: centos7
|
|
||||||
machine_type: m1.small
|
|
||||||
os_type: rhel
|
|
||||||
openstack_image_username: centos
|
|
||||||
openstack_floating_ip_pool: browbeat_public
|
|
||||||
openstack_network: browbeat_private
|
|
||||||
benchmarks:
|
|
||||||
- name: fio-centos-m1-small
|
|
||||||
enabled: false
|
|
||||||
benchmarks: fio
|
|
||||||
data_disk_size: 4
|
|
||||||
rally:
|
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
|
||||||
sleep_after: 5
|
|
||||||
venv: /home/stack/rally-venv/bin/activate
|
|
||||||
plugins:
|
|
||||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
|
||||||
- netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping
|
|
||||||
- subnet-router-create: rally/rally-plugins/subnet-router-create
|
|
||||||
benchmarks:
|
|
||||||
- name: authenticate
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 16
|
|
||||||
- 8
|
|
||||||
- 16
|
|
||||||
times: 50
|
|
||||||
scenarios:
|
|
||||||
- name: authentic-keystone
|
|
||||||
enabled: true
|
|
||||||
file: rally/authenticate/keystone-cc.yml
|
|
||||||
sla_max_avg_duration: 6
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: cinder
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
times: 4
|
|
||||||
scenarios:
|
|
||||||
- name: create-attach-volume-centos
|
|
||||||
enabled: true
|
|
||||||
file: rally/cinder/cinder-create-and-attach-volume-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: keystonebasic
|
|
||||||
enabled: false
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 50
|
|
||||||
scenarios:
|
|
||||||
- name: create-and-list-tenants
|
|
||||||
enabled: true
|
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
times: 50
|
|
||||||
- name: neutron
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 2
|
|
||||||
- 4
|
|
||||||
times: 10
|
|
||||||
scenarios:
|
|
||||||
- name: create-list-network
|
|
||||||
enabled: true
|
|
||||||
file: rally/neutron/neutron-create-list-network-cc.yml
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
- name: nova
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
times: 16
|
|
||||||
scenarios:
|
|
||||||
- name: boot-snapshot-delete
|
|
||||||
enabled: true
|
|
||||||
file: rally/nova/nova-boot-snapshot-cc.yml
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.tiny
|
|
||||||
- name: plugins
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
- 16
|
|
||||||
times: 16
|
|
||||||
scenarios:
|
|
||||||
- name: netcreate-boot
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.tiny
|
|
||||||
file: rally/rally-plugins/netcreate-boot/netcreate_boot.yml
|
|
||||||
sla_max_avg_duration: 12
|
|
||||||
sla_max_seconds: 30
|
|
||||||
sla_max_failure: 0
|
|
||||||
#shaker scenarios require atleast 2 compute nodes
|
|
||||||
shaker:
|
|
||||||
enabled: true
|
|
||||||
server: localhost
|
|
||||||
port: 5555
|
|
||||||
flavor: m1.small
|
|
||||||
join_timeout: 600
|
|
||||||
sleep_before: 5
|
|
||||||
sleep_after: 5
|
|
||||||
venv: /home/stack/shaker-venv
|
|
||||||
dns_nameserver: 192.168.23.1
|
|
||||||
shaker_region: regionOne
|
|
||||||
scenarios:
|
|
||||||
- name: l2-4-1
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 1
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l2-8-1
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 1
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l2-4-2
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 2
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l2-4-8
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 2
|
|
||||||
progression: linear
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
|
||||||
- name: l3-north-south-4-1
|
|
||||||
enabled: true
|
|
||||||
placement: single_room
|
|
||||||
density: 4
|
|
||||||
compute: 1
|
|
||||||
progression: null
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-north-south-8-1
|
|
||||||
enabled: false
|
|
||||||
placement: single_room
|
|
||||||
density: 8
|
|
||||||
compute: 1
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-north-south-4-2
|
|
||||||
enabled: true
|
|
||||||
placement: single_room
|
|
||||||
density: 4
|
|
||||||
compute: 2
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-north-south-8-2
|
|
||||||
enabled: true
|
|
||||||
placement: single_room
|
|
||||||
density: 8
|
|
||||||
compute: 2
|
|
||||||
progression: null
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_north_south.yaml
|
|
||||||
- name: l3-east-west-4-1
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 1
|
|
||||||
placement: single_room
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
- name: l3-east-west-8-1
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 1
|
|
||||||
placement: single_room
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
- name: l3-east-west-4-2
|
|
||||||
enabled: true
|
|
||||||
density: 4
|
|
||||||
compute: 2
|
|
||||||
placement: single_room
|
|
||||||
time: 60
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
||||||
- name: l3-east-west-8-2
|
|
||||||
enabled: true
|
|
||||||
density: 8
|
|
||||||
compute: 2
|
|
||||||
time: 60
|
|
||||||
placement: single_room
|
|
||||||
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l3_east_west.yaml
|
|
@ -1,13 +1,17 @@
|
|||||||
# Complete set of Glance Benchmarks
|
# Complete set of Glance Benchmarks
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -17,49 +21,65 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: true
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
- glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete
|
- glance: rally/rally-plugins/glance
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: glance
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 8
|
join_timeout: 600
|
||||||
times: 10
|
sleep_before: 0
|
||||||
scenarios:
|
sleep_after: 0
|
||||||
- name: create-image-boot-instances
|
shaker_region: regionOne
|
||||||
enabled: true
|
external_host: 2.2.2.2
|
||||||
image_location: /home/stack/cirros.qcow2
|
yoda:
|
||||||
instances: 2
|
instackenv: "/home/stack/instackenv.json"
|
||||||
flavor_name: m1.small
|
stackrc: "/home/stack/stackrc"
|
||||||
file: rally/glance/create-image-and-boot-instances-cc.yml
|
|
||||||
- name: create-and-delete-image
|
workloads:
|
||||||
enabled: true
|
- name: glance
|
||||||
image_location: /home/stack/cirros.qcow2
|
enabled: true
|
||||||
flavor_name: m1.small
|
type: rally
|
||||||
file: rally/glance/create-and-delete-image-cc.yml
|
concurrency:
|
||||||
- name: create-and-list-image
|
- 8
|
||||||
enabled: true
|
times: 10
|
||||||
image_location: /home/stack/cirros.qcow2
|
scenarios:
|
||||||
file: rally/glance/create-and-list-image-cc.yml
|
- name: create-image-boot-instances
|
||||||
- name: list-images
|
enabled: true
|
||||||
enabled: true
|
image_location: /home/stack/cirros.qcow2
|
||||||
file: rally/glance/list-images-cc.yml
|
instances: 2
|
||||||
|
flavor_name: m1.small
|
||||||
|
file: rally/glance/create-image-and-boot-instances-cc.yml
|
||||||
|
- name: create-and-delete-image
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
flavor_name: m1.small
|
||||||
|
file: rally/glance/create-and-delete-image-cc.yml
|
||||||
|
- name: create-and-list-image
|
||||||
|
enabled: true
|
||||||
|
image_location: /home/stack/cirros.qcow2
|
||||||
|
file: rally/glance/create-and-list-image-cc.yml
|
||||||
|
- name: list-images
|
||||||
|
enabled: true
|
||||||
|
file: rally/glance/list-images-cc.yml
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
# Complete set of Keystone Stress tests run 3 times over multiple concurrencies with high repetitions(times)
|
# Complete set of Keystone Stress tests run 3 times over multiple concurrencies with high repetitions(times)
|
||||||
# This testing will take days to complete. (You have been warned)
|
# This testing will take days to complete. (You have been warned)
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 3
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 3
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -18,197 +22,215 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
benchmarks:
|
plugins: []
|
||||||
- name: authenticate
|
shaker:
|
||||||
enabled: true
|
server: 1.1.1.1
|
||||||
concurrency:
|
port: 5555
|
||||||
- 64
|
flavor: m1.small
|
||||||
- 128
|
join_timeout: 600
|
||||||
- 192
|
sleep_before: 0
|
||||||
- 256
|
sleep_after: 0
|
||||||
- 320
|
shaker_region: regionOne
|
||||||
- 384
|
external_host: 2.2.2.2
|
||||||
- 448
|
yoda:
|
||||||
- 512
|
instackenv: "/home/stack/instackenv.json"
|
||||||
times: 10000
|
stackrc: "/home/stack/stackrc"
|
||||||
scenarios:
|
|
||||||
- name: authentic-ceilometer
|
workloads:
|
||||||
enabled: true
|
- name: authenticate
|
||||||
file: rally/authenticate/validate_ceilometer-cc.yml
|
enabled: true
|
||||||
sla_max_avg_duration: 12
|
type: rally
|
||||||
sla_max_seconds: 30
|
concurrency:
|
||||||
sla_max_failure: 0
|
- 64
|
||||||
- name: authentic-cinder
|
- 128
|
||||||
enabled: true
|
- 192
|
||||||
file: rally/authenticate/validate_cinder-cc.yml
|
- 256
|
||||||
sla_max_avg_duration: 12
|
- 320
|
||||||
sla_max_seconds: 30
|
- 384
|
||||||
sla_max_failure: 0
|
- 448
|
||||||
- name: authentic-glance
|
- 512
|
||||||
enabled: true
|
times: 10000
|
||||||
file: rally/authenticate/validate_glance-cc.yml
|
scenarios:
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-ceilometer
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_ceilometer-cc.yml
|
||||||
- name: authentic-heat
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_heat-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-cinder
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_cinder-cc.yml
|
||||||
- name: authentic-keystone
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/keystone-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 6
|
- name: authentic-glance
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_glance-cc.yml
|
||||||
- name: authentic-monasca
|
sla_max_avg_duration: 12
|
||||||
enabled: false
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_monasca-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-heat
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_heat-cc.yml
|
||||||
- name: authentic-neutron
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_neutron-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 18
|
- name: authentic-keystone
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/keystone-cc.yml
|
||||||
- name: authentic-nova
|
sla_max_avg_duration: 6
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_nova-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-monasca
|
||||||
sla_max_seconds: 30
|
enabled: false
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_monasca-cc.yml
|
||||||
- name: keystonebasic
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
concurrency:
|
sla_max_failure: 0
|
||||||
- 128
|
- name: authentic-neutron
|
||||||
- 256
|
enabled: true
|
||||||
times: 5000
|
file: rally/authenticate/validate_neutron-cc.yml
|
||||||
scenarios:
|
sla_max_avg_duration: 18
|
||||||
- name: create-user
|
sla_max_seconds: 30
|
||||||
enabled: true
|
sla_max_failure: 0
|
||||||
file: rally/keystonebasic/create_user-cc.yml
|
- name: authentic-nova
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_nova-cc.yml
|
||||||
- name: create-delete-user
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/keystonebasic/create_delete_user-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_seconds: 30
|
- name: keystonebasic
|
||||||
sla_max_failure: 0
|
enabled: true
|
||||||
- name: create-user-set-enabled-and-delete
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
enabled_flag: true
|
- 128
|
||||||
file: rally/keystonebasic/create_user_set_enabled_and_delete-cc.yml
|
- 256
|
||||||
sla_max_seconds: 30
|
times: 5000
|
||||||
sla_max_failure: 0
|
scenarios:
|
||||||
- name: create-tenant
|
- name: create-user
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/create_tenant-cc.yml
|
file: rally/keystonebasic/create_user-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: authenticate_user_and_validate_token
|
- name: create-delete-user
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/authenticate_user_and_validate_token-cc.yml
|
file: rally/keystonebasic/create_delete_user-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: create-tenant-with-users
|
- name: create-user-set-enabled-and-delete
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/create_tenant_with_users-cc.yml
|
enabled_flag: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_user_set_enabled_and_delete-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-list-users
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-tenant
|
||||||
file: rally/keystonebasic/create_and_list_users-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_tenant-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-list-tenants
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: authenticate_user_and_validate_token
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/authenticate_user_and_validate_token-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: add-and-remove-user-role
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-tenant-with-users
|
||||||
file: rally/keystonebasic/add_and_remove_user_role-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_tenant_with_users-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-delete-role
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-users
|
||||||
file: rally/keystonebasic/create_and_delete_role-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_users-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-add-and-list-user-roles
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-tenants
|
||||||
file: rally/keystonebasic/create_add_and_list_user_roles-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: get-entities
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: add-and-remove-user-role
|
||||||
file: rally/keystonebasic/get_entities-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/add_and_remove_user_role-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-delete-service
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-delete-role
|
||||||
file: rally/keystonebasic/create_and_delete_service-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_delete_role-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-update-and-delete-tenant
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-add-and-list-user-roles
|
||||||
file: rally/keystonebasic/create_update_and_delete_tenant-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_add_and_list_user_roles-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-user-update-password
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: get-entities
|
||||||
file: rally/keystonebasic/create_user_update_password-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/get_entities-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-list-services
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-delete-service
|
||||||
file: rally/keystonebasic/create_and_list_services-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_delete_service-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-list-ec2credentials
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-update-and-delete-tenant
|
||||||
file: rally/keystonebasic/create_and_list_ec2credentials-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_update_and_delete_tenant-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-delete-ec2credentials
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-user-update-password
|
||||||
file: rally/keystonebasic/create_and_delete_ec2credentials-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_user_update_password-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-get-role
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-services
|
||||||
file: rally/keystonebasic/create_and_get_role-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_services-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-add-list-roles
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-ec2credentials
|
||||||
file: rally/keystonebasic/create_add_list_roles-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_ec2credentials-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-update-user
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-delete-ec2credentials
|
||||||
file: rally/keystonebasic/create_and_update_user-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_delete_ec2credentials-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-and-get-role
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_and_get_role-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-add-list-roles
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_add_list_roles-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-and-update-user
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_and_update_user-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
# Complete set of Keystone Stress tests run minimal number of times.
|
# Complete set of Keystone Stress tests run minimal number of times.
|
||||||
# Good sanity test to see if OSP will be able to handle the longer stress tests.
|
# Good sanity test to see if OSP will be able to handle the longer stress tests.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -18,190 +22,208 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
benchmarks:
|
plugins: []
|
||||||
- name: authenticate
|
shaker:
|
||||||
enabled: true
|
server: 1.1.1.1
|
||||||
concurrency:
|
port: 5555
|
||||||
- 32
|
flavor: m1.small
|
||||||
times: 100
|
join_timeout: 600
|
||||||
scenarios:
|
sleep_before: 0
|
||||||
- name: authentic-ceilometer
|
sleep_after: 0
|
||||||
enabled: true
|
shaker_region: regionOne
|
||||||
file: rally/authenticate/validate_ceilometer-cc.yml
|
external_host: 2.2.2.2
|
||||||
sla_max_avg_duration: 12
|
yoda:
|
||||||
sla_max_seconds: 30
|
instackenv: "/home/stack/instackenv.json"
|
||||||
sla_max_failure: 0
|
stackrc: "/home/stack/stackrc"
|
||||||
- name: authentic-cinder
|
|
||||||
enabled: true
|
workloads:
|
||||||
file: rally/authenticate/validate_cinder-cc.yml
|
- name: authenticate
|
||||||
sla_max_avg_duration: 12
|
enabled: true
|
||||||
sla_max_seconds: 30
|
type: rally
|
||||||
sla_max_failure: 0
|
concurrency:
|
||||||
- name: authentic-glance
|
- 32
|
||||||
enabled: true
|
times: 100
|
||||||
file: rally/authenticate/validate_glance-cc.yml
|
scenarios:
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-ceilometer
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_ceilometer-cc.yml
|
||||||
- name: authentic-heat
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_heat-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-cinder
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_cinder-cc.yml
|
||||||
- name: authentic-keystone
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/keystone-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 6
|
- name: authentic-glance
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_glance-cc.yml
|
||||||
- name: authentic-monasca
|
sla_max_avg_duration: 12
|
||||||
enabled: false
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_monasca-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-heat
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_heat-cc.yml
|
||||||
- name: authentic-neutron
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_neutron-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 18
|
- name: authentic-keystone
|
||||||
sla_max_seconds: 30
|
enabled: true
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/keystone-cc.yml
|
||||||
- name: authentic-nova
|
sla_max_avg_duration: 6
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/authenticate/validate_nova-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_avg_duration: 12
|
- name: authentic-monasca
|
||||||
sla_max_seconds: 30
|
enabled: false
|
||||||
sla_max_failure: 0
|
file: rally/authenticate/validate_monasca-cc.yml
|
||||||
- name: keystonebasic
|
sla_max_avg_duration: 12
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
concurrency:
|
sla_max_failure: 0
|
||||||
- 25
|
- name: authentic-neutron
|
||||||
times: 100
|
enabled: true
|
||||||
scenarios:
|
file: rally/authenticate/validate_neutron-cc.yml
|
||||||
- name: create-user
|
sla_max_avg_duration: 18
|
||||||
enabled: true
|
sla_max_seconds: 30
|
||||||
file: rally/keystonebasic/create_user-cc.yml
|
sla_max_failure: 0
|
||||||
sla_max_seconds: 30
|
- name: authentic-nova
|
||||||
sla_max_failure: 0
|
enabled: true
|
||||||
- name: create-delete-user
|
file: rally/authenticate/validate_nova-cc.yml
|
||||||
enabled: true
|
sla_max_avg_duration: 12
|
||||||
file: rally/keystonebasic/create_delete_user-cc.yml
|
sla_max_seconds: 30
|
||||||
sla_max_seconds: 30
|
sla_max_failure: 0
|
||||||
sla_max_failure: 0
|
- name: keystonebasic
|
||||||
- name: create-user-set-enabled-and-delete
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
enabled_flag: true
|
concurrency:
|
||||||
file: rally/keystonebasic/create_user_set_enabled_and_delete-cc.yml
|
- 25
|
||||||
sla_max_seconds: 30
|
times: 100
|
||||||
sla_max_failure: 0
|
scenarios:
|
||||||
- name: create-tenant
|
- name: create-user
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/create_tenant-cc.yml
|
file: rally/keystonebasic/create_user-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: authenticate_user_and_validate_token
|
- name: create-delete-user
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/authenticate_user_and_validate_token-cc.yml
|
file: rally/keystonebasic/create_delete_user-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: create-tenant-with-users
|
- name: create-user-set-enabled-and-delete
|
||||||
enabled: true
|
enabled: true
|
||||||
users_per_tenant: 2
|
enabled_flag: true
|
||||||
file: rally/keystonebasic/create_tenant_with_users-cc.yml
|
file: rally/keystonebasic/create_user_set_enabled_and_delete-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: create-and-list-users
|
- name: create-tenant
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/create_and_list_users-cc.yml
|
file: rally/keystonebasic/create_tenant-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: create-and-list-tenants
|
- name: authenticate_user_and_validate_token
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
file: rally/keystonebasic/authenticate_user_and_validate_token-cc.yml
|
||||||
sla_max_seconds: 30
|
sla_max_seconds: 30
|
||||||
sla_max_failure: 0
|
sla_max_failure: 0
|
||||||
- name: add-and-remove-user-role
|
- name: create-tenant-with-users
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/keystonebasic/add_and_remove_user_role-cc.yml
|
users_per_tenant: 2
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_tenant_with_users-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-delete-role
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-users
|
||||||
file: rally/keystonebasic/create_and_delete_role-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_users-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-add-and-list-user-roles
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-tenants
|
||||||
file: rally/keystonebasic/create_add_and_list_user_roles-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_tenants-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: get-entities
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: add-and-remove-user-role
|
||||||
file: rally/keystonebasic/get_entities-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/add_and_remove_user_role-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-delete-service
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-delete-role
|
||||||
file: rally/keystonebasic/create_and_delete_service-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_delete_role-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-update-and-delete-tenant
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-add-and-list-user-roles
|
||||||
file: rally/keystonebasic/create_update_and_delete_tenant-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_add_and_list_user_roles-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-user-update-password
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: get-entities
|
||||||
file: rally/keystonebasic/create_user_update_password-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/get_entities-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-list-services
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-delete-service
|
||||||
file: rally/keystonebasic/create_and_list_services-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_delete_service-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-list-ec2credentials
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-update-and-delete-tenant
|
||||||
file: rally/keystonebasic/create_and_list_ec2credentials-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_update_and_delete_tenant-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-delete-ec2credentials
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-user-update-password
|
||||||
file: rally/keystonebasic/create_and_delete_ec2credentials-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_user_update_password-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-get-role
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-services
|
||||||
file: rally/keystonebasic/create_and_get_role-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_services-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-add-list-roles
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-list-ec2credentials
|
||||||
file: rally/keystonebasic/create_add_list_roles-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_list_ec2credentials-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
- name: create-and-update-user
|
sla_max_failure: 0
|
||||||
enabled: true
|
- name: create-and-delete-ec2credentials
|
||||||
file: rally/keystonebasic/create_and_update_user-cc.yml
|
enabled: true
|
||||||
sla_max_seconds: 30
|
file: rally/keystonebasic/create_and_delete_ec2credentials-cc.yml
|
||||||
sla_max_failure: 0
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-and-get-role
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_and_get_role-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-add-list-roles
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_add_list_roles-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
- name: create-and-update-user
|
||||||
|
enabled: true
|
||||||
|
file: rally/keystonebasic/create_and_update_user-cc.yml
|
||||||
|
sla_max_seconds: 30
|
||||||
|
sla_max_failure: 0
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
# Complete set of Workload Benchmarks
|
# Complete set of Workload Benchmarks
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -17,60 +21,76 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: true
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
- workloads: rally/rally-plugins/workloads
|
- workloads: rally/rally-plugins/workloads
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: workloads
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 1
|
join_timeout: 600
|
||||||
times: 1
|
sleep_before: 0
|
||||||
scenarios:
|
sleep_after: 0
|
||||||
- name: browbeat-linpack
|
shaker_region: regionOne
|
||||||
enabled: true
|
external_host: 2.2.2.2
|
||||||
image_name: browbeat-linpack
|
yoda:
|
||||||
flavor_name: m1.small
|
instackenv: "/home/stack/instackenv.json"
|
||||||
external_network:
|
stackrc: "/home/stack/stackrc"
|
||||||
net_id:
|
|
||||||
file: rally/rally-plugins/workloads/linpack.yml
|
|
||||||
|
|
||||||
- name: browbeat-pbench-uperf
|
workloads:
|
||||||
enabled: true
|
- name: workloads
|
||||||
user: root
|
enabled: true
|
||||||
image_name: browbeat-uperf
|
type: rally
|
||||||
flavor_name: m1.small
|
concurrency:
|
||||||
# hypervisor_server: "nova:overcloud-compute-1.localdomain"
|
- 1
|
||||||
# hypervisor_client: "nova:overcloud-compute-0.localdomain"
|
times: 1
|
||||||
external_network:
|
scenarios:
|
||||||
net_id:
|
- name: browbeat-linpack
|
||||||
protocols: tcp,udp
|
enabled: true
|
||||||
instances: 1
|
image_name: browbeat-linpack
|
||||||
num_pairs: 1
|
flavor_name: m1.small
|
||||||
samples: 1
|
external_network:
|
||||||
test_types: stream,rr
|
net_id:
|
||||||
message_sizes: 64,1024,16384
|
file: rally/rally-plugins/workloads/linpack.yml
|
||||||
test_name: browbeat-pbench-uperf
|
|
||||||
send_results: true
|
- name: browbeat-pbench-uperf
|
||||||
cloudname:
|
enabled: true
|
||||||
elastic_host:
|
user: root
|
||||||
elastic_port: 9200
|
image_name: browbeat-uperf
|
||||||
file: rally/rally-plugins/workloads/pbench-uperf.yml
|
flavor_name: m1.small
|
||||||
|
# hypervisor_server: "nova:overcloud-compute-1.localdomain"
|
||||||
|
# hypervisor_client: "nova:overcloud-compute-0.localdomain"
|
||||||
|
external_network:
|
||||||
|
net_id:
|
||||||
|
protocols: tcp,udp
|
||||||
|
instances: 1
|
||||||
|
num_pairs: 1
|
||||||
|
samples: 1
|
||||||
|
test_types: stream,rr
|
||||||
|
message_sizes: 64,1024,16384
|
||||||
|
test_name: browbeat-pbench-uperf
|
||||||
|
send_results: true
|
||||||
|
cloudname:
|
||||||
|
elastic_host:
|
||||||
|
elastic_port: 9200
|
||||||
|
file: rally/rally-plugins/workloads/pbench-uperf.yml
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
# Ceilometer Stress tests run minimal number of times.
|
# Ceilometer Stress tests run minimal number of times.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -17,151 +21,175 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins: []
|
plugins: []
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: CeilometerAlarms
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 5
|
join_timeout: 600
|
||||||
times: 10
|
sleep_before: 0
|
||||||
scenarios:
|
sleep_after: 0
|
||||||
- name: create_alarm
|
shaker_region: regionOne
|
||||||
enabled: true
|
external_host: 2.2.2.2
|
||||||
file: rally/CeilometerAlarms/create_alarm-cc.yml
|
yoda:
|
||||||
- name: create_alarm_and_get_history
|
instackenv: "/home/stack/instackenv.json"
|
||||||
enabled: true
|
stackrc: "/home/stack/stackrc"
|
||||||
file: rally/CeilometerAlarms/create_alarm_and_get_history-cc.yml
|
|
||||||
- name: create_and_delete_alarm
|
workloads:
|
||||||
enabled: true
|
- name: CeilometerAlarms
|
||||||
file: rally/CeilometerAlarms/create_and_delete_alarm-cc.yml
|
enabled: true
|
||||||
- name: create_and_list_alarm
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
file: rally/CeilometerAlarms/create_and_list_alarm-cc.yml
|
- 5
|
||||||
- name: create_and_update_alarm
|
times: 10
|
||||||
enabled: true
|
scenarios:
|
||||||
file: rally/CeilometerAlarms/create_and_update_alarm-cc.yml
|
- name: create_alarm
|
||||||
- name: list_alarms
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerAlarms/create_alarm-cc.yml
|
||||||
file: rally/CeilometerAlarms/list_alarms-cc.yml
|
- name: create_alarm_and_get_history
|
||||||
- name: CeilometerEvents
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerAlarms/create_alarm_and_get_history-cc.yml
|
||||||
concurrency:
|
- name: create_and_delete_alarm
|
||||||
- 5
|
enabled: true
|
||||||
times: 10
|
file: rally/CeilometerAlarms/create_and_delete_alarm-cc.yml
|
||||||
scenarios:
|
- name: create_and_list_alarm
|
||||||
- name: create_user_and_get_event
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerAlarms/create_and_list_alarm-cc.yml
|
||||||
file: rally/CeilometerEvents/create_user_and_get_event-cc.yml
|
- name: create_and_update_alarm
|
||||||
- name: create_user_and_list_event_types
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerAlarms/create_and_update_alarm-cc.yml
|
||||||
file: rally/CeilometerEvents/create_user_and_list_event_types-cc.yml
|
- name: list_alarms
|
||||||
- name: create_user_and_list_events
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerAlarms/list_alarms-cc.yml
|
||||||
file: rally/CeilometerEvents/create_user_and_list_events-cc.yml
|
- name: CeilometerEvents
|
||||||
- name: CeilometerMeters
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
concurrency:
|
concurrency:
|
||||||
- 5
|
- 5
|
||||||
times: 10
|
times: 10
|
||||||
scenarios:
|
scenarios:
|
||||||
- name: list_matched_meters
|
- name: create_user_and_get_event
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/CeilometerMeters/list_matched_meters-cc.yml
|
file: rally/CeilometerEvents/create_user_and_get_event-cc.yml
|
||||||
- name: list_meters
|
- name: create_user_and_list_event_types
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
file: rally/CeilometerEvents/create_user_and_list_event_types-cc.yml
|
||||||
- name: CeilometerQueries
|
- name: create_user_and_list_events
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
file: rally/CeilometerEvents/create_user_and_list_events-cc.yml
|
||||||
- 5
|
- name: CeilometerMeters
|
||||||
times: 10
|
enabled: true
|
||||||
scenarios:
|
type: rally
|
||||||
- name: create_and_query_alarm_history
|
concurrency:
|
||||||
enabled: true
|
- 5
|
||||||
file: rally/CeilometerQueries/create_and_query_alarm_history-cc.yml
|
times: 10
|
||||||
- name: create_and_query_alarms
|
scenarios:
|
||||||
enabled: true
|
- name: list_matched_meters
|
||||||
file: rally/CeilometerQueries/create_and_query_alarms-cc.yml
|
enabled: true
|
||||||
- name: create_and_query_samples
|
file: rally/CeilometerMeters/list_matched_meters-cc.yml
|
||||||
enabled: true
|
- name: list_meters
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
enabled: true
|
||||||
- name: CeilometerResource
|
file: rally/CeilometerMeters/list_meters-cc.yml
|
||||||
enabled: true
|
- name: CeilometerQueries
|
||||||
concurrency:
|
enabled: true
|
||||||
- 5
|
type: rally
|
||||||
times: 10
|
concurrency:
|
||||||
scenarios:
|
- 5
|
||||||
- name: get_tenant_resources
|
times: 10
|
||||||
enabled: true
|
scenarios:
|
||||||
file: rally/CeilometerResource/get_tenant_resources-cc.yml
|
- name: create_and_query_alarm_history
|
||||||
- name: list_matched_resources
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerQueries/create_and_query_alarm_history-cc.yml
|
||||||
file: rally/CeilometerResource/list_matched_resources-cc.yml
|
- name: create_and_query_alarms
|
||||||
- name: list_resources
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerQueries/create_and_query_alarms-cc.yml
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
- name: create_and_query_samples
|
||||||
- name: CeilometerSamples
|
enabled: true
|
||||||
enabled: true
|
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
||||||
concurrency:
|
- name: CeilometerResource
|
||||||
- 5
|
enabled: true
|
||||||
times: 10
|
type: rally
|
||||||
scenarios:
|
concurrency:
|
||||||
- name: list_matched_samples
|
- 5
|
||||||
enabled: true
|
times: 10
|
||||||
file: rally/CeilometerSamples/list_matched_samples-cc.yml
|
scenarios:
|
||||||
- name: list_samples
|
- name: get_tenant_resources
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
file: rally/CeilometerResource/get_tenant_resources-cc.yml
|
||||||
- name: CeilometerStats
|
- name: list_matched_resources
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
file: rally/CeilometerResource/list_matched_resources-cc.yml
|
||||||
- 5
|
- name: list_resources
|
||||||
times: 10
|
enabled: true
|
||||||
scenarios:
|
file: rally/CeilometerResource/list_resources-cc.yml
|
||||||
- name: create_meter_and_get_stats
|
- name: CeilometerSamples
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/CeilometerStats/create_meter_and_get_stats-cc.yml
|
type: rally
|
||||||
- name: get_stats
|
concurrency:
|
||||||
enabled: true
|
- 5
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
times: 10
|
||||||
- name: CeilometerTraits
|
scenarios:
|
||||||
enabled: true
|
- name: list_matched_samples
|
||||||
concurrency:
|
enabled: true
|
||||||
- 5
|
file: rally/CeilometerSamples/list_matched_samples-cc.yml
|
||||||
times: 10
|
- name: list_samples
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: create_user_and_list_trait_descriptions
|
file: rally/CeilometerSamples/list_samples-cc.yml
|
||||||
enabled: true
|
- name: CeilometerStats
|
||||||
file: rally/CeilometerTraits/create_user_and_list_trait_descriptions-cc.yml
|
enabled: true
|
||||||
- name: create_user_and_list_traits
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
file: rally/CeilometerTraits/create_user_and_list_traits-cc.yml
|
- 5
|
||||||
# Other Scenarios involving Ceilometer:
|
times: 10
|
||||||
- name: Authenticate
|
scenarios:
|
||||||
enabled: false
|
- name: create_meter_and_get_stats
|
||||||
concurrency:
|
enabled: true
|
||||||
- 2
|
file: rally/CeilometerStats/create_meter_and_get_stats-cc.yml
|
||||||
times: 10
|
- name: get_stats
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: validate_ceilometer
|
file: rally/CeilometerStats/get_stats-cc.yml
|
||||||
enabled: true
|
- name: CeilometerTraits
|
||||||
file: rally/authenticate/validate_ceilometer-cc.yml
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 5
|
||||||
|
times: 10
|
||||||
|
scenarios:
|
||||||
|
- name: create_user_and_list_trait_descriptions
|
||||||
|
enabled: true
|
||||||
|
file: rally/CeilometerTraits/create_user_and_list_trait_descriptions-cc.yml
|
||||||
|
- name: create_user_and_list_traits
|
||||||
|
enabled: true
|
||||||
|
file: rally/CeilometerTraits/create_user_and_list_traits-cc.yml
|
||||||
|
# Other Scenarios involving Ceilometer:
|
||||||
|
- name: Authenticate
|
||||||
|
enabled: false
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 2
|
||||||
|
times: 10
|
||||||
|
scenarios:
|
||||||
|
- name: validate_ceilometer
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/validate_ceilometer-cc.yml
|
||||||
|
@ -3,14 +3,18 @@
|
|||||||
# each iteration it measures response time of several Ceilometer APIs.
|
# each iteration it measures response time of several Ceilometer APIs.
|
||||||
# Currently it maxs at 200 instances
|
# Currently it maxs at 200 instances
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 10
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -20,387 +24,77 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
|
- browbeat: rally/rally-plugins/browbeat
|
||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
benchmarks:
|
shaker:
|
||||||
# Ceilometer Baseline
|
server: 1.1.1.1
|
||||||
- name: Ceilometer01
|
port: 5555
|
||||||
enabled: true
|
flavor: m1.small
|
||||||
concurrency:
|
join_timeout: 600
|
||||||
- 8
|
sleep_before: 0
|
||||||
times: 500
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: list_meters-01
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
instackenv: "/home/stack/instackenv.json"
|
||||||
- name: create_and_query_samples-01
|
stackrc: "/home/stack/stackrc"
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
workloads:
|
||||||
- name: list_resources-01
|
# Measure Ceilometer Response Timings
|
||||||
enabled: true
|
- name: Ceilometer
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
enabled: true
|
||||||
- name: list_samples-01
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
- 8
|
||||||
- name: get_stats-01
|
times: 500
|
||||||
enabled: true
|
scenarios:
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
- name: list_meters
|
||||||
# Boot 20 instances
|
enabled: true
|
||||||
- name: BrowbeatNovaPersist01
|
file: rally/CeilometerMeters/list_meters-cc.yml
|
||||||
enabled: true
|
- name: create_and_query_samples-01
|
||||||
concurrency:
|
enabled: true
|
||||||
- 5
|
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
||||||
times: 20
|
- name: list_resources
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: nova-boot-20-01
|
file: rally/CeilometerResource/list_resources-cc.yml
|
||||||
enabled: true
|
- name: list_samples
|
||||||
image_name: cirros
|
enabled: true
|
||||||
flavor_name: m1.xtiny
|
file: rally/CeilometerSamples/list_samples-cc.yml
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
- name: get_stats
|
||||||
# Measure Ceilometer Response Timings
|
enabled: true
|
||||||
- name: Ceilometer02
|
file: rally/CeilometerStats/get_stats-cc.yml
|
||||||
enabled: true
|
# Boot 20 instances
|
||||||
concurrency:
|
- name: BrowbeatNovaPersist
|
||||||
- 8
|
enabled: true
|
||||||
times: 500
|
type: rally
|
||||||
scenarios:
|
concurrency:
|
||||||
- name: list_meters-02
|
- 5
|
||||||
enabled: true
|
times: 20
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
scenarios:
|
||||||
- name: create_and_query_samples-02
|
- name: nova-boot-20
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
image_name: cirros
|
||||||
- name: list_resources-02
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-02
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-02
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist02
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-02
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-03
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-03
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-03
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-03
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-03
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-03
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-04
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-04
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-04
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-04
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-04
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-04
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-05
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-05
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-05
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-05
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-05
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-05
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-06
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-06
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-06
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-06
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-06
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-06
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-07
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-07
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-07
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-07
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-07
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-07
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-08
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-08
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-08
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-08
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-08
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-08
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-09
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-09
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-09
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-09
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-09
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-09
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-10
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-10
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-10
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-10
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-10
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
# Boot 20 instances
|
|
||||||
- name: BrowbeatNovaPersist10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 5
|
|
||||||
times: 20
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-20-10
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
|
||||||
# Final Measure Ceilometer Response Timings
|
|
||||||
- name: Ceilometer11
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: list_meters-11
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerMeters/list_meters-cc.yml
|
|
||||||
- name: create_and_query_samples-11
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerQueries/create_and_query_samples-cc.yml
|
|
||||||
- name: list_resources-11
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerResource/list_resources-cc.yml
|
|
||||||
- name: list_samples-11
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerSamples/list_samples-cc.yml
|
|
||||||
- name: get_stats-11
|
|
||||||
enabled: true
|
|
||||||
file: rally/CeilometerStats/get_stats-cc.yml
|
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
# Complete set of Gnocchi Stress tests run minimal number of times.
|
# Complete set of Gnocchi Stress tests run minimal number of times.
|
||||||
# Good sanity test to see if OSP will be able to handle the longer stress tests.
|
# Good sanity test to see if OSP will be able to handle the longer stress tests.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -18,121 +22,137 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
rally:
|
perfkit:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
|
rally:
|
||||||
|
sleep_before: 5
|
||||||
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
- gnocchi: rally/rally-plugins/gnocchi
|
- gnocchi: rally/rally-plugins/gnocchi
|
||||||
benchmarks:
|
shaker:
|
||||||
- name: Gnocchi
|
server: 1.1.1.1
|
||||||
enabled: true
|
port: 5555
|
||||||
concurrency:
|
flavor: m1.small
|
||||||
- 5
|
join_timeout: 600
|
||||||
times: 10
|
sleep_before: 0
|
||||||
scenarios:
|
sleep_after: 0
|
||||||
- name: gnocchi-archive-policy-list
|
shaker_region: regionOne
|
||||||
enabled: true
|
external_host: 2.2.2.2
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-archive-policy-list.yml
|
yoda:
|
||||||
- name: gnocchi-create-archive-policy
|
instackenv: "/home/stack/instackenv.json"
|
||||||
enabled: true
|
stackrc: "/home/stack/stackrc"
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-archive-policy.yml
|
|
||||||
- name: gnocchi-create-delete-archive-policy
|
|
||||||
enabled: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy.yml
|
|
||||||
|
|
||||||
- name: gnocchi-archive-policy-rule-list
|
workloads:
|
||||||
enabled: true
|
- name: Gnocchi
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-archive-policy-rule-list.yml
|
enabled: true
|
||||||
- name: gnocchi-create-archive-policy-rule
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-archive-policy-rule.yml
|
- 5
|
||||||
- name: gnocchi-create-delete-archive-policy-rule
|
times: 10
|
||||||
enabled: true
|
scenarios:
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy-rule.yml
|
- name: gnocchi-archive-policy-list
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-archive-policy-list.yml
|
||||||
|
- name: gnocchi-create-archive-policy
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-archive-policy.yml
|
||||||
|
- name: gnocchi-create-delete-archive-policy
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy.yml
|
||||||
|
|
||||||
- name: gnocchi-capabilities-list
|
- name: gnocchi-archive-policy-rule-list
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-archive-policy-rule-list.yml
|
||||||
|
- name: gnocchi-create-archive-policy-rule
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-archive-policy-rule.yml
|
||||||
|
- name: gnocchi-create-delete-archive-policy-rule
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy-rule.yml
|
||||||
|
|
||||||
# Aggregation has several potential scenarios due to parameterization
|
- name: gnocchi-capabilities-list
|
||||||
- name: gnocchi-metric-aggregation-single-page
|
enabled: true
|
||||||
enabled: true
|
file: rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml
|
|
||||||
- name: gnocchi-metric-aggregation-all
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml
|
|
||||||
- name: gnocchi-metric-aggregation-agg-mean-refresh
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
refresh: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml
|
|
||||||
# Get Measures has several potential scenarios due to parameterization
|
|
||||||
- name: gnocchi-metric-get-measures-single-page
|
|
||||||
enabled: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-metric-get-measures-all
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-refresh
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
refresh: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
# List/Create/Create&Delete Metrics
|
|
||||||
- name: gnocchi-metric-list
|
|
||||||
enabled: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-list.yml
|
|
||||||
- name: gnocchi-create-metric
|
|
||||||
enabled: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-metric.yml
|
|
||||||
- name: gnocchi-create-delete-metric
|
|
||||||
enabled: true
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
|
|
||||||
- name: gnocchi-resource-list
|
# Aggregation has several potential scenarios due to parameterization
|
||||||
enabled: true
|
- name: gnocchi-metric-aggregation-single-page
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-resource-list.yml
|
enabled: true
|
||||||
- name: gnocchi-create-resource
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml
|
||||||
enabled: true
|
- name: gnocchi-metric-aggregation-all
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-resource.yml
|
enabled: true
|
||||||
- name: gnocchi-create-delete-resource
|
all_metrics: true
|
||||||
enabled: true
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
- name: gnocchi-metric-aggregation-agg-mean-refresh
|
||||||
|
enabled: true
|
||||||
|
all_metrics: true
|
||||||
|
aggregation: mean
|
||||||
|
refresh: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml
|
||||||
|
# Get Measures has several potential scenarios due to parameterization
|
||||||
|
- name: gnocchi-metric-get-measures-single-page
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
|
- name: gnocchi-metric-get-measures-all
|
||||||
|
enabled: true
|
||||||
|
all_metrics: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
|
- name: gnocchi-metric-get-measures-agg-mean-refresh
|
||||||
|
enabled: true
|
||||||
|
all_metrics: true
|
||||||
|
aggregation: mean
|
||||||
|
refresh: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
|
# List/Create/Create&Delete Metrics
|
||||||
|
- name: gnocchi-metric-list
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-list.yml
|
||||||
|
- name: gnocchi-create-metric
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-metric.yml
|
||||||
|
- name: gnocchi-create-delete-metric
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
||||||
|
|
||||||
- name: gnocchi-resource-type-list
|
- name: gnocchi-resource-list
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-resource-list.yml
|
||||||
- name: gnocchi-create-resource-type
|
- name: gnocchi-create-resource
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-resource-type.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-create-resource.yml
|
||||||
- name: gnocchi-create-delete-resource-type
|
- name: gnocchi-create-delete-resource
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource-type.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
||||||
|
|
||||||
- name: gnocchi-status-get
|
- name: gnocchi-resource-type-list
|
||||||
enabled: true
|
enabled: true
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-status-get.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml
|
||||||
- name: gnocchi-status-get-detailed
|
- name: gnocchi-create-resource-type
|
||||||
enabled: true
|
enabled: true
|
||||||
detailed: True
|
file: rally/rally-plugins/gnocchi/gnocchi-create-resource-type.yml
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-status-get.yml
|
- name: gnocchi-create-delete-resource-type
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource-type.yml
|
||||||
|
|
||||||
|
- name: gnocchi-status-get
|
||||||
|
enabled: true
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-status-get.yml
|
||||||
|
- name: gnocchi-status-get-detailed
|
||||||
|
enabled: true
|
||||||
|
detailed: True
|
||||||
|
file: rally/rally-plugins/gnocchi/gnocchi-status-get.yml
|
||||||
|
@ -5,14 +5,18 @@
|
|||||||
# each of the benchmarks. The settings for the benchmarks below
|
# each of the benchmarks. The settings for the benchmarks below
|
||||||
# are not tuned for best performance analysis either.
|
# are not tuned for best performance analysis either.
|
||||||
browbeat:
|
browbeat:
|
||||||
results : results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -22,23 +26,13 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
perfkit:
|
perfkit:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
default:
|
default:
|
||||||
@ -50,80 +44,119 @@ perfkit:
|
|||||||
openstack_network: browbeat_private
|
openstack_network: browbeat_private
|
||||||
timing_measurements: runtimes
|
timing_measurements: runtimes
|
||||||
ignore_package_requirements: true
|
ignore_package_requirements: true
|
||||||
benchmarks:
|
rally:
|
||||||
- name: aerospike-centos-m1-small
|
sleep_before: 5
|
||||||
enabled: false
|
sleep_after: 5
|
||||||
benchmarks: aerospike
|
plugins:
|
||||||
- name: block_storage_workload-database-centos-m1-small
|
- glance: rally/rally-plugins/glance
|
||||||
enabled: false
|
- neutron: rally/rally-plugins/neutron
|
||||||
benchmarks: block_storage_workload
|
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||||
openstack_volume_size: 20
|
- workloads: rally/rally-plugins/workloads
|
||||||
workload_mode: database
|
shaker:
|
||||||
- name: block_storage_workload-logging-centos-m1-small
|
server: 1.1.1.1
|
||||||
enabled: false
|
port: 5555
|
||||||
benchmarks: block_storage_workload
|
flavor: m1.small
|
||||||
openstack_volume_size: 20
|
join_timeout: 600
|
||||||
workload_mode: logging
|
sleep_before: 0
|
||||||
- name: block_storage_workload-streaming-centos-m1-small
|
sleep_after: 0
|
||||||
enabled: false
|
shaker_region: regionOne
|
||||||
benchmarks: block_storage_workload
|
external_host: 2.2.2.2
|
||||||
openstack_volume_size: 20
|
yoda:
|
||||||
workload_mode: streaming
|
instackenv: "/home/stack/instackenv.json"
|
||||||
- name: cluster_boot-centos-m1-small
|
stackrc: "/home/stack/stackrc"
|
||||||
enabled: false
|
|
||||||
benchmarks: cluster_boot
|
workloads:
|
||||||
config_override: "cluster_boot.vm_groups.default.vm_count=4"
|
- name: aerospike-centos-m1-small
|
||||||
- name: copy_throughput-cp-centos-m1-small
|
enabled: false
|
||||||
enabled: false
|
type: perfkit
|
||||||
benchmarks: copy_throughput
|
benchmarks: aerospike
|
||||||
copy_benchmark_mode: cp
|
- name: block_storage_workload-database-centos-m1-small
|
||||||
openstack_volume_size: 20
|
enabled: false
|
||||||
- name: copy_throughput-dd-centos-m1-small
|
type: perfkit
|
||||||
enabled: false
|
benchmarks: block_storage_workload
|
||||||
benchmarks: copy_throughput
|
openstack_volume_size: 20
|
||||||
copy_benchmark_mode: dd
|
workload_mode: database
|
||||||
openstack_volume_size: 20
|
- name: block_storage_workload-logging-centos-m1-small
|
||||||
- name: copy_throughput-scp-centos-m1-small
|
enabled: false
|
||||||
enabled: false
|
type: perfkit
|
||||||
benchmarks: copy_throughput
|
benchmarks: block_storage_workload
|
||||||
copy_benchmark_mode: scp
|
openstack_volume_size: 20
|
||||||
openstack_volume_size: 20
|
workload_mode: logging
|
||||||
- name: fio-centos-m1-small
|
- name: block_storage_workload-streaming-centos-m1-small
|
||||||
enabled: false
|
enabled: false
|
||||||
benchmarks: fio
|
type: perfkit
|
||||||
openstack_volume_size: 20
|
benchmarks: block_storage_workload
|
||||||
- name: fio-centos-m1-small-10m
|
openstack_volume_size: 20
|
||||||
enabled: false
|
workload_mode: streaming
|
||||||
benchmarks: fio
|
- name: cluster_boot-centos-m1-small
|
||||||
openstack_volume_size: 20
|
enabled: false
|
||||||
fio_generate_scenarios: all
|
type: perfkit
|
||||||
fio_runtime: 600
|
benchmarks: cluster_boot
|
||||||
fio_working_set_size: 4
|
config_override: "cluster_boot.vm_groups.default.vm_count=4"
|
||||||
- name: iperf-centos-m1-small
|
- name: copy_throughput-cp-centos-m1-small
|
||||||
enabled: false
|
enabled: false
|
||||||
benchmarks: iperf
|
type: perfkit
|
||||||
- name: mesh_network-centos-m1-small
|
benchmarks: copy_throughput
|
||||||
enabled: false
|
copy_benchmark_mode: cp
|
||||||
benchmarks: mesh_network
|
openstack_volume_size: 20
|
||||||
num_vms: 3
|
- name: copy_throughput-dd-centos-m1-small
|
||||||
- name: netperf-centos-m1-small
|
enabled: false
|
||||||
enabled: false
|
type: perfkit
|
||||||
benchmarks: netperf
|
benchmarks: copy_throughput
|
||||||
- name: ping-centos-m1-small
|
copy_benchmark_mode: dd
|
||||||
enabled: false
|
openstack_volume_size: 20
|
||||||
benchmarks: ping
|
- name: copy_throughput-scp-centos-m1-small
|
||||||
- name: redis_ycsb-centos-m1-small
|
enabled: false
|
||||||
enabled: false
|
type: perfkit
|
||||||
benchmarks: redis_ycsb
|
benchmarks: copy_throughput
|
||||||
ycsb_client_vms: 2
|
copy_benchmark_mode: scp
|
||||||
- name: scimark2-centos-m1-small
|
openstack_volume_size: 20
|
||||||
enabled: false
|
- name: fio-centos-m1-small
|
||||||
benchmarks: scimark2
|
enabled: false
|
||||||
- name: sysbench_oltp-centos-m1-small
|
type: perfkit
|
||||||
enabled: false
|
benchmarks: fio
|
||||||
benchmarks: sysbench_oltp
|
openstack_volume_size: 20
|
||||||
openstack_volume_size: 20
|
- name: fio-centos-m1-small-10m
|
||||||
- name: unixbench-centos-m1-small
|
enabled: false
|
||||||
enabled: false
|
type: perfkit
|
||||||
benchmarks: unixbench
|
benchmarks: fio
|
||||||
openstack_volume_size: 20
|
openstack_volume_size: 20
|
||||||
|
fio_generate_scenarios: all
|
||||||
|
fio_runtime: 600
|
||||||
|
fio_working_set_size: 4
|
||||||
|
- name: iperf-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: iperf
|
||||||
|
- name: mesh_network-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: mesh_network
|
||||||
|
num_vms: 3
|
||||||
|
- name: netperf-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: netperf
|
||||||
|
- name: ping-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: ping
|
||||||
|
- name: redis_ycsb-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: redis_ycsb
|
||||||
|
ycsb_client_vms: 2
|
||||||
|
- name: scimark2-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: scimark2
|
||||||
|
- name: sysbench_oltp-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: sysbench_oltp
|
||||||
|
openstack_volume_size: 20
|
||||||
|
- name: unixbench-centos-m1-small
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: unixbench
|
||||||
|
openstack_volume_size: 20
|
||||||
|
@ -7,14 +7,18 @@
|
|||||||
# how system resources and api responsiveness degrade over each new set of
|
# how system resources and api responsiveness degrade over each new set of
|
||||||
# instances booted.
|
# instances booted.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 10
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -24,23 +28,25 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
@ -48,355 +54,55 @@ rally:
|
|||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
- gnocchi: rally/rally-plugins/gnocchi
|
- gnocchi: rally/rally-plugins/gnocchi
|
||||||
benchmarks:
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
# Baseline
|
workloads:
|
||||||
- name: BrowbeatGnocchiBaseline
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork01
|
# Baseline Gnocchi API
|
||||||
enabled: true
|
- name: BrowbeatGnocchiResponsiveness
|
||||||
concurrency:
|
enabled: true
|
||||||
- 40
|
type: rally
|
||||||
times: 1000
|
concurrency:
|
||||||
scenarios:
|
- 8
|
||||||
- name: nova-boot-persist-with-network-1000-01
|
times: 5000
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.0.0/22
|
all_metrics: true
|
||||||
cleanup_delay: 1800
|
aggregation: mean
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
- name: BrowbeatGnocchi01
|
- name: gnocchi-create-delete-metric-Baseline
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
times: 1000
|
||||||
- 8
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
||||||
times: 5000
|
- name: gnocchi-create-delete-resource-Baseline
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-01
|
times: 1000
|
||||||
enabled: true
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork02
|
# Boot 1000 instances
|
||||||
enabled: true
|
- name: BrowbeatNovaPersistWithNetwork
|
||||||
concurrency:
|
enabled: true
|
||||||
- 40
|
type: rally
|
||||||
times: 1000
|
concurrency:
|
||||||
scenarios:
|
- 40
|
||||||
- name: nova-boot-persist-with-network-1000-02
|
times: 1000
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: nova-boot-persist-with-network-1000
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.4.0/22
|
image_name: cirros
|
||||||
cleanup_delay: 1800
|
flavor_name: m1.xtiny
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
network_start_cidr: 10.1.0.0/22
|
||||||
- name: BrowbeatGnocchi02
|
cleanup_delay: 1800
|
||||||
enabled: true
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-02
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-03
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.8.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-03
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-03
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-03
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-04
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.12.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-04
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-04
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-04
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-05
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.16.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-05
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-05
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-05
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-06
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.20.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-06
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-06
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-06
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-07
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.24.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-07
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-07
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-07
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-08
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.28.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-08
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-08
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-08
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-09
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.32.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-09
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-09
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-09
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 40
|
|
||||||
times: 1000
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-1000-10
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.36.0/22
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-10
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-10
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-10
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
@ -7,14 +7,18 @@
|
|||||||
# how system resources and api responsiveness degrade over each new set of
|
# how system resources and api responsiveness degrade over each new set of
|
||||||
# instances booted.
|
# instances booted.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 10
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -24,23 +28,25 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
@ -48,355 +54,55 @@ rally:
|
|||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
- gnocchi: rally/rally-plugins/gnocchi
|
- gnocchi: rally/rally-plugins/gnocchi
|
||||||
benchmarks:
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
# Baseline
|
workloads:
|
||||||
- name: BrowbeatGnocchiBaseline
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork01
|
# Baseline Gnocchi API
|
||||||
enabled: true
|
- name: BrowbeatGnocchiResponsiveness
|
||||||
concurrency:
|
enabled: true
|
||||||
- 20
|
type: rally
|
||||||
times: 100
|
concurrency:
|
||||||
scenarios:
|
- 8
|
||||||
- name: nova-boot-persist-with-network-100-01
|
times: 5000
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.0.0/23
|
all_metrics: true
|
||||||
cleanup_delay: 1800
|
aggregation: mean
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
- name: BrowbeatGnocchi01
|
- name: gnocchi-create-delete-metric-Baseline
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
times: 1000
|
||||||
- 8
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
||||||
times: 5000
|
- name: gnocchi-create-delete-resource-Baseline
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-01
|
times: 1000
|
||||||
enabled: true
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork02
|
# Boot 100 instances
|
||||||
enabled: true
|
- name: BrowbeatNovaPersistWithNetwork
|
||||||
concurrency:
|
enabled: true
|
||||||
- 20
|
type: rally
|
||||||
times: 100
|
concurrency:
|
||||||
scenarios:
|
- 20
|
||||||
- name: nova-boot-persist-with-network-100-02
|
times: 100
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: nova-boot-persist-with-network-100
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.2.0/23
|
image_name: cirros
|
||||||
cleanup_delay: 1800
|
flavor_name: m1.xtiny
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
network_start_cidr: 10.1.0.0/23
|
||||||
- name: BrowbeatGnocchi02
|
cleanup_delay: 1800
|
||||||
enabled: true
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-02
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-03
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.4.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-03
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-03
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-03
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-04
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.6.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-04
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-04
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-04
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-05
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.8.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-05
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-05
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-05
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-06
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.10.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-06
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-06
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-06
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-07
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.12.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-07
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-07
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-07
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-08
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.14.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-08
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-08
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-08
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-09
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.16.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-09
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-09
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-09
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 100
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-100-10
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.18.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-10
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-10
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-10
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
@ -7,14 +7,18 @@
|
|||||||
# how system resources and api responsiveness degrade over each new set of
|
# how system resources and api responsiveness degrade over each new set of
|
||||||
# instances booted.
|
# instances booted.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 2
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -24,23 +28,25 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
@ -48,91 +54,55 @@ rally:
|
|||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
- gnocchi: rally/rally-plugins/gnocchi
|
- gnocchi: rally/rally-plugins/gnocchi
|
||||||
benchmarks:
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
# Baseline
|
workloads:
|
||||||
- name: BrowbeatGnocchiBaseline
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork01
|
# Baseline Gnocchi API
|
||||||
enabled: true
|
- name: BrowbeatGnocchiResponsiveness
|
||||||
concurrency:
|
enabled: true
|
||||||
- 20
|
type: rally
|
||||||
times: 500
|
concurrency:
|
||||||
scenarios:
|
- 8
|
||||||
- name: nova-boot-persist-with-network-500-01
|
times: 5000
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.0.0/23
|
all_metrics: true
|
||||||
cleanup_delay: 1800
|
aggregation: mean
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
- name: BrowbeatGnocchi01
|
- name: gnocchi-create-delete-metric-Baseline
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
times: 1000
|
||||||
- 8
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
||||||
times: 5000
|
- name: gnocchi-create-delete-resource-Baseline
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-01
|
times: 1000
|
||||||
enabled: true
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork02
|
# Boot 500 instances
|
||||||
enabled: true
|
- name: BrowbeatNovaPersistWithNetwork
|
||||||
concurrency:
|
enabled: true
|
||||||
- 20
|
type: rally
|
||||||
times: 500
|
concurrency:
|
||||||
scenarios:
|
- 20
|
||||||
- name: nova-boot-persist-with-network-500-02
|
times: 500
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: nova-boot-persist-with-network-500
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.2.0/23
|
image_name: cirros
|
||||||
cleanup_delay: 1800
|
flavor_name: m1.xtiny
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
network_start_cidr: 10.1.0.0/23
|
||||||
- name: BrowbeatGnocchi02
|
cleanup_delay: 1800
|
||||||
enabled: true
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-02
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
@ -7,14 +7,18 @@
|
|||||||
# how system resources and api responsiveness degrade over each new set of
|
# how system resources and api responsiveness degrade over each new set of
|
||||||
# instances booted.
|
# instances booted.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 10
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -24,23 +28,25 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 5
|
sleep_before: 5
|
||||||
sleep_after: 5
|
sleep_after: 5
|
||||||
plugins:
|
plugins:
|
||||||
@ -48,355 +54,55 @@ rally:
|
|||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
- gnocchi: rally/rally-plugins/gnocchi
|
- gnocchi: rally/rally-plugins/gnocchi
|
||||||
benchmarks:
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
# Baseline
|
workloads:
|
||||||
- name: BrowbeatGnocchiBaseline
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-Baseline
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork01
|
# Baseline Gnocchi API
|
||||||
enabled: true
|
- name: BrowbeatGnocchiResponsiveness
|
||||||
concurrency:
|
enabled: true
|
||||||
- 20
|
type: rally
|
||||||
times: 500
|
concurrency:
|
||||||
scenarios:
|
- 8
|
||||||
- name: nova-boot-persist-with-network-500-01
|
times: 5000
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: gnocchi-metric-get-measures-agg-mean-Baseline
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.0.0/23
|
all_metrics: true
|
||||||
cleanup_delay: 1800
|
aggregation: mean
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
||||||
- name: BrowbeatGnocchi01
|
- name: gnocchi-create-delete-metric-Baseline
|
||||||
enabled: true
|
enabled: true
|
||||||
concurrency:
|
times: 1000
|
||||||
- 8
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
||||||
times: 5000
|
- name: gnocchi-create-delete-resource-Baseline
|
||||||
scenarios:
|
enabled: true
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-01
|
times: 1000
|
||||||
enabled: true
|
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-01
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork02
|
# Boot 500 instances
|
||||||
enabled: true
|
- name: BrowbeatNovaPersistWithNetwork
|
||||||
concurrency:
|
enabled: true
|
||||||
- 20
|
type: rally
|
||||||
times: 500
|
concurrency:
|
||||||
scenarios:
|
- 20
|
||||||
- name: nova-boot-persist-with-network-500-02
|
times: 500
|
||||||
enabled: true
|
scenarios:
|
||||||
image_name: cirros
|
- name: nova-boot-persist-with-network-500
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
network_start_cidr: 10.1.2.0/23
|
image_name: cirros
|
||||||
cleanup_delay: 1800
|
flavor_name: m1.xtiny
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
network_start_cidr: 10.1.0.0/23
|
||||||
- name: BrowbeatGnocchi02
|
cleanup_delay: 1800
|
||||||
enabled: true
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-02
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-02
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-03
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.4.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi03
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-03
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-03
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-03
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-04
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.6.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi04
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-04
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-04
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-04
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-05
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.8.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi05
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-05
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-05
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-05
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-06
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.10.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi06
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-06
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-06
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-06
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-07
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.12.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi07
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-07
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-07
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-07
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-08
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.14.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi08
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-08
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-08
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-08
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-09
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.16.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi09
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-09
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-09
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-09
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
|
||||||
- name: BrowbeatNovaPersistWithNetwork10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 20
|
|
||||||
times: 500
|
|
||||||
scenarios:
|
|
||||||
- name: nova-boot-persist-with-network-500-10
|
|
||||||
enabled: true
|
|
||||||
image_name: cirros
|
|
||||||
flavor_name: m1.xtiny
|
|
||||||
network_start_cidr: 10.1.18.0/23
|
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
|
||||||
- name: BrowbeatGnocchi10
|
|
||||||
enabled: true
|
|
||||||
concurrency:
|
|
||||||
- 8
|
|
||||||
times: 5000
|
|
||||||
scenarios:
|
|
||||||
- name: gnocchi-metric-get-measures-agg-mean-10
|
|
||||||
enabled: true
|
|
||||||
all_metrics: true
|
|
||||||
aggregation: mean
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml
|
|
||||||
- name: gnocchi-create-delete-metric-10
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml
|
|
||||||
- name: gnocchi-create-delete-resource-10
|
|
||||||
enabled: true
|
|
||||||
times: 1000
|
|
||||||
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
|
|
||||||
|
@ -4,14 +4,18 @@
|
|||||||
# booted. The instances have a nic and a fip.
|
# booted. The instances have a nic and a fip.
|
||||||
# You must pre-populate (external_net_name and private_net_id)
|
# You must pre-populate (external_net_name and private_net_id)
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -21,114 +25,130 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
plugins:
|
plugins:
|
||||||
- browbeat: rally/rally-plugins/browbeat
|
- browbeat: rally/rally-plugins/browbeat
|
||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
benchmarks:
|
shaker:
|
||||||
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
server: 1.1.1.1
|
||||||
- name: BrowbeatNovaPersistWithNetworkFIP01
|
port: 5555
|
||||||
enabled: true
|
flavor: m1.small
|
||||||
concurrency:
|
join_timeout: 600
|
||||||
- 20
|
sleep_before: 0
|
||||||
times: 100
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: nova-boot-persist-with-network-fip-100-01
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
image_name: cirros
|
instackenv: "/home/stack/instackenv.json"
|
||||||
flavor_name: m1.xtiny
|
stackrc: "/home/stack/stackrc"
|
||||||
cleanup_delay: 1800
|
|
||||||
external_net_name:
|
workloads:
|
||||||
private_net_id:
|
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
- name: BrowbeatNovaPersistWithNetworkFIP01
|
||||||
- name: nova-boot-persist-with-network-fip-100-02
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
image_name: cirros
|
concurrency:
|
||||||
flavor_name: m1.xtiny
|
- 20
|
||||||
cleanup_delay: 1800
|
times: 100
|
||||||
external_net_name:
|
scenarios:
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-01
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-03
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-02
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-04
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-03
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-05
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-04
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-06
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-05
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-07
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-06
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-08
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-07
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-09
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-08
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-fip-100-10
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
cleanup_delay: 1800
|
||||||
flavor_name: m1.xtiny
|
external_net_name:
|
||||||
cleanup_delay: 1800
|
private_net_id:
|
||||||
external_net_name:
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
private_net_id:
|
- name: nova-boot-persist-with-network-fip-100-09
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
external_net_name:
|
||||||
|
private_net_id:
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
|
- name: nova-boot-persist-with-network-fip-100-10
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
external_net_name:
|
||||||
|
private_net_id:
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_fip.yml
|
||||||
|
@ -4,14 +4,18 @@
|
|||||||
# booted. The instances have a nic, volume and fip.
|
# booted. The instances have a nic, volume and fip.
|
||||||
# You must pre-populate (external_net_name and private_net_id)
|
# You must pre-populate (external_net_name and private_net_id)
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -21,124 +25,140 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
plugins:
|
plugins:
|
||||||
- browbeat: rally/rally-plugins/browbeat
|
- browbeat: rally/rally-plugins/browbeat
|
||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
benchmarks:
|
shaker:
|
||||||
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
server: 1.1.1.1
|
||||||
- name: BrowbeatNovaPersistWithNetworkVolumeFIP01
|
port: 5555
|
||||||
enabled: true
|
flavor: m1.small
|
||||||
concurrency:
|
join_timeout: 600
|
||||||
- 20
|
sleep_before: 0
|
||||||
times: 100
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-01
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
image_name: cirros
|
instackenv: "/home/stack/instackenv.json"
|
||||||
flavor_name: m1.xtiny
|
stackrc: "/home/stack/stackrc"
|
||||||
volume_size: 1
|
|
||||||
cleanup_delay: 1800
|
workloads:
|
||||||
external_net_name:
|
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
||||||
private_net_id:
|
- name: BrowbeatNovaPersistWithNetworkVolumeFIP01
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-02
|
type: rally
|
||||||
enabled: true
|
concurrency:
|
||||||
image_name: cirros
|
- 20
|
||||||
flavor_name: m1.xtiny
|
times: 100
|
||||||
volume_size: 1
|
scenarios:
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-01
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-03
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-02
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-04
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-03
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-05
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-04
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-06
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-05
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-07
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-06
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-08
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-07
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-09
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-08
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
- name: nova-boot-persist-with-network-volume-fip-100-10
|
volume_size: 1
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
external_net_name:
|
||||||
flavor_name: m1.xtiny
|
private_net_id:
|
||||||
volume_size: 1
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
cleanup_delay: 1800
|
- name: nova-boot-persist-with-network-volume-fip-100-09
|
||||||
external_net_name:
|
enabled: true
|
||||||
private_net_id:
|
image_name: cirros
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
flavor_name: m1.xtiny
|
||||||
|
volume_size: 1
|
||||||
|
cleanup_delay: 1800
|
||||||
|
external_net_name:
|
||||||
|
private_net_id:
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
|
- name: nova-boot-persist-with-network-volume-fip-100-10
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
volume_size: 1
|
||||||
|
cleanup_delay: 1800
|
||||||
|
external_net_name:
|
||||||
|
private_net_id:
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume_fip.yml
|
||||||
|
@ -3,14 +3,18 @@
|
|||||||
# with a concurrency of 20 instances. A total of 1000 instances are
|
# with a concurrency of 20 instances. A total of 1000 instances are
|
||||||
# booted. The instances have a nic and volume.
|
# booted. The instances have a nic and volume.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -20,114 +24,130 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
plugins:
|
plugins:
|
||||||
- browbeat: rally/rally-plugins/browbeat
|
- browbeat: rally/rally-plugins/browbeat
|
||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
benchmarks:
|
shaker:
|
||||||
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
server: 1.1.1.1
|
||||||
- name: BrowbeatNovaPersistWithNetworkVolume01
|
port: 5555
|
||||||
enabled: true
|
flavor: m1.small
|
||||||
concurrency:
|
join_timeout: 600
|
||||||
- 20
|
sleep_before: 0
|
||||||
times: 100
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: nova-boot-persist-with-network-volume-100-01
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
image_name: cirros
|
instackenv: "/home/stack/instackenv.json"
|
||||||
flavor_name: m1.xtiny
|
stackrc: "/home/stack/stackrc"
|
||||||
volume_size: 1
|
|
||||||
cleanup_delay: 1800
|
workloads:
|
||||||
network_start_cidr: 10.1.0.0/23
|
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
- name: BrowbeatNovaPersistWithNetworkVolume01
|
||||||
- name: nova-boot-persist-with-network-volume-100-02
|
enabled: true
|
||||||
enabled: true
|
type: rally
|
||||||
image_name: cirros
|
concurrency:
|
||||||
flavor_name: m1.xtiny
|
- 20
|
||||||
volume_size: 1
|
times: 100
|
||||||
cleanup_delay: 1800
|
scenarios:
|
||||||
network_start_cidr: 10.1.2.0/23
|
- name: nova-boot-persist-with-network-volume-100-01
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-03
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.0.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.4.0/23
|
- name: nova-boot-persist-with-network-volume-100-02
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-04
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.2.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.6.0/23
|
- name: nova-boot-persist-with-network-volume-100-03
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-05
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.4.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.8.0/23
|
- name: nova-boot-persist-with-network-volume-100-04
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-06
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.6.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.10.0/23
|
- name: nova-boot-persist-with-network-volume-100-05
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-07
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.8.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.12.0/23
|
- name: nova-boot-persist-with-network-volume-100-06
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-08
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.10.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.14.0/23
|
- name: nova-boot-persist-with-network-volume-100-07
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-09
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.12.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.16.0/23
|
- name: nova-boot-persist-with-network-volume-100-08
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
- name: nova-boot-persist-with-network-volume-100-10
|
image_name: cirros
|
||||||
enabled: true
|
flavor_name: m1.xtiny
|
||||||
image_name: cirros
|
volume_size: 1
|
||||||
flavor_name: m1.xtiny
|
cleanup_delay: 1800
|
||||||
volume_size: 1
|
network_start_cidr: 10.1.14.0/23
|
||||||
cleanup_delay: 1800
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
network_start_cidr: 10.1.18.0/23
|
- name: nova-boot-persist-with-network-volume-100-09
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
volume_size: 1
|
||||||
|
cleanup_delay: 1800
|
||||||
|
network_start_cidr: 10.1.16.0/23
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
|
- name: nova-boot-persist-with-network-volume-100-10
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
volume_size: 1
|
||||||
|
cleanup_delay: 1800
|
||||||
|
network_start_cidr: 10.1.18.0/23
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network_volume.yml
|
||||||
|
@ -5,14 +5,18 @@
|
|||||||
# additional telemetry load. View how system resources degrade over each
|
# additional telemetry load. View how system resources degrade over each
|
||||||
# new set of instances booted.
|
# new set of instances booted.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -22,104 +26,120 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
plugins:
|
plugins:
|
||||||
- browbeat: rally/rally-plugins/browbeat
|
- browbeat: rally/rally-plugins/browbeat
|
||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
- neutron: rally/rally-plugins/neutron
|
- neutron: rally/rally-plugins/neutron
|
||||||
benchmarks:
|
shaker:
|
||||||
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
server: 1.1.1.1
|
||||||
- name: BrowbeatNovaPersistWithNetwork01
|
port: 5555
|
||||||
enabled: true
|
flavor: m1.small
|
||||||
concurrency:
|
join_timeout: 600
|
||||||
- 20
|
sleep_before: 0
|
||||||
times: 100
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: nova-boot-persist-with-network-100-01
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
image_name: cirros
|
instackenv: "/home/stack/instackenv.json"
|
||||||
flavor_name: m1.xtiny
|
stackrc: "/home/stack/stackrc"
|
||||||
cleanup_delay: 1800
|
|
||||||
network_start_cidr: 10.1.0.0/23
|
workloads:
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
||||||
- name: nova-boot-persist-with-network-100-02
|
- name: BrowbeatNovaPersistWithNetwork01
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
type: rally
|
||||||
flavor_name: m1.xtiny
|
concurrency:
|
||||||
cleanup_delay: 1800
|
- 20
|
||||||
network_start_cidr: 10.1.2.0/23
|
times: 100
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
scenarios:
|
||||||
- name: nova-boot-persist-with-network-100-03
|
- name: nova-boot-persist-with-network-100-01
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.4.0/23
|
network_start_cidr: 10.1.0.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-04
|
- name: nova-boot-persist-with-network-100-02
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.6.0/23
|
network_start_cidr: 10.1.2.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-05
|
- name: nova-boot-persist-with-network-100-03
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.8.0/23
|
network_start_cidr: 10.1.4.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-06
|
- name: nova-boot-persist-with-network-100-04
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.10.0/23
|
network_start_cidr: 10.1.6.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-07
|
- name: nova-boot-persist-with-network-100-05
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.12.0/23
|
network_start_cidr: 10.1.8.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-08
|
- name: nova-boot-persist-with-network-100-06
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.14.0/23
|
network_start_cidr: 10.1.10.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-09
|
- name: nova-boot-persist-with-network-100-07
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.16.0/23
|
network_start_cidr: 10.1.12.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
- name: nova-boot-persist-with-network-100-10
|
- name: nova-boot-persist-with-network-100-08
|
||||||
enabled: true
|
enabled: true
|
||||||
image_name: cirros
|
image_name: cirros
|
||||||
flavor_name: m1.xtiny
|
flavor_name: m1.xtiny
|
||||||
cleanup_delay: 1800
|
cleanup_delay: 1800
|
||||||
network_start_cidr: 10.1.18.0/23
|
network_start_cidr: 10.1.14.0/23
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
|
- name: nova-boot-persist-with-network-100-09
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
network_start_cidr: 10.1.16.0/23
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
|
- name: nova-boot-persist-with-network-100-10
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
network_start_cidr: 10.1.18.0/23
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
|
||||||
|
@ -4,14 +4,18 @@
|
|||||||
# booted. View how system resources degrade over each new set of
|
# booted. View how system resources degrade over each new set of
|
||||||
# instances booted.
|
# instances booted.
|
||||||
browbeat:
|
browbeat:
|
||||||
results: results/
|
|
||||||
rerun: 1
|
|
||||||
cloud_name: openstack
|
cloud_name: openstack
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: iteration
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
enabled: false
|
enabled: false
|
||||||
regather: false
|
|
||||||
host: 1.1.1.1
|
host: 1.1.1.1
|
||||||
port: 9200
|
port: 9200
|
||||||
|
regather: false
|
||||||
metadata_files:
|
metadata_files:
|
||||||
- name: hardware-metadata
|
- name: hardware-metadata
|
||||||
file: metadata/hardware-metadata.json
|
file: metadata/hardware-metadata.json
|
||||||
@ -21,93 +25,110 @@ elasticsearch:
|
|||||||
file: metadata/software-metadata.json
|
file: metadata/software-metadata.json
|
||||||
- name: version
|
- name: version
|
||||||
file: metadata/version.json
|
file: metadata/version.json
|
||||||
ansible:
|
|
||||||
ssh_config: ansible/ssh-config
|
|
||||||
hosts: ansible/hosts
|
|
||||||
adjust:
|
|
||||||
keystone_token: ansible/browbeat/adjustment-keystone-token.yml
|
|
||||||
neutron_l3: ansible/browbeat/adjustment-l3.yml
|
|
||||||
nova_db: ansible/browbeat/adjustment-db.yml
|
|
||||||
workers: ansible/browbeat/adjustment-workers.yml
|
|
||||||
metadata: ansible/gather/site.yml
|
|
||||||
grafana:
|
grafana:
|
||||||
enabled: false
|
enabled: true
|
||||||
grafana_ip: 1.1.1.1
|
host: example.grafana.com
|
||||||
grafana_port: 3000
|
port: 3000
|
||||||
dashboards:
|
dashboards:
|
||||||
- openstack-general-system-performance
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
rally:
|
rally:
|
||||||
enabled: true
|
|
||||||
sleep_before: 0
|
sleep_before: 0
|
||||||
sleep_after: 0
|
sleep_after: 0
|
||||||
plugins:
|
plugins:
|
||||||
- browbeat: rally/rally-plugins/browbeat
|
- browbeat: rally/rally-plugins/browbeat
|
||||||
- nova: rally/rally-plugins/nova
|
- nova: rally/rally-plugins/nova
|
||||||
benchmarks:
|
shaker:
|
||||||
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
server: 1.1.1.1
|
||||||
- name: BrowbeatNovaPersist01
|
port: 5555
|
||||||
enabled: true
|
flavor: m1.small
|
||||||
concurrency:
|
join_timeout: 600
|
||||||
- 20
|
sleep_before: 0
|
||||||
times: 100
|
sleep_after: 0
|
||||||
scenarios:
|
shaker_region: regionOne
|
||||||
- name: nova-boot-100-01
|
external_host: 2.2.2.2
|
||||||
enabled: true
|
yoda:
|
||||||
image_name: cirros
|
instackenv: "/home/stack/instackenv.json"
|
||||||
flavor_name: m1.xtiny
|
stackrc: "/home/stack/stackrc"
|
||||||
cleanup_delay: 1800
|
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
workloads:
|
||||||
- name: nova-boot-100-02
|
|
||||||
enabled: true
|
# Boots a total of 1000 instances, 100 at a time with 30minutes between booting storms
|
||||||
image_name: cirros
|
- name: BrowbeatNovaPersist01
|
||||||
flavor_name: m1.xtiny
|
enabled: true
|
||||||
cleanup_delay: 1800
|
type: rally
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
concurrency:
|
||||||
- name: nova-boot-100-03
|
- 20
|
||||||
enabled: true
|
times: 100
|
||||||
image_name: cirros
|
scenarios:
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-01
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-04
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-02
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-05
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-03
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-06
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-04
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-07
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-05
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-08
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-06
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-09
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-07
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
- name: nova-boot-100-10
|
flavor_name: m1.xtiny
|
||||||
enabled: true
|
cleanup_delay: 1800
|
||||||
image_name: cirros
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
flavor_name: m1.xtiny
|
- name: nova-boot-100-08
|
||||||
cleanup_delay: 1800
|
enabled: true
|
||||||
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
|
- name: nova-boot-100-09
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
|
- name: nova-boot-100-10
|
||||||
|
enabled: true
|
||||||
|
image_name: cirros
|
||||||
|
flavor_name: m1.xtiny
|
||||||
|
cleanup_delay: 1800
|
||||||
|
file: rally/rally-plugins/nova/nova_boot_persist.yml
|
||||||
|
@ -7,6 +7,7 @@ hacking<0.11,>=0.10.0
|
|||||||
ansible-lint
|
ansible-lint
|
||||||
pykwalify
|
pykwalify
|
||||||
coverage>=3.6
|
coverage>=3.6
|
||||||
|
pytest==3.2.1
|
||||||
python-subunit>=0.0.18
|
python-subunit>=0.0.18
|
||||||
sphinx>=1.3,!=1.6.1
|
sphinx>=1.3,!=1.6.1
|
||||||
oslosphinx>=2.5.0 # Apache-2.0
|
oslosphinx>=2.5.0 # Apache-2.0
|
||||||
|
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
89
tests/data/invalid_browbeat.yml
Normal file
89
tests/data/invalid_browbeat.yml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# Invalid due to invalid_flag key
|
||||||
|
browbeat:
|
||||||
|
cloud_name: browbeat-test
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: complete
|
||||||
|
invalid_flag: invalid
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
|
elasticsearch:
|
||||||
|
enabled: false
|
||||||
|
host: browbeat.test.com
|
||||||
|
port: 9200
|
||||||
|
regather: false
|
||||||
|
metadata_files:
|
||||||
|
- name: hardware-metadata
|
||||||
|
file: metadata/hardware-metadata.json
|
||||||
|
- name: environment-metadata
|
||||||
|
file: metadata/environment-metadata.json
|
||||||
|
- name: software-metadata
|
||||||
|
file: metadata/software-metadata.json
|
||||||
|
- name: version
|
||||||
|
file: metadata/version.json
|
||||||
|
grafana:
|
||||||
|
enabled: true
|
||||||
|
host: browbeat.test.com
|
||||||
|
port: 3000
|
||||||
|
dashboards:
|
||||||
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
|
rally:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
|
workloads:
|
||||||
|
- name: browbeat-test-perfkit-ping
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: ping
|
||||||
|
- name: browbeat-test-authenticate
|
||||||
|
enabled: false
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: browbeat-test-authentic-keystone
|
||||||
|
enabled: false
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
||||||
|
- name: browbeat-test-shaker-l2
|
||||||
|
enabled: false
|
||||||
|
type: shaker
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: browbeat-test-introspect-batch
|
||||||
|
enabled: false
|
||||||
|
type: yoda
|
||||||
|
yoda_type: introspection
|
||||||
|
method: individual
|
||||||
|
times: 3
|
||||||
|
timeout: 900
|
||||||
|
batch_size: 2
|
68
tests/data/invalid_browbeat_workload.yml
Normal file
68
tests/data/invalid_browbeat_workload.yml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Invalid due to workload invalid
|
||||||
|
browbeat:
|
||||||
|
cloud_name: browbeat-test
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
|
elasticsearch:
|
||||||
|
enabled: false
|
||||||
|
host: browbeat.test.com
|
||||||
|
port: 9200
|
||||||
|
regather: false
|
||||||
|
metadata_files:
|
||||||
|
- name: hardware-metadata
|
||||||
|
file: metadata/hardware-metadata.json
|
||||||
|
- name: environment-metadata
|
||||||
|
file: metadata/environment-metadata.json
|
||||||
|
- name: software-metadata
|
||||||
|
file: metadata/software-metadata.json
|
||||||
|
- name: version
|
||||||
|
file: metadata/version.json
|
||||||
|
grafana:
|
||||||
|
enabled: true
|
||||||
|
host: browbeat.test.com
|
||||||
|
port: 3000
|
||||||
|
dashboards:
|
||||||
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
|
rally:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
|
workloads:
|
||||||
|
# Missing name
|
||||||
|
- enabled: false
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: browbeat-test-authentic-keystone
|
||||||
|
enabled: false
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
88
tests/data/valid_browbeat.yml
Normal file
88
tests/data/valid_browbeat.yml
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# Valid Browbeat Config
|
||||||
|
browbeat:
|
||||||
|
cloud_name: browbeat-test
|
||||||
|
rerun: 1
|
||||||
|
rerun_type: complete
|
||||||
|
ansible:
|
||||||
|
hosts: ansible/hosts
|
||||||
|
metadata_playbook: ansible/gather/site.yml
|
||||||
|
ssh_config: ansible/ssh-config
|
||||||
|
elasticsearch:
|
||||||
|
enabled: false
|
||||||
|
host: browbeat.test.com
|
||||||
|
port: 9200
|
||||||
|
regather: false
|
||||||
|
metadata_files:
|
||||||
|
- name: hardware-metadata
|
||||||
|
file: metadata/hardware-metadata.json
|
||||||
|
- name: environment-metadata
|
||||||
|
file: metadata/environment-metadata.json
|
||||||
|
- name: software-metadata
|
||||||
|
file: metadata/software-metadata.json
|
||||||
|
- name: version
|
||||||
|
file: metadata/version.json
|
||||||
|
grafana:
|
||||||
|
enabled: true
|
||||||
|
host: browbeat.test.com
|
||||||
|
port: 3000
|
||||||
|
dashboards:
|
||||||
|
- openstack-general-system-performance
|
||||||
|
perfkit:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
default:
|
||||||
|
image: centos7
|
||||||
|
machine_type: m1.small
|
||||||
|
os_type: rhel
|
||||||
|
openstack_image_username: centos
|
||||||
|
openstack_floating_ip_pool: browbeat_public
|
||||||
|
openstack_network: browbeat_private
|
||||||
|
timing_measurements: runtimes
|
||||||
|
ignore_package_requirements: true
|
||||||
|
rally:
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker:
|
||||||
|
server: 1.1.1.1
|
||||||
|
port: 5555
|
||||||
|
flavor: m1.small
|
||||||
|
join_timeout: 600
|
||||||
|
sleep_before: 0
|
||||||
|
sleep_after: 0
|
||||||
|
shaker_region: regionOne
|
||||||
|
external_host: 2.2.2.2
|
||||||
|
yoda:
|
||||||
|
instackenv: "/home/stack/instackenv.json"
|
||||||
|
stackrc: "/home/stack/stackrc"
|
||||||
|
|
||||||
|
workloads:
|
||||||
|
- name: browbeat-test-perfkit-ping
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: ping
|
||||||
|
- name: browbeat-test-authenticate
|
||||||
|
enabled: false
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: browbeat-test-authentic-keystone
|
||||||
|
enabled: false
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
||||||
|
- name: browbeat-test-shaker-l2
|
||||||
|
enabled: false
|
||||||
|
type: shaker
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- name: browbeat-test-introspect-batch
|
||||||
|
enabled: false
|
||||||
|
type: yoda
|
||||||
|
yoda_type: introspection
|
||||||
|
method: individual
|
||||||
|
times: 3
|
||||||
|
timeout: 900
|
||||||
|
batch_size: 2
|
87
tests/data/workloads.yml
Normal file
87
tests/data/workloads.yml
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Valid and invalid workload schemas for testing per workload
|
||||||
|
perfkit:
|
||||||
|
- valid: true
|
||||||
|
data:
|
||||||
|
name: valid-test-perfkit-ping
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: ping
|
||||||
|
- valid: false
|
||||||
|
data:
|
||||||
|
opps_name: invalid-test-perfkit-ping
|
||||||
|
enabled: false
|
||||||
|
type: perfkit
|
||||||
|
benchmarks: ping
|
||||||
|
rally:
|
||||||
|
- valid: true
|
||||||
|
data:
|
||||||
|
name: valid-test-authenticate-01
|
||||||
|
enabled: true
|
||||||
|
type: rally
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: valid-test-authentic-keystone
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
||||||
|
- name: valid-test-authentic-neutron
|
||||||
|
enabled: false
|
||||||
|
file: rally/authenticate/validate_neutron-cc.yml
|
||||||
|
- valid: false
|
||||||
|
data:
|
||||||
|
name: invalid-test-authenticate-01
|
||||||
|
enabled: true
|
||||||
|
type: rally-incorrect
|
||||||
|
concurrency:
|
||||||
|
- 1
|
||||||
|
times: 1
|
||||||
|
scenarios:
|
||||||
|
- name: invalid-test-authentic-keystone
|
||||||
|
enabled: true
|
||||||
|
file: rally/authenticate/keystone-cc.yml
|
||||||
|
- name: invalid-test-authentic-neutron
|
||||||
|
enabled: false
|
||||||
|
file: rally/authenticate/validate_neutron-cc.yml
|
||||||
|
shaker:
|
||||||
|
- valid: true
|
||||||
|
data:
|
||||||
|
name: valid-test-shaker-l2
|
||||||
|
enabled: false
|
||||||
|
type: shaker
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
- valid: false
|
||||||
|
data:
|
||||||
|
name: invalid-test-shaker-l2
|
||||||
|
enabled: false
|
||||||
|
type: shaker
|
||||||
|
density: 1
|
||||||
|
compute: 1
|
||||||
|
progression: linear
|
||||||
|
time: 60
|
||||||
|
opps_file: lib/python2.7/site-packages/shaker/scenarios/openstack/dense_l2.yaml
|
||||||
|
yoda:
|
||||||
|
- valid: true
|
||||||
|
data:
|
||||||
|
name: valid-test-yoda-introspection
|
||||||
|
enabled: false
|
||||||
|
type: yoda
|
||||||
|
yoda_type: introspection
|
||||||
|
method: individual
|
||||||
|
times: 3
|
||||||
|
timeout: 900
|
||||||
|
batch_size: 2
|
||||||
|
- valid: false
|
||||||
|
data:
|
||||||
|
name: invalid-test-yoda-introspection
|
||||||
|
enabled: false
|
||||||
|
type: yoda
|
||||||
|
fake_yoda_type: introspection
|
||||||
|
method: individual
|
||||||
|
times: 3
|
||||||
|
timeout: 900
|
||||||
|
batch_size: 2
|
54
tests/test_config.py
Normal file
54
tests/test_config.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
from browbeat.config import load_browbeat_config
|
||||||
|
from browbeat.config import _validate_yaml
|
||||||
|
|
||||||
|
test_browbeat_configs = {
|
||||||
|
"tests/data/valid_browbeat.yml": True,
|
||||||
|
"tests/data/invalid_browbeat.yml": False,
|
||||||
|
"tests/data/invalid_browbeat_workload.yml": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("config", test_browbeat_configs.keys())
|
||||||
|
def test_load_browbeat_config(config):
|
||||||
|
"""Tests valid and invalid Browbeat configuration."""
|
||||||
|
if test_browbeat_configs[config]:
|
||||||
|
# Valid configuration (No exception)
|
||||||
|
loaded_config = load_browbeat_config(config)
|
||||||
|
assert loaded_config["browbeat"]["cloud_name"] == "browbeat-test"
|
||||||
|
else:
|
||||||
|
# Invalid configuration, test for exception
|
||||||
|
with pytest.raises(Exception) as exception_data:
|
||||||
|
load_browbeat_config(config)
|
||||||
|
assert "SchemaError" in str(exception_data)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("schema", ["perfkit", "rally", "shaker", "yoda"])
|
||||||
|
def test__validate_yaml(schema):
|
||||||
|
"""Tests valid and invalid Browbeat workload configurations."""
|
||||||
|
with open("tests/data/workloads.yml", "r") as config_file:
|
||||||
|
config_data = yaml.safe_load(config_file)
|
||||||
|
|
||||||
|
for workload_config in config_data[schema]:
|
||||||
|
if workload_config["valid"]:
|
||||||
|
# Valid configuration (No exception)
|
||||||
|
_validate_yaml(schema, workload_config["data"])
|
||||||
|
else:
|
||||||
|
# Invalid configuration, test for exception
|
||||||
|
with pytest.raises(Exception) as exception_data:
|
||||||
|
_validate_yaml(schema, workload_config["data"])
|
||||||
|
assert "SchemaError" in str(exception_data)
|
10
tox.ini
10
tox.ini
@ -17,10 +17,10 @@ commands =
|
|||||||
bash -c "cd ansible; find . -type f -regex '.*.y[a]?ml' -print0 | xargs -t -n1 -0 \
|
bash -c "cd ansible; find . -type f -regex '.*.y[a]?ml' -print0 | xargs -t -n1 -0 \
|
||||||
ansible-lint \
|
ansible-lint \
|
||||||
-x ANSIBLE0013,ANSIBLE0012,ANSIBLE0006,ANSIBLE0007,ANSIBLE0010,ANSIBLE0016"
|
-x ANSIBLE0013,ANSIBLE0012,ANSIBLE0006,ANSIBLE0007,ANSIBLE0010,ANSIBLE0016"
|
||||||
pykwalify -d browbeat-config.yaml -s browbeat/validate.yaml
|
pykwalify -d browbeat-config.yaml -s browbeat/schema/browbeat.yml
|
||||||
pykwalify -d browbeat-complete.yaml -s browbeat/validate.yaml
|
pykwalify -d browbeat-complete.yaml -s browbeat/schema/browbeat.yml
|
||||||
bash -c "set -e; for config in $(ls conf/); do \
|
bash -c "set -e; for config in $(ls conf/); do \
|
||||||
pykwalify -d conf/$config -s browbeat/validate.yaml; done"
|
echo conf/$config; pykwalify -d conf/$config -s browbeat/schema/browbeat.yml; done"
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
commands = flake8 {posargs}
|
commands = flake8 {posargs}
|
||||||
@ -28,6 +28,10 @@ commands = flake8 {posargs}
|
|||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
|
||||||
|
[testenv:py27]
|
||||||
|
basepython = python2.7
|
||||||
|
commands = pytest {posargs}
|
||||||
|
|
||||||
[testenv:cover]
|
[testenv:cover]
|
||||||
commands = python setup.py test --coverage --testr-args='{posargs}'
|
commands = python setup.py test --coverage --testr-args='{posargs}'
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user