osprofiler/playbooks/osprofiler-post.yaml

59 lines
1.9 KiB
YAML

- hosts: controller
vars:
osprofiler_traces_dir: '/opt/stack/osprofiler-traces'
tasks:
- name: Create directory for traces
become: True
become_user: stack
file:
path: '{{ osprofiler_traces_dir }}'
state: directory
owner: stack
group: stack
- name: Read connection string from a file
command: "cat /opt/stack/.osprofiler_connection_string"
register: osprofiler_connection_string
- debug:
msg: "OSProfiler connection string is: {{ osprofiler_connection_string.stdout }}"
- name: Get list of traces
command: "osprofiler trace list --connection-string {{ osprofiler_connection_string.stdout }}"
become: True
become_user: stack
register: osprofiler_trace_list
- debug:
msg: "{{ osprofiler_trace_list }}"
- name: Save traces to files
shell: |
osprofiler trace list --connection-string {{ osprofiler_connection_string.stdout }} > {{ 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 {{ osprofiler_connection_string.stdout }} --html $p > {{ osprofiler_traces_dir }}/trace-$p.html
done < {{ osprofiler_traces_dir }}/trace_ids.txt
become: True
become_user: stack
- name: Gzip trace files
become: yes
become_user: stack
shell: "gzip * -9 -q | true"
args:
chdir: '{{ osprofiler_traces_dir }}'
- name: Sync trace files to Zuul
become: yes
synchronize:
src: "{{ osprofiler_traces_dir }}"
dest: "{{ zuul.executor.log_root }}"
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- "--include=/**"
- "--include=*/"