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
# 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 View how system resources degrade over each
# booted. These instances are attached to a network which creates
# additional telemetry load. View how system resources degrade over each
# new set of instances booted.
browbeat:
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.plugins.openstack.context.network import networks
from rally.task import context
from rally import consts
import time
LOG = logging.getLogger(__name__)
@ -27,10 +29,40 @@ class BrowbeatPersistNetwork(networks.Network):
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`"))
def setup(self):
super(BrowbeatPersistNetwork, self).setup()
@logging.log_task_wrapper(LOG.info, _("Exit context: `browbeat_persist_network`"))
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_openstack(users=True)
@scenario.configure(context={},
name="BrowbeatPlugin.nova_boot_persist")
name="BrowbeatNova.nova_boot_persist")
class NovaBootPersist(nova_utils.NovaScenario):
def run(self, image, flavor, **kwargs):
@ -36,7 +36,7 @@ class NovaBootPersist(nova_utils.NovaScenario):
@validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True)
@scenario.configure(context={},
name="BrowbeatPlugin.nova_boot_persist_with_network")
name="BrowbeatNova.nova_boot_persist_with_network")
class NovaBootPersistWithNetwork(nova_utils.NovaScenario):
def run(self, image, flavor, **kwargs):

View File

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

View File

@ -4,8 +4,9 @@
{% set sla_max_failure = sla_max_failure or 0 %}
{% set sla_max_seconds = sla_max_seconds or 60 %}
{% 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:
flavor:
@ -21,6 +22,7 @@ BrowbeatPlugin.nova_boot_persist_with_network:
networks_per_tenant: 1
subnets_per_network: 1
start_cidr: {{network_start_cidr}}
cleanup_delay: {{cleanup_delay}}
users:
tenants: 1
users_per_tenant: 8