summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus/exporter/register/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/prometheus/exporter/register/tasks/main.yml')
-rw-r--r--roles/monitoring/prometheus/exporter/register/tasks/main.yml67
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