Gnocchi Benchmarks via Rally Plugins

Benchmarks
+ archive-policy
  + list
  + create
  + create & delete
+ archive-policy-rule
  + list
  + create
  + create & delete
+ capabilities
  + list
+ metric
  + aggregation
  + get measures
  + list
  + create
  + create & delete
+ resource
  + list
  + create
  + create & delete
+ resource-type
  + list
  + create
  + create & delete
+ status
  + get

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

Change-Id: I0b658cd4a749dc37c9b714d1caf37cab20a20b2b
This commit is contained in:
Alex Krzos 2016-07-14 08:35:44 -04:00 committed by akrzos
parent e89796ad1c
commit 645504a7cf
30 changed files with 2215 additions and 7 deletions

146
conf/gnocchi-minimal.yaml Normal file
View File

@ -0,0 +1,146 @@
# 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.
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
- name: version
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
grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml
metadata: ansible/gather/site.yml
connmon:
enabled: false
sudo: true
grafana:
enabled: true
grafana_ip: 1.1.1.1
grafana_port: 3000
dashboards:
- openstack-general-system-performance
snapshot:
enabled: false
snapshot_compute: false
rally:
enabled: true
sleep_before: 0
sleep_after: 0
venv: /home/stack/rally-venv/bin/activate
plugins:
- gnocchi: rally/rally-plugins/gnocchi
benchmarks:
- name: Gnocchi
enabled: true
concurrency:
- 5
times: 10
scenarios:
- 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-archive-policy-rule-list
enabled: true
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
- name: gnocchi-capabilities-list
enabled: true
file: rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml
# Aggregation has several potential scenarios due to parameterization
- name: gnocchi-metric-aggregation-single-page
enabled: true
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
enabled: true
file: rally/rally-plugins/gnocchi/gnocchi-resource-list.yml
- name: gnocchi-create-resource
enabled: true
file: rally/rally-plugins/gnocchi/gnocchi-create-resource.yml
- name: gnocchi-create-delete-resource
enabled: true
file: rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml
- name: gnocchi-resource-type-list
enabled: true
file: rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml
- name: gnocchi-create-resource-type
enabled: true
file: rally/rally-plugins/gnocchi/gnocchi-create-resource-type.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

View File

@ -0,0 +1,409 @@
# Stress test designed for telemetry services (ceilometer, gnocchi) by
# booting persisting xtiny cirros instances. It boots 1000 each iteration
# with a concurrency of 40 instances. A total of 10000 instances are
# booted. These instances are attached to a network which creates
# additional telemetry load. In between Boot storms, Gnocchi responsiveness
# benchmarks are run to verify responsiveness at scale. Afterwards, view
# how system resources and api responsiveness degrade over each new set of
# instances booted.
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
- name: version
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
grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml
metadata: ansible/gather/site.yml
connmon:
enabled: false
sudo: true
grafana:
enabled: false
grafana_ip: 1.1.1.1
grafana_port: 3000
dashboards:
- openstack-general-system-performance
snapshot:
enabled: false
snapshot_compute: false
rally:
enabled: true
sleep_before: 5
sleep_after: 5
venv: /home/stack/rally-venv/bin/activate
plugins:
- nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron
- gnocchi: rally/rally-plugins/gnocchi
benchmarks:
# Baseline
- 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
enabled: true
concurrency:
- 40
times: 1000
scenarios:
- name: nova-boot-persist-with-network-1000-01
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.0.0/22
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi01
enabled: true
concurrency:
- 8
times: 5000
scenarios:
- name: gnocchi-metric-get-measures-agg-mean-01
enabled: true
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
enabled: true
concurrency:
- 40
times: 1000
scenarios:
- name: nova-boot-persist-with-network-1000-02
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.4.0/22
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi02
enabled: true
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

View File

@ -0,0 +1,409 @@
# Stress test designed for telemetry services (ceilometer, gnocchi) by
# booting persisting xtiny cirros instances. It boots 100 each iteration
# with a concurrency of 20 instances. A total of 1000 instances are
# booted. These instances are attached to a network which creates
# additional telemetry load. In between Boot storms, Gnocchi responsiveness
# benchmarks are run to verify responsiveness at scale. Afterwards, view
# how system resources and api responsiveness degrade over each new set of
# instances booted.
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
- name: version
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
grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml
metadata: ansible/gather/site.yml
connmon:
enabled: false
sudo: true
grafana:
enabled: false
grafana_ip: 1.1.1.1
grafana_port: 3000
dashboards:
- openstack-general-system-performance
snapshot:
enabled: false
snapshot_compute: false
rally:
enabled: true
sleep_before: 5
sleep_after: 5
venv: /home/stack/rally-venv/bin/activate
plugins:
- nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron
- gnocchi: rally/rally-plugins/gnocchi
benchmarks:
# Baseline
- 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
enabled: true
concurrency:
- 20
times: 100
scenarios:
- name: nova-boot-persist-with-network-100-01
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.0.0/23
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi01
enabled: true
concurrency:
- 8
times: 5000
scenarios:
- name: gnocchi-metric-get-measures-agg-mean-01
enabled: true
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
enabled: true
concurrency:
- 20
times: 100
scenarios:
- name: nova-boot-persist-with-network-100-02
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.2.0/23
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi02
enabled: true
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

View File

@ -0,0 +1,145 @@
# Stress test designed for telemetry services (ceilometer, gnocchi) by
# booting persisting xtiny cirros instances. It boots 500 each iteration
# with a concurrency of 20 instances. A total of 1000 instances are
# booted. These instances are attached to a network which creates
# additional telemetry load. In between Boot storms, Gnocchi responsiveness
# benchmarks are run to verify responsiveness at scale. Afterwards, view
# how system resources and api responsiveness degrade over each new set of
# instances booted.
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
- name: version
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
grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml
metadata: ansible/gather/site.yml
connmon:
enabled: false
sudo: true
grafana:
enabled: false
grafana_ip: 1.1.1.1
grafana_port: 3000
dashboards:
- openstack-general-system-performance
snapshot:
enabled: false
snapshot_compute: false
rally:
enabled: true
sleep_before: 5
sleep_after: 5
venv: /home/stack/rally-venv/bin/activate
plugins:
- nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron
- gnocchi: rally/rally-plugins/gnocchi
benchmarks:
# Baseline
- 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
enabled: true
concurrency:
- 20
times: 500
scenarios:
- name: nova-boot-persist-with-network-500-01
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.0.0/23
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi01
enabled: true
concurrency:
- 8
times: 5000
scenarios:
- name: gnocchi-metric-get-measures-agg-mean-01
enabled: true
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
enabled: true
concurrency:
- 20
times: 500
scenarios:
- name: nova-boot-persist-with-network-500-02
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.2.0/23
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi02
enabled: true
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

View File

@ -0,0 +1,409 @@
# Stress test designed for telemetry services (ceilometer, gnocchi) by
# booting persisting xtiny cirros instances. It boots 500 each iteration
# with a concurrency of 20 instances. A total of 5000 instances are
# booted. These instances are attached to a network which creates
# additional telemetry load. In between Boot storms, Gnocchi responsiveness
# benchmarks are run to verify responsiveness at scale. Afterwards, view
# how system resources and api responsiveness degrade over each new set of
# instances booted.
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
- name: version
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
grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml
metadata: ansible/gather/site.yml
connmon:
enabled: false
sudo: true
grafana:
enabled: false
grafana_ip: 1.1.1.1
grafana_port: 3000
dashboards:
- openstack-general-system-performance
snapshot:
enabled: false
snapshot_compute: false
rally:
enabled: true
sleep_before: 5
sleep_after: 5
venv: /home/stack/rally-venv/bin/activate
plugins:
- nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron
- gnocchi: rally/rally-plugins/gnocchi
benchmarks:
# Baseline
- 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
enabled: true
concurrency:
- 20
times: 500
scenarios:
- name: nova-boot-persist-with-network-500-01
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.0.0/23
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi01
enabled: true
concurrency:
- 8
times: 5000
scenarios:
- name: gnocchi-metric-get-measures-agg-mean-01
enabled: true
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
enabled: true
concurrency:
- 20
times: 500
scenarios:
- name: nova-boot-persist-with-network-500-02
enabled: true
image_name: cirros
flavor_name: m1.xtiny
network_start_cidr: 10.1.2.0/23
cleanup_delay: 1800
file: rally/rally-plugins/nova/nova_boot_persist_with_network.yml
- name: BrowbeatGnocchi02
enabled: true
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

View File

@ -1,8 +1,8 @@
# Stress test designed for telemetry services (ceilometer, gnocchi) by # Stress test designed for telemetry services (ceilometer, gnocchi) by
# booting persisting xtiny cirros instances. It boots 100 each iteration # booting persisting xtiny cirros instances. It boots 100 each iteration
# 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. These instances are attached to a network which creates # booted. These instances are attached to a network which creates
# 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/ results : results/

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.archive_policy_list:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.archive_policy_rule_list:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.capabilities_list:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.create_archive_policy_rule:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.create_archive_policy:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.create_delete_archive_policy_rule:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.create_delete_archive_policy:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,23 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set metric_name = metric_name or '' %}
{% set archive_policy_name = archive_policy_name or '' %}
{% set unit = unit or '' %}
---
BrowbeatGnocchi.create_delete_metric:
-
args:
metric_name: {{metric_name}}
archive_policy_name: {{archive_policy_name}}
unit: {{unit}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.create_delete_resource_type:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,19 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set resource_type = resource_type or 'generic' %}
---
BrowbeatGnocchi.create_delete_resource:
-
args:
resource_type: {{resource_type}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,23 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set metric_name = metric_name or '' %}
{% set archive_policy_name = archive_policy_name or '' %}
{% set unit = unit or '' %}
---
BrowbeatGnocchi.create_metric:
-
args:
metric_name: {{metric_name}}
archive_policy_name: {{archive_policy_name}}
unit: {{unit}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.create_resource_type:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,19 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set resource_type = resource_type or 'generic' %}
---
BrowbeatGnocchi.create_resource:
-
args:
resource_type: {{resource_type}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,24 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set all_metrics = all_metrics or false %}
{% set aggregation = aggregation or 'mean' %}
{% set refresh = refresh or false %}
---
BrowbeatGnocchi.metric_aggregation:
-
args:
aggregation: {{aggregation}}
refresh: {{refresh}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context:
browbeat_gnocchi_metric_list:
all: {{all_metrics}}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,24 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set all_metrics = all_metrics or false %}
{% set aggregation = aggregation or 'mean' %}
{% set refresh = refresh or false %}
---
BrowbeatGnocchi.metric_get_measures:
-
args:
aggregation: {{aggregation}}
refresh: {{refresh}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context:
browbeat_gnocchi_metric_list:
all: {{all_metrics}}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.metric_list:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.resource_list:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,17 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
---
BrowbeatGnocchi.resource_type_list:
-
args: {}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,19 @@
{% set sla_max_avg_duration = sla_max_avg_duration or 60 %}
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% set detailed = detailed or False %}
---
BrowbeatGnocchi.status_get:
-
args:
detailed: {{detailed}}
runner:
concurrency: {{concurrency}}
times: {{times}}
type: "constant"
context: {}
sla:
max_avg_duration: {{sla_max_avg_duration}}
max_seconds_per_iteration: {{sla_max_seconds}}
failure_rate:
max: {{sla_max_failure}}

View File

@ -0,0 +1,301 @@
# 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.
from rally.common.i18n import _
from rally.common import logging
from rally.plugins.openstack import scenario
from rally.task import atomic
from rally.task import context
from rally import consts
from rally import osclients
import uuid
LOG = logging.getLogger(__name__)
class BrowbeatGnocchi(scenario.OpenStackScenario):
@scenario.configure(name='BrowbeatGnocchi.archive_policy_list')
def archive_policy_list(self):
"""List archive policies from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._archive_policy_list(gnocchi_client)
@scenario.configure(name='BrowbeatGnocchi.archive_policy_rule_list')
def archive_policy_rule_list(self):
"""List archive policy rules from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._archive_policy_rule_list(gnocchi_client)
@scenario.configure(name='BrowbeatGnocchi.capabilities_list')
def capabilities_list(self):
"""List capabilities from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._capabilities_list(gnocchi_client)
@scenario.configure(name='BrowbeatGnocchi.create_archive_policy')
def create_archive_policy(self):
"""Create archive policy from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
name = self.generate_random_name()
definition = [{'granularity': '0:00:01', 'timespan': '1:00:00'}]
aggregation_methods = ['std', 'count', '95pct', 'min', 'max', 'sum', 'median', 'mean']
self._create_archive_policy(gnocchi_client, name, definition, aggregation_methods)
@scenario.configure(name='BrowbeatGnocchi.create_delete_archive_policy')
def create_delete_archive_policy(self):
"""Create archive policy from Gnocchi client and then delete it."""
gnocchi_client = self.admin_clients("gnocchi")
name = self.generate_random_name()
definition = [{'granularity': '0:00:01', 'timespan': '1:00:00'}]
aggregation_methods = ['std', 'count', '95pct', 'min', 'max', 'sum', 'median', 'mean']
self._create_archive_policy(gnocchi_client, name, definition, aggregation_methods)
self._delete_archive_policy(gnocchi_client, name)
@scenario.configure(name='BrowbeatGnocchi.create_archive_policy_rule')
def create_archive_policy_rule(self):
"""Create archive policy rule from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
name = self.generate_random_name()
metric_pattern = 'cpu_*'
archive_policy_name = 'low'
self._create_archive_policy_rule(gnocchi_client, name, metric_pattern, archive_policy_name)
@scenario.configure(name='BrowbeatGnocchi.create_delete_archive_policy_rule')
def create_delete_archive_policy_rule(self):
"""Create archive policy rule from Gnocchi client and then delete it."""
gnocchi_client = self.admin_clients("gnocchi")
name = self.generate_random_name()
metric_pattern = 'cpu_*'
archive_policy_name = 'low'
self._create_archive_policy_rule(gnocchi_client, name, metric_pattern, archive_policy_name)
self._delete_archive_policy_rule(gnocchi_client, name)
@scenario.configure(name='BrowbeatGnocchi.create_metric')
def create_metric(self, metric_name=None, archive_policy_name=None, unit=None,
resource_id=None):
"""Create metric from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._create_metric(gnocchi_client, metric_name, archive_policy_name, unit, resource_id)
@scenario.configure(name='BrowbeatGnocchi.create_delete_metric')
def create_delete_metric(self, metric_name=None, archive_policy_name=None, unit=None,
resource_id=None):
"""Create metric from Gnocchi client and then delete it."""
gnocchi_client = self.admin_clients("gnocchi")
metric = self._create_metric(gnocchi_client, metric_name, archive_policy_name, unit,
resource_id)
self._delete_metric(gnocchi_client, metric['id'])
@scenario.configure(name='BrowbeatGnocchi.create_resource')
def create_resource(self, resource_type):
"""Create resource from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._create_resource(gnocchi_client, resource_type)
@scenario.configure(name='BrowbeatGnocchi.create_delete_resource')
def create_delete_resource(self, resource_type):
"""Create resource from Gnocchi client and then delete it."""
gnocchi_client = self.admin_clients("gnocchi")
resource = self._create_resource(gnocchi_client, resource_type)
self._delete_resource(gnocchi_client, resource['id'])
@scenario.configure(name='BrowbeatGnocchi.create_resource_type')
def create_resource_type(self):
"""Create resource type from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._create_resource_type(gnocchi_client, self.generate_random_name())
@scenario.configure(name='BrowbeatGnocchi.create_delete_resource_type')
def create_delete_resource_type(self):
"""Create resource type from Gnocchi client and then delete it."""
gnocchi_client = self.admin_clients("gnocchi")
resource_type = self._create_resource_type(gnocchi_client, self.generate_random_name())
self._delete_resource_type(gnocchi_client, resource_type['name'])
@scenario.configure(name='BrowbeatGnocchi.metric_aggregation')
def metric_aggregation(self, aggregation=None, refresh=False):
"""Get aggregation of metrics from Gnocchi client. The list of metrics to aggregate from
is determined through a context before the scenario starts.
"""
gnocchi_client = self.admin_clients("gnocchi")
metric_index = self.context['iteration'] % len(self.context['metric_ids'])
self._metric_aggregation(gnocchi_client, [self.context['metric_ids'][metric_index]],
aggregation, refresh)
@scenario.configure(name='BrowbeatGnocchi.metric_get_measures')
def metric_get_measures(self, aggregation=None, refresh=False):
"""Get measures from a metric from Gnocchi client. The list of metrics to get measures
from is determined through a context before the scenario starts.
"""
gnocchi_client = self.admin_clients("gnocchi")
metric_index = self.context['iteration'] % len(self.context['metric_ids'])
self._metric_get_measures(gnocchi_client, self.context['metric_ids'][metric_index],
aggregation, refresh)
@scenario.configure(name='BrowbeatGnocchi.metric_list')
def metric_list(self):
"""List metrics from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._metric_list(gnocchi_client)
@scenario.configure(name='BrowbeatGnocchi.resource_list')
def resource_list(self):
"""List resources from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._resource_list(gnocchi_client)
@scenario.configure(name='BrowbeatGnocchi.resource_type_list')
def resource_type_list(self):
"""List resource types from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._resource_type_list(gnocchi_client)
@scenario.configure(name='BrowbeatGnocchi.status_get')
def status_get(self, detailed):
"""Get status of Gnocchi from Gnocchi client."""
gnocchi_client = self.admin_clients("gnocchi")
self._status_get(gnocchi_client, detailed)
@atomic.action_timer("gnocchi.archive_policy_list")
def _archive_policy_list(self, gnocchi_client):
return gnocchi_client.archive_policy.list()
@atomic.action_timer("gnocchi.archive_policy_rule_list")
def _archive_policy_rule_list(self, gnocchi_client):
return gnocchi_client.archive_policy_rule.list()
@atomic.action_timer("gnocchi.capabilities_list")
def _capabilities_list(self, gnocchi_client):
return gnocchi_client.capabilities.list()
@atomic.action_timer("gnocchi.archive_policy_create")
def _create_archive_policy(self, gnocchi_client, name, definition, aggregation_methods):
archive_policy = {}
archive_policy['name'] = name
archive_policy['definition'] = definition
archive_policy['aggregation_methods'] = aggregation_methods
return gnocchi_client.archive_policy.create(archive_policy)
@atomic.action_timer("gnocchi.archive_policy_rule_create")
def _create_archive_policy_rule(self, gnocchi_client, name, metric_pattern,
archive_policy_name):
archive_policy_rule = {}
archive_policy_rule['name'] = name
archive_policy_rule['metric_pattern'] = metric_pattern
archive_policy_rule['archive_policy_name'] = archive_policy_name
return gnocchi_client.archive_policy_rule.create(archive_policy_rule)
@atomic.action_timer("gnocchi.metric_create")
def _create_metric(self, gnocchi_client, name=None, archive_policy_name=None, unit=None,
resource_id=None):
metric = {}
if name:
metric['name'] = name
if archive_policy_name:
metric['archive_policy_name'] = archive_policy_name
if unit:
metric['unit'] = unit
if resource_id:
metric['resource_id'] = resource_id
return gnocchi_client.metric.create(metric)
@atomic.action_timer("gnocchi.resource_create")
def _create_resource(self, gnocchi_client, resource_type='generic'):
resource = {}
resource['id'] = str(uuid.uuid4())
return gnocchi_client.resource.create(resource_type, resource)
@atomic.action_timer("gnocchi.resource_type_create")
def _create_resource_type(self, gnocchi_client, name):
resource_type = {}
resource_type['name'] = name
return gnocchi_client.resource_type.create(resource_type)
@atomic.action_timer("gnocchi.archive_policy_delete")
def _delete_archive_policy(self, gnocchi_client, archive_policy_name):
return gnocchi_client.archive_policy.delete(archive_policy_name)
@atomic.action_timer("gnocchi.archive_policy_rule_delete")
def _delete_archive_policy_rule(self, gnocchi_client, archive_policy_rule_name):
return gnocchi_client.archive_policy_rule.delete(archive_policy_rule_name)
@atomic.action_timer("gnocchi.metric_delete")
def _delete_metric(self, gnocchi_client, metric_id):
return gnocchi_client.metric.delete(metric_id)
@atomic.action_timer("gnocchi.resource_delete")
def _delete_resource(self, gnocchi_client, resource_id):
return gnocchi_client.resource.delete(resource_id)
@atomic.action_timer("gnocchi._delete_resource_type")
def _delete_resource_type(self, gnocchi_client, resource_name):
return gnocchi_client.resource_type.delete(resource_name)
@atomic.action_timer("gnocchi._metric_aggregation")
def _metric_aggregation(self, gnocchi_client, metric_ids, aggregation, refresh):
return gnocchi_client.metric.aggregation(metrics=metric_ids, aggregation=aggregation,
refresh=refresh)
@atomic.action_timer("gnocchi.metric_get_measures")
def _metric_get_measures(self, gnocchi_client, metric_id, aggregation, refresh):
return gnocchi_client.metric.get_measures(metric=metric_id, aggregation=aggregation,
refresh=refresh)
@atomic.action_timer("gnocchi.metric_list")
def _metric_list(self, gnocchi_client):
return gnocchi_client.metric.list()
@atomic.action_timer("gnocchi.resource_list")
def _resource_list(self, gnocchi_client):
return gnocchi_client.resource.list()
@atomic.action_timer("gnocchi.resource_type_list")
def _resource_type_list(self, gnocchi_client):
return gnocchi_client.resource_type.list()
@atomic.action_timer("gnocchi.status_get")
def _status_get(self, gnocchi_client, detailed=False):
return gnocchi_client.status.get(detailed)
@context.configure(name="browbeat_gnocchi_metric_list", order=350)
class BrowbeatGnocchiMetricList(context.Context):
"""Grabs list of metric ids from Gnocchi for use with getting aggregates/measures."""
CONFIG_SCHEMA = {
"type": "object",
"$schema": consts.JSON_SCHEMA,
"additionalProperties": False,
"properties": {
"all": {
"type": "boolean",
}
}
}
@logging.log_task_wrapper(LOG.info, _("Enter context: `browbeat_gnocchi_metric_list`"))
def setup(self):
gnocchi_client = osclients.Clients(self.context["admin"]["credential"]).gnocchi()
if self.config.get('all'):
metric_list = gnocchi_client.metric.list()
self.context['metric_ids'] = [x['id'] for x in metric_list]
while len(metric_list) >= 1000:
metric_list = gnocchi_client.metric.list(marker=metric_list[-1]['id'])
self.context['metric_ids'].extend([x['id'] for x in metric_list])
else:
self.context['metric_ids'] = [x['id'] for x in gnocchi_client.metric.list()]
LOG.debug('Total metric_ids: {}'.format(len(self.context['metric_ids'])))
@logging.log_task_wrapper(LOG.info, _("Exit context: `browbeat_gnocchi_metric_list`"))
def cleanup(self):
pass

View File

@ -16,6 +16,8 @@ from rally.common.i18n import _
from rally.common import logging from rally.common import logging
from rally.plugins.openstack.context.network import networks from rally.plugins.openstack.context.network import networks
from rally.task import context from rally.task import context
from rally import consts
import time
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -27,10 +29,40 @@ class BrowbeatPersistNetwork(networks.Network):
at the conclusion to allow resources to persist. at the conclusion to allow resources to persist.
""" """
CONFIG_SCHEMA = {
"type": "object",
"$schema": consts.JSON_SCHEMA,
"properties": {
"start_cidr": {
"type": "string"
},
"networks_per_tenant": {
"type": "integer",
"minimum": 1
},
"subnets_per_network": {
"type": "integer",
"minimum": 1
},
"network_create_args": {
"type": "object",
"additionalProperties": True
},
"dns_nameservers": {
"type": "array",
"items": {"type": "string"},
"uniqueItems": True
}
},
"additionalProperties": True
}
@logging.log_task_wrapper(LOG.info, _("Enter context: `browbeat_persist_network`")) @logging.log_task_wrapper(LOG.info, _("Enter context: `browbeat_persist_network`"))
def setup(self): def setup(self):
super(BrowbeatPersistNetwork, self).setup() super(BrowbeatPersistNetwork, self).setup()
@logging.log_task_wrapper(LOG.info, _("Exit context: `browbeat_persist_network`")) @logging.log_task_wrapper(LOG.info, _("Exit context: `browbeat_persist_network`"))
def cleanup(self): def cleanup(self):
pass if self.config.get('cleanup_delay'):
LOG.debug('Cleanup Delaying: {}'.format(self.config.get('cleanup_delay')))
time.sleep(self.config.get('cleanup_delay'))

View File

@ -22,7 +22,7 @@ from rally.task import validation
@validation.required_services(consts.Service.NOVA) @validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True) @validation.required_openstack(users=True)
@scenario.configure(context={}, @scenario.configure(context={},
name="BrowbeatPlugin.nova_boot_persist") name="BrowbeatNova.nova_boot_persist")
class NovaBootPersist(nova_utils.NovaScenario): class NovaBootPersist(nova_utils.NovaScenario):
def run(self, image, flavor, **kwargs): def run(self, image, flavor, **kwargs):
@ -36,7 +36,7 @@ class NovaBootPersist(nova_utils.NovaScenario):
@validation.required_services(consts.Service.NOVA) @validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True) @validation.required_openstack(users=True)
@scenario.configure(context={}, @scenario.configure(context={},
name="BrowbeatPlugin.nova_boot_persist_with_network") name="BrowbeatNova.nova_boot_persist_with_network")
class NovaBootPersistWithNetwork(nova_utils.NovaScenario): class NovaBootPersistWithNetwork(nova_utils.NovaScenario):
def run(self, image, flavor, **kwargs): def run(self, image, flavor, **kwargs):

View File

@ -4,7 +4,7 @@
{% set sla_max_failure = sla_max_failure or 0 %} {% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %} {% set sla_max_seconds = sla_max_seconds or 60 %}
--- ---
BrowbeatPlugin.nova_boot_persist: BrowbeatNova.nova_boot_persist:
- -
args: args:
flavor: flavor:

View File

@ -4,8 +4,9 @@
{% set sla_max_failure = sla_max_failure or 0 %} {% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %} {% set sla_max_seconds = sla_max_seconds or 60 %}
{% set network_start_cidr = network_start_cidr or '10.1.0.0/23' %} {% set network_start_cidr = network_start_cidr or '10.1.0.0/23' %}
{% set sla_max_seconds = cleanup_delay or 0 %}
--- ---
BrowbeatPlugin.nova_boot_persist_with_network: BrowbeatNova.nova_boot_persist_with_network:
- -
args: args:
flavor: flavor:
@ -21,6 +22,7 @@ BrowbeatPlugin.nova_boot_persist_with_network:
networks_per_tenant: 1 networks_per_tenant: 1
subnets_per_network: 1 subnets_per_network: 1
start_cidr: {{network_start_cidr}} start_cidr: {{network_start_cidr}}
cleanup_delay: {{cleanup_delay}}
users: users:
tenants: 1 tenants: 1
users_per_tenant: 8 users_per_tenant: 8