summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Shakhat <shakhat@gmail.com>2018-09-14 12:00:08 +0200
committerIlya Shakhat <shakhat@gmail.com>2018-09-17 18:06:22 +0200
commitb4e8a72d29cab340fa68318045cf335267ff09ff (patch)
treee3e7de9c099ae4be6275454dd27e5b7c5280acaf
parent175cfeef5c98e67299842d5ff3e36ed5e1978c4b (diff)
downloadosprofiler-b4e8a72d29cab340fa68318045cf335267ff09ff.tar.gz
Collect traces from Tempest job
All traces are stored under osprofiler-traces subfolder. Change-Id: I01a1f93c3a69a3e4bd2ed7777b0cdff58016d728
-rw-r--r--.zuul.yaml3
-rw-r--r--playbooks/osprofiler-post.yaml57
2 files changed, 59 insertions, 1 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index bd81d84..44d6159 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -26,12 +26,13 @@
name: tempest-full-py3-profiler-enabled
parent: tempest-full-py3
voting: false
+ post-run: playbooks/osprofiler-post.yaml
description: |
Run full tempest on py3 with profiling enabled
required-projects:
- openstack/osprofiler
vars:
- tox_envlist: full
+ tox_envlist: smoke
devstack_localrc:
OSPROFILER_COLLECTOR: redis
OSPROFILER_HMAC_KEYS: SECRET_KEY
diff --git a/playbooks/osprofiler-post.yaml b/playbooks/osprofiler-post.yaml
new file mode 100644
index 0000000..1455aad
--- /dev/null
+++ b/playbooks/osprofiler-post.yaml
@@ -0,0 +1,57 @@
+- hosts: controller
+ vars:
+ osprofiler_traces_dir: '/opt/stack/osprofiler-traces'
+ tasks:
+ - name: Create OSProfiler home directory
+ become: True
+ become_user: stack
+ file:
+ path: '{{ osprofiler_traces_dir }}'
+ state: directory
+ owner: stack
+ group: stack
+
+ - name: Get list of traces
+ command: osprofiler trace list --connection-string redis://localhost:6379
+ become: True
+ become_user: stack
+ register: osprofiler_trace_list
+
+ - debug:
+ msg: "{{ osprofiler_trace_list }}"
+
+ - name: Save traces to file
+ shell: |
+ osprofiler trace list --connection-string redis://localhost:6379 > {{ osprofiler_traces_dir }}/trace_list.txt
+ cat {{ osprofiler_traces_dir }}/trace_list.txt | tail -n +4 | head -n -1 | awk '{print $2}' > {{ osprofiler_traces_dir }}/trace_ids.txt
+
+ while read p; do
+ osprofiler trace show --connection-string redis://localhost:6379 --html $p > {{ osprofiler_traces_dir }}/trace-$p.html
+ done < {{ osprofiler_traces_dir }}/trace_ids.txt
+ become: True
+ become_user: stack
+
+ - name: Gzip results files
+ become: yes
+ become_user: stack
+ shell: "gzip * -9 -q | true"
+ args:
+ chdir: '{{ osprofiler_traces_dir }}'
+
+ - name: List all files
+ shell:
+ cmd: "ls -al {{ osprofiler_traces_dir }}"
+ become: True
+ become_user: stack
+
+ - name: Copy osprofiler output
+ become: yes
+ synchronize:
+ src: "{{ osprofiler_traces_dir }}"
+ dest: "{{ zuul.executor.log_root }}"
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - "--include=/**"
+ - "--include=*/"