From 645504a7cf8f12eeb1c25543efaf117b944e3f37 Mon Sep 17 00:00:00 2001 From: Alex Krzos Date: Thu, 14 Jul 2016 08:35:44 -0400 Subject: [PATCH] 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 --- conf/gnocchi-minimal.yaml | 146 +++++++ ...nova-neutron-gnocchi-10k-1000-per-30m.yaml | 409 ++++++++++++++++++ ...y-nova-neutron-gnocchi-1k-100-per-30m.yaml | 409 ++++++++++++++++++ ...y-nova-neutron-gnocchi-1k-500-per-30m.yaml | 145 +++++++ ...y-nova-neutron-gnocchi-5k-500-per-30m.yaml | 409 ++++++++++++++++++ ...y-nova-persist-instances-with-network.yaml | 4 +- .../gnocchi/gnocchi-archive-policy-list.yml | 17 + .../gnocchi-archive-policy-rule-list.yml | 17 + .../gnocchi/gnocchi-capabilities-list.yml | 17 + .../gnocchi-create-archive-policy-rule.yml | 17 + .../gnocchi/gnocchi-create-archive-policy.yml | 17 + ...cchi-create-delete-archive-policy-rule.yml | 17 + .../gnocchi-create-delete-archive-policy.yml | 17 + .../gnocchi/gnocchi-create-delete-metric.yml | 23 + .../gnocchi-create-delete-resource-type.yml | 17 + .../gnocchi-create-delete-resource.yml | 19 + .../gnocchi/gnocchi-create-metric.yml | 23 + .../gnocchi/gnocchi-create-resource-type.yml | 17 + .../gnocchi/gnocchi-create-resource.yml | 19 + .../gnocchi/gnocchi-metric-aggregation.yml | 24 + .../gnocchi/gnocchi-metric-get-measures.yml | 24 + .../gnocchi/gnocchi-metric-list.yml | 17 + .../gnocchi/gnocchi-resource-list.yml | 17 + .../gnocchi/gnocchi-resource-type-list.yml | 17 + .../gnocchi/gnocchi-status-get.yml | 19 + rally/rally-plugins/gnocchi/gnocchi.py | 301 +++++++++++++ ..._persist_network_context.py => neutron.py} | 34 +- rally/rally-plugins/nova/nova.py | 4 +- .../rally-plugins/nova/nova_boot_persist.yml | 2 +- .../nova/nova_boot_persist_with_network.yml | 4 +- 30 files changed, 2215 insertions(+), 7 deletions(-) create mode 100644 conf/gnocchi-minimal.yaml create mode 100644 conf/telemetry-nova-neutron-gnocchi-10k-1000-per-30m.yaml create mode 100644 conf/telemetry-nova-neutron-gnocchi-1k-100-per-30m.yaml create mode 100644 conf/telemetry-nova-neutron-gnocchi-1k-500-per-30m.yaml create mode 100644 conf/telemetry-nova-neutron-gnocchi-5k-500-per-30m.yaml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-archive-policy-list.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-archive-policy-rule-list.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-archive-policy-rule.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-archive-policy.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy-rule.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-delete-resource-type.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-metric.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-resource-type.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-create-resource.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-metric-list.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-resource-list.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi-status-get.yml create mode 100644 rally/rally-plugins/gnocchi/gnocchi.py rename rally/rally-plugins/neutron/{browbeat_persist_network_context.py => neutron.py} (56%) diff --git a/conf/gnocchi-minimal.yaml b/conf/gnocchi-minimal.yaml new file mode 100644 index 000000000..ccd4d54de --- /dev/null +++ b/conf/gnocchi-minimal.yaml @@ -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 diff --git a/conf/telemetry-nova-neutron-gnocchi-10k-1000-per-30m.yaml b/conf/telemetry-nova-neutron-gnocchi-10k-1000-per-30m.yaml new file mode 100644 index 000000000..b7b5c7e4f --- /dev/null +++ b/conf/telemetry-nova-neutron-gnocchi-10k-1000-per-30m.yaml @@ -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 diff --git a/conf/telemetry-nova-neutron-gnocchi-1k-100-per-30m.yaml b/conf/telemetry-nova-neutron-gnocchi-1k-100-per-30m.yaml new file mode 100644 index 000000000..8f92ba7d5 --- /dev/null +++ b/conf/telemetry-nova-neutron-gnocchi-1k-100-per-30m.yaml @@ -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 diff --git a/conf/telemetry-nova-neutron-gnocchi-1k-500-per-30m.yaml b/conf/telemetry-nova-neutron-gnocchi-1k-500-per-30m.yaml new file mode 100644 index 000000000..134b6a1c8 --- /dev/null +++ b/conf/telemetry-nova-neutron-gnocchi-1k-500-per-30m.yaml @@ -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 diff --git a/conf/telemetry-nova-neutron-gnocchi-5k-500-per-30m.yaml b/conf/telemetry-nova-neutron-gnocchi-5k-500-per-30m.yaml new file mode 100644 index 000000000..a167db397 --- /dev/null +++ b/conf/telemetry-nova-neutron-gnocchi-5k-500-per-30m.yaml @@ -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 diff --git a/conf/telemetry-nova-persist-instances-with-network.yaml b/conf/telemetry-nova-persist-instances-with-network.yaml index b6e9acced..805d33fee 100644 --- a/conf/telemetry-nova-persist-instances-with-network.yaml +++ b/conf/telemetry-nova-persist-instances-with-network.yaml @@ -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/ diff --git a/rally/rally-plugins/gnocchi/gnocchi-archive-policy-list.yml b/rally/rally-plugins/gnocchi/gnocchi-archive-policy-list.yml new file mode 100644 index 000000000..54487fbeb --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-archive-policy-list.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-archive-policy-rule-list.yml b/rally/rally-plugins/gnocchi/gnocchi-archive-policy-rule-list.yml new file mode 100644 index 000000000..08b2abbdf --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-archive-policy-rule-list.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml b/rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml new file mode 100644 index 000000000..466e5bcb1 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-capabilities-list.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-archive-policy-rule.yml b/rally/rally-plugins/gnocchi/gnocchi-create-archive-policy-rule.yml new file mode 100644 index 000000000..deecb8877 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-archive-policy-rule.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-archive-policy.yml b/rally/rally-plugins/gnocchi/gnocchi-create-archive-policy.yml new file mode 100644 index 000000000..af58994d5 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-archive-policy.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy-rule.yml b/rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy-rule.yml new file mode 100644 index 000000000..1b5ca4724 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy-rule.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy.yml b/rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy.yml new file mode 100644 index 000000000..16a8d459f --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-delete-archive-policy.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml b/rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml new file mode 100644 index 000000000..782d7206f --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-delete-metric.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-delete-resource-type.yml b/rally/rally-plugins/gnocchi/gnocchi-create-delete-resource-type.yml new file mode 100644 index 000000000..8f056bb55 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-delete-resource-type.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml b/rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml new file mode 100644 index 000000000..5d0fdffae --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-delete-resource.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-metric.yml b/rally/rally-plugins/gnocchi/gnocchi-create-metric.yml new file mode 100644 index 000000000..25ed30529 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-metric.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-resource-type.yml b/rally/rally-plugins/gnocchi/gnocchi-create-resource-type.yml new file mode 100644 index 000000000..17e916a85 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-resource-type.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-create-resource.yml b/rally/rally-plugins/gnocchi/gnocchi-create-resource.yml new file mode 100644 index 000000000..2bb8c37fd --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-create-resource.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml b/rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml new file mode 100644 index 000000000..0a258d850 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-metric-aggregation.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml b/rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml new file mode 100644 index 000000000..28baab19a --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-metric-get-measures.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-metric-list.yml b/rally/rally-plugins/gnocchi/gnocchi-metric-list.yml new file mode 100644 index 000000000..44d3678f5 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-metric-list.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-resource-list.yml b/rally/rally-plugins/gnocchi/gnocchi-resource-list.yml new file mode 100644 index 000000000..9891b093a --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-resource-list.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml b/rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml new file mode 100644 index 000000000..925fc9390 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-resource-type-list.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi-status-get.yml b/rally/rally-plugins/gnocchi/gnocchi-status-get.yml new file mode 100644 index 000000000..36109fd61 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi-status-get.yml @@ -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}} diff --git a/rally/rally-plugins/gnocchi/gnocchi.py b/rally/rally-plugins/gnocchi/gnocchi.py new file mode 100644 index 000000000..c1f6d18e7 --- /dev/null +++ b/rally/rally-plugins/gnocchi/gnocchi.py @@ -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 diff --git a/rally/rally-plugins/neutron/browbeat_persist_network_context.py b/rally/rally-plugins/neutron/neutron.py similarity index 56% rename from rally/rally-plugins/neutron/browbeat_persist_network_context.py rename to rally/rally-plugins/neutron/neutron.py index 84f5e1333..a7286da2f 100644 --- a/rally/rally-plugins/neutron/browbeat_persist_network_context.py +++ b/rally/rally-plugins/neutron/neutron.py @@ -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')) diff --git a/rally/rally-plugins/nova/nova.py b/rally/rally-plugins/nova/nova.py index b9b9e7f56..4bcc13d4e 100644 --- a/rally/rally-plugins/nova/nova.py +++ b/rally/rally-plugins/nova/nova.py @@ -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): diff --git a/rally/rally-plugins/nova/nova_boot_persist.yml b/rally/rally-plugins/nova/nova_boot_persist.yml index 109ffff7b..26e685d87 100644 --- a/rally/rally-plugins/nova/nova_boot_persist.yml +++ b/rally/rally-plugins/nova/nova_boot_persist.yml @@ -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: diff --git a/rally/rally-plugins/nova/nova_boot_persist_with_network.yml b/rally/rally-plugins/nova/nova_boot_persist_with_network.yml index efa581066..c33fc6962 100644 --- a/rally/rally-plugins/nova/nova_boot_persist_with_network.yml +++ b/rally/rally-plugins/nova/nova_boot_persist_with_network.yml @@ -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