summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2023-02-07 00:26:47 +0100
committerChristian Pointner <equinox@spreadspace.org>2023-02-07 00:26:47 +0100
commita4aaa50f35d6d58a0ccf3e089622a6bc4d023899 (patch)
tree31155e34bb80b8d4fae1b0a9eca00be0f9e6684f
parentprometheus targets: fix template generation (diff)
prometheus targets: cleanup and add support for target specific labels
-rw-r--r--inventory/group_vars/promzone-test/vars.yml3
-rw-r--r--inventory/host_vars/ch-testvm-prometheus.yml4
-rw-r--r--roles/monitoring/prometheus/exporter/register/defaults/main.yml6
-rw-r--r--roles/monitoring/prometheus/exporter/register/tasks/main.yml42
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/blackbox/probe.yml.j23
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/generic.yml.j23
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/ipmi/remote.yml.j23
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/nut/ups.yml.j23
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j23
-rw-r--r--roles/monitoring/prometheus/exporter/register/templates/ssl/probe.yml.j23
10 files changed, 32 insertions, 41 deletions
diff --git a/inventory/group_vars/promzone-test/vars.yml b/inventory/group_vars/promzone-test/vars.yml
index d44ec3e8..df27fb0b 100644
--- a/inventory/group_vars/promzone-test/vars.yml
+++ b/inventory/group_vars/promzone-test/vars.yml
@@ -27,3 +27,6 @@ prometheus_server_jobs:
prometheus_zone_name: chaos@test
prometheus_zone_targets: "{{ groups['promzone-test'] }}"
+
+prometheus_target_labels_default:
+ ansible_env_group: "{{ env_group }}"
diff --git a/inventory/host_vars/ch-testvm-prometheus.yml b/inventory/host_vars/ch-testvm-prometheus.yml
index 034b5d67..2b3c3099 100644
--- a/inventory/host_vars/ch-testvm-prometheus.yml
+++ b/inventory/host_vars/ch-testvm-prometheus.yml
@@ -81,6 +81,10 @@ prometheus_job_multitarget_ssl__probe:
module: file
+prometheus_target_labels_extra:
+ blub: foo
+
+
monitoring_landingpage_hostnames:
- "mon-test.chaos-at-home.org"
monitoring_landingpage_title: "chaos@test Monitoring Host"
diff --git a/roles/monitoring/prometheus/exporter/register/defaults/main.yml b/roles/monitoring/prometheus/exporter/register/defaults/main.yml
new file mode 100644
index 00000000..90e839ed
--- /dev/null
+++ b/roles/monitoring/prometheus/exporter/register/defaults/main.yml
@@ -0,0 +1,6 @@
+---
+prometheus_target_labels_default: {}
+# foo: bar
+
+prometheus_target_labels_extra: {}
+# blub: huhu
diff --git a/roles/monitoring/prometheus/exporter/register/tasks/main.yml b/roles/monitoring/prometheus/exporter/register/tasks/main.yml
index 5627add2..519975d6 100644
--- a/roles/monitoring/prometheus/exporter/register/tasks/main.yml
+++ b/roles/monitoring/prometheus/exporter/register/tasks/main.yml
@@ -1,48 +1,8 @@
---
-# - 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: "{{ prometheus_server_jobs | prometheus_job_targets(hostvars[inventory_hostname]) }}"
+ prometheus_target_labels: "{{ prometheus_target_labels_default | combine(prometheus_target_labels_extra) }}"
block:
- name: install files for enabled targets
loop: "{{ job_targets | selectattr('enabled') }}"
diff --git a/roles/monitoring/prometheus/exporter/register/templates/blackbox/probe.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/blackbox/probe.yml.j2
index 47e6dceb..3ecf129a 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/blackbox/probe.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/blackbox/probe.yml.j2
@@ -3,3 +3,6 @@
instance: '{{ target.instance }}'
__param_target: '{{ target.config.target }}'
__param_module: '{{ target.config.module }}'
+{% for name, value in prometheus_target_labels.items() %}
+ {{ name }}: '{{ value }}'
+{% endfor %}
diff --git a/roles/monitoring/prometheus/exporter/register/templates/generic.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/generic.yml.j2
index 341cb45a..f269cf3a 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/generic.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/generic.yml.j2
@@ -1,3 +1,6 @@
- targets: [ '{{ (target.instance == prometheus_server) | ternary('127.0.0.1:9999', hostvars[target.instance].prometheus_scrape_endpoint) }}' ]
labels:
instance: '{{ target.instance }}'
+{% for name, value in prometheus_target_labels.items() %}
+ {{ name }}: '{{ value }}'
+{% endfor %}
diff --git a/roles/monitoring/prometheus/exporter/register/templates/ipmi/remote.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/ipmi/remote.yml.j2
index 47e6dceb..3ecf129a 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/ipmi/remote.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/ipmi/remote.yml.j2
@@ -3,3 +3,6 @@
instance: '{{ target.instance }}'
__param_target: '{{ target.config.target }}'
__param_module: '{{ target.config.module }}'
+{% for name, value in prometheus_target_labels.items() %}
+ {{ name }}: '{{ value }}'
+{% endfor %}
diff --git a/roles/monitoring/prometheus/exporter/register/templates/nut/ups.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/nut/ups.yml.j2
index a25cdfe5..5181f4e4 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/nut/ups.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/nut/ups.yml.j2
@@ -15,3 +15,6 @@
{% if 'statuses' in target.config %}
__param_statuses: '{{ target.config.statuses }}'
{% endif %}
+{% for name, value in prometheus_target_labels.items() %}
+ {{ name }}: '{{ value }}'
+{% endfor %}
diff --git a/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2
index 47e6dceb..3ecf129a 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/snmp/probe.yml.j2
@@ -3,3 +3,6 @@
instance: '{{ target.instance }}'
__param_target: '{{ target.config.target }}'
__param_module: '{{ target.config.module }}'
+{% for name, value in prometheus_target_labels.items() %}
+ {{ name }}: '{{ value }}'
+{% endfor %}
diff --git a/roles/monitoring/prometheus/exporter/register/templates/ssl/probe.yml.j2 b/roles/monitoring/prometheus/exporter/register/templates/ssl/probe.yml.j2
index 47e6dceb..3ecf129a 100644
--- a/roles/monitoring/prometheus/exporter/register/templates/ssl/probe.yml.j2
+++ b/roles/monitoring/prometheus/exporter/register/templates/ssl/probe.yml.j2
@@ -3,3 +3,6 @@
instance: '{{ target.instance }}'
__param_target: '{{ target.config.target }}'
__param_module: '{{ target.config.module }}'
+{% for name, value in prometheus_target_labels.items() %}
+ {{ name }}: '{{ value }}'
+{% endfor %}