browbeat/ansible/rhoso-metrics/fetch_metrics.yaml

49 lines
1.8 KiB
YAML

---
- name: fetch prometheus data to ES
hosts: localhost
vars:
required_vars:
- es_server
- es_index
- uuid
- job_name
- metrics
- start_time
- end_time
tasks:
- name: check if variables are defind
assert:
that:
- item in vars
loop: "{{ required_vars }}"
loop_control:
label: "{{ item }}"
register: var_check_result
ignore_errors: true
- name: Fail if any variable is not defined
fail:
msg: "Variable '{{ var_check_result.results | map(attribute='item') | list | first }}' is not defined. Aborting playbook execution."
when: var_check_result is failed
- include_tasks: check_oc.yaml
- name: download kube-burner
ansible.builtin.get_url:
url: https://github.com/cloud-bulldozer/kube-burner/releases/download/v1.7.12/kube-burner-V1.7.12-linux-x86_64.tar.gz
dest: /tmp/kube-burner.tar.gz
- name: extract the kube-burner
ansible.builtin.unarchive:
src: /tmp/kube-burner.tar.gz
dest: /tmp
mode: '0774'
- name: retrieve the prometheus url
shell: oc get routes -n openshift-monitoring prometheus-k8s -o=jsonpath='{.spec.host}'
register: prometheus_url
- name: create token to access prometheus
shell: oc create token prometheus-k8s -n openshift-monitoring
register: token
- name: debug msg
debug:
msg: "url {{ prometheus_url.stdout }}"
- name: copy data from premetheus to elastic
shell: |
/tmp/kube-burner index --es-server {{ es_server }} --es-index {{ es_index }} --uuid={{ uuid}} --job-name {{ job_name }} --token={{ token.stdout}} -m={{ metrics }} --start={{ start_time }} --end={{ end_time }} --log-level debug -u https://{{ prometheus_url.stdout }}