diff options
author | Christian Pointner <equinox@spreadspace.org> | 2023-02-05 22:19:10 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2023-02-05 22:19:10 +0100 |
commit | 3b4c0a0cce803413d8465e0e32714924e8573897 (patch) | |
tree | 1dbbc8861bea09ec7559ac930183783df28fe381 /roles/monitoring/prometheus/exporter/register/tasks | |
parent | promethues: move target file installation to seperate role (diff) |
prometheus targets: some more refactoring - still not working... :(
Diffstat (limited to 'roles/monitoring/prometheus/exporter/register/tasks')
-rw-r--r-- | roles/monitoring/prometheus/exporter/register/tasks/main.yml | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/roles/monitoring/prometheus/exporter/register/tasks/main.yml b/roles/monitoring/prometheus/exporter/register/tasks/main.yml new file mode 100644 index 00000000..efb24a0f --- /dev/null +++ b/roles/monitoring/prometheus/exporter/register/tasks/main.yml @@ -0,0 +1,67 @@ +--- +# - name: register simple targets +# loop: "{{ prometheus_server_jobs | select('in', prometheus_exporters_default+prometheus_exporters_extra) }}" +# delegate_to: "{{ prometheus_server }}" +# template: +# src: "{{ lookup('first_found', {'paths': ['templates'], 'files': [item + '.yml.j2', 'generic.yml.j2']}) }}" +# dest: "/etc/prometheus/targets/{{ item }}/{{ inventory_hostname }}.yml" +# notify: reload prometheus + + + + + + +# result = [] +# for job in jobs: +# multitarget_config_varname = 'prometheus_job_multitarget_' + job.replace('-', '_').replace('/', '__') +# if multitarget_config_varname in vars: +# for exporter_hostname, configs in vars[multitarget_config_varname].items(): +# for config in configs: +# result.append({'job': job, 'instance': config['instance'], 'enabled': True, +# 'exporter_hostname': exporter_hostname, 'config': config}) +# +# else: +# enabled = job in vars['prometheus_exporters_default'] or job in vars['prometheus_exporters_extra'] +# result.append({'job': job, 'instance': vars['inventory_hostname'], 'enabled': enabled}) +# return result + +# - loop: "{{ prometheus_server_jobs | replace('-', '_') | replace('/', '__') }}" +# when: "('prometheus_job_multitarget_' + item) in vars" +# vars: +# blub: "{{ vars[item] }}" +# debug: +# var: blub + + +# set_fact: +# "prometheus_job_multitarget_{{ item }}": "{{ vars[item] }}" +# prometheus_job_multitarget_blackbox__probe: "{{ prometheus_job_multitarget_blackbox__probe }}" +# prometheus_job_multitarget_ssl__probe: "{{ prometheus_job_multitarget_ssl__probe }}" + + +- name: enable/disable job targets + vars: + job_targets: "{{ vars | prometheus_job_targets(prometheus_server_jobs) }}" + block: + - name: install files for enabled targets + loop: "{{ job_targets | selectattr('enabled') }}" + loop_control: + loop_var: target + label: "{{ target.job }} -> {{ target.instance }}" + delegate_to: "{{ prometheus_server }}" + template: + src: "{{ lookup('first_found', {'paths': ['templates'], 'files': [target.job + '.yml.j2', 'generic.yml.j2']}) }}" + dest: "/etc/prometheus/targets/{{ target.job }}/{{ target.instance }}.yml" + notify: reload prometheus + + - name: remove files for disabled targets + loop: "{{ job_targets | rejectattr('enabled') }}" + loop_control: + loop_var: target + label: "{{ target.job }} -> {{ target.instance }}" + delegate_to: "{{ prometheus_server }}" + file: + path: "/etc/prometheus/targets/{{ target.job }}/{{ target.instance }}.yml" + state: absent + notify: reload prometheus |