diff options
author | Ilya Shakhat <shakhat@gmail.com> | 2018-09-14 12:00:08 +0200 |
---|---|---|
committer | Ilya Shakhat <shakhat@gmail.com> | 2018-09-17 18:06:22 +0200 |
commit | b4e8a72d29cab340fa68318045cf335267ff09ff (patch) | |
tree | e3e7de9c099ae4be6275454dd27e5b7c5280acaf | |
parent | 175cfeef5c98e67299842d5ff3e36ed5e1978c4b (diff) | |
download | osprofiler-b4e8a72d29cab340fa68318045cf335267ff09ff.tar.gz |
Collect traces from Tempest job
All traces are stored under osprofiler-traces subfolder.
Change-Id: I01a1f93c3a69a3e4bd2ed7777b0cdff58016d728
-rw-r--r-- | .zuul.yaml | 3 | ||||
-rw-r--r-- | playbooks/osprofiler-post.yaml | 57 |
2 files changed, 59 insertions, 1 deletions
@@ -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=*/" |