From b5e349bc478a5b3bf4bd896224a888843a2fc21b Mon Sep 17 00:00:00 2001 From: Rafael Folco Date: Wed, 28 Mar 2018 14:46:43 -0300 Subject: [PATCH] Collect dstat on overcloud nodes Start dstat on overcloud before tempest runs. Closes-Bug: #1674382 Change-Id: Ifd4bea27b2c5f31b30580c098024ba55c8abda51 --- .../baremetal-full-overcloud-validate.yml | 7 +++++ playbooks/multinode-validate.yml | 7 +++++ playbooks/quickstart-extras-validate.yml | 7 +++++ roles/extras-common/defaults/main.yml | 3 +++ .../tasks/install-undercloud.yml | 20 +++----------- roles/validate-perf/defaults/main.yml | 4 +++ roles/validate-perf/meta/main.yml | 2 ++ roles/validate-perf/tasks/main.yml | 27 +++++++++++++++++++ 8 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 roles/validate-perf/defaults/main.yml create mode 100644 roles/validate-perf/meta/main.yml create mode 100644 roles/validate-perf/tasks/main.yml diff --git a/playbooks/baremetal-full-overcloud-validate.yml b/playbooks/baremetal-full-overcloud-validate.yml index 2031c29ce..471d0802b 100644 --- a/playbooks/baremetal-full-overcloud-validate.yml +++ b/playbooks/baremetal-full-overcloud-validate.yml @@ -1,5 +1,12 @@ --- # Execute sanity checks agsinst the overcloud deployment +- name: setup dstat performance monitoring + hosts: overcloud + tags: + - overcloud-validate + roles: + - { role: validate-perf, when: validate_performance|bool } + - name: Sanity check the overcloud services hosts: undercloud tags: diff --git a/playbooks/multinode-validate.yml b/playbooks/multinode-validate.yml index 5568d82f6..1cfcd2cad 100644 --- a/playbooks/multinode-validate.yml +++ b/playbooks/multinode-validate.yml @@ -1,4 +1,11 @@ --- +- name: setup dstat performance monitoring + hosts: overcloud + tags: + - overcloud-validate + roles: + - { role: validate-perf, when: validate_performance|bool } + # Validate the deployment - name: validate the overcloud hosts: undercloud diff --git a/playbooks/quickstart-extras-validate.yml b/playbooks/quickstart-extras-validate.yml index d8d3d117f..4f80a3756 100644 --- a/playbooks/quickstart-extras-validate.yml +++ b/playbooks/quickstart-extras-validate.yml @@ -1,4 +1,11 @@ # Validate the deployment +- name: setup dstat performance monitoring + hosts: overcloud + tags: + - overcloud-validate + roles: + - { role: validate-perf, when: validate_performance|bool } + - name: validate the overcloud hosts: undercloud tags: diff --git a/roles/extras-common/defaults/main.yml b/roles/extras-common/defaults/main.yml index 7ae899f4e..6a06e70d3 100644 --- a/roles/extras-common/defaults/main.yml +++ b/roles/extras-common/defaults/main.yml @@ -33,3 +33,6 @@ undercloud_rpm_dependencies: >- # If `test_ping` is `true`, run a simple ping test to validate the # overcloud. test_ping: true + +# install and execute dstat across nodes +validate_performance: true diff --git a/roles/undercloud-deploy/tasks/install-undercloud.yml b/roles/undercloud-deploy/tasks/install-undercloud.yml index 1bd6c8c99..b6a00b8dd 100644 --- a/roles/undercloud-deploy/tasks/install-undercloud.yml +++ b/roles/undercloud-deploy/tasks/install-undercloud.yml @@ -1,20 +1,6 @@ -- name: Prepare directory with extra logs - file: dest=/var/log/extra state=directory - become: true - -- name: Install dstat if it is not present - yum: - name: dstat - state: present - become: true - -- name: Run dstat for collecting metrics during 2 hours - command: > - dstat -tcmndrylpg --nocolor --output /var/log/extra/dstat-csv.log 1 7200 \ - >/dev/null - async: 7200 - poll: 0 - become: true +- name: Run dstat on the undercloud prior to undercloud install + include_role: + name: validate-perf when: step_install_undercloud|bool - name: Install the undercloud diff --git a/roles/validate-perf/defaults/main.yml b/roles/validate-perf/defaults/main.yml new file mode 100644 index 000000000..f0f6aed76 --- /dev/null +++ b/roles/validate-perf/defaults/main.yml @@ -0,0 +1,4 @@ +dstat_log_name: dstat-csv.log +dstat_options: tcmndrylpg +dstat_delay: 1 +dstat_count: 7200 diff --git a/roles/validate-perf/meta/main.yml b/roles/validate-perf/meta/main.yml new file mode 100644 index 000000000..819da26a3 --- /dev/null +++ b/roles/validate-perf/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - extras-common diff --git a/roles/validate-perf/tasks/main.yml b/roles/validate-perf/tasks/main.yml new file mode 100644 index 000000000..fef24582f --- /dev/null +++ b/roles/validate-perf/tasks/main.yml @@ -0,0 +1,27 @@ +--- +- name: install the latest version of dstat on overcloud + package: + name: dstat + state: present + become: true + +- name: ensure /var/log/extra exists + file: + path: /var/log/extra + state: directory + mode: 0755 + become: true + +- name: Run dstat for collecting metrics on overcloud + command: >- + dstat + -{{ dstat_options }} + --nocolor + --output /var/log/extra/{{ dstat_log_name }} + {{ dstat_delay }} + {{ dstat_count }} + > /dev/null + async: 7200 + poll: 0 + become: true + changed_when: false