summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2023-02-04 00:41:12 +0100
committerChristian Pointner <equinox@spreadspace.org>2023-02-04 00:41:34 +0100
commit5aafc31ce200e0a3a27245410291cf76dc412a75 (patch)
treea14a8ace8aa99666e17f1235646fb244133f5bb1 /roles/monitoring/prometheus
parentadd openwrt testvm to prometheus test-zone (diff)
promethues: move target file installation to seperate role
Diffstat (limited to 'roles/monitoring/prometheus')
-rw-r--r--roles/monitoring/prometheus/exporter/TODO8
-rw-r--r--roles/monitoring/prometheus/server/filter_plugins/prometheus.py37
-rw-r--r--roles/monitoring/prometheus/server/tasks/main.yml24
-rw-r--r--roles/monitoring/prometheus/target/filter_plugins/prometheus.py36
-rw-r--r--roles/monitoring/prometheus/target/handlers/main.yml7
-rw-r--r--roles/monitoring/prometheus/target/tasks/main.yml26
-rw-r--r--roles/monitoring/prometheus/target/templates/blackbox/probe.yml.j2 (renamed from roles/monitoring/prometheus/server/templates/targets/blackbox/probe.yml.j2)0
-rw-r--r--roles/monitoring/prometheus/target/templates/generic.yml.j2 (renamed from roles/monitoring/prometheus/server/templates/targets/generic.yml.j2)0
-rw-r--r--roles/monitoring/prometheus/target/templates/ipmi/remote.yml.j2 (renamed from roles/monitoring/prometheus/server/templates/targets/ipmi/remote.yml.j2)0
-rw-r--r--roles/monitoring/prometheus/target/templates/nut/ups.yml.j2 (renamed from roles/monitoring/prometheus/server/templates/targets/nut/ups.yml.j2)0
-rw-r--r--roles/monitoring/prometheus/target/templates/snmp/probe.yml.j2 (renamed from roles/monitoring/prometheus/server/templates/targets/snmp/probe.yml.j2)0
-rw-r--r--roles/monitoring/prometheus/target/templates/ssl/probe.yml.j2 (renamed from roles/monitoring/prometheus/server/templates/targets/ssl/probe.yml.j2)0
12 files changed, 69 insertions, 69 deletions
diff --git a/roles/monitoring/prometheus/exporter/TODO b/roles/monitoring/prometheus/exporter/TODO
index 53ded412..02917b6d 100644
--- a/roles/monitoring/prometheus/exporter/TODO
+++ b/roles/monitoring/prometheus/exporter/TODO
@@ -6,10 +6,6 @@ NGINX Exporter:
- https://github.com/nginxinc/nginx-prometheus-exporter
- https://packages.debian.org/bullseye/prometheus-nginx-exporter
-Bind Exporter:
- - https://github.com/prometheus-community/bind_exporter
- - https://packages.debian.org/bullseye/prometheus-bind-exporter
-
MySQLd Exporter:
- https://github.com/prometheus/mysqld_exporter
- https://packages.debian.org/bullseye/prometheus-mysqld-exporter
@@ -18,10 +14,6 @@ Postgres Exporter:
- https://github.com/prometheus-community/postgres_exporter
- https://packages.debian.org/bullseye/prometheus-postgres-exporter
-SNMP Exporter:
- - https://github.com/prometheus/snmp_exporter
- - https://packages.debian.org/bullseye/prometheus-snmp-exporter
-
Process Exporter:
- https://github.com/ncabatoff/process-exporter
- https://packages.debian.org/bullseye/prometheus-process-exporter
diff --git a/roles/monitoring/prometheus/server/filter_plugins/prometheus.py b/roles/monitoring/prometheus/server/filter_plugins/prometheus.py
deleted file mode 100644
index d91ef619..00000000
--- a/roles/monitoring/prometheus/server/filter_plugins/prometheus.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from __future__ import (absolute_import, division, print_function)
-__metaclass__ = type
-
-from functools import partial
-
-from ansible import errors
-
-
-def prometheus_job_targets(hostvars, jobs, targets):
- try:
- result = []
- for job in jobs:
- for target in targets:
- multitarget_config_varname = 'prometheus_job_multitarget_' + job.replace('-', '_').replace('/', '__')
- if multitarget_config_varname in hostvars[target]:
- for exporter_hostname, configs in hostvars[target][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 hostvars[target]['prometheus_exporters_default'] or job in hostvars[target]['prometheus_exporters_extra']
- result.append({'job': job, 'instance': target, 'enabled': enabled})
- return result
- except Exception as e:
- raise errors.AnsibleFilterError("prometheus_job_targets(): %s" % str(e))
-
-
-class FilterModule(object):
-
- ''' prometheus filters '''
- filter_map = {
- 'prometheus_job_targets': prometheus_job_targets,
- }
-
- def filters(self):
- return self.filter_map
diff --git a/roles/monitoring/prometheus/server/tasks/main.yml b/roles/monitoring/prometheus/server/tasks/main.yml
index fce41214..ad78ee24 100644
--- a/roles/monitoring/prometheus/server/tasks/main.yml
+++ b/roles/monitoring/prometheus/server/tasks/main.yml
@@ -66,30 +66,6 @@
path: "/etc/prometheus/targets/{{ item }}"
state: directory
-- name: enable/disable job targets
- vars:
- job_targets: "{{ hostvars | prometheus_job_targets(prometheus_server_jobs, prometheus_zone_targets) }}"
- block:
- - name: install files for enabled targets
- loop: "{{ job_targets | selectattr('enabled') }}"
- loop_control:
- loop_var: target
- label: "{{ target.job }} -> {{ target.instance }}"
- template:
- src: "{{ lookup('first_found', {'paths': ['templates/targets'], '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 }}"
- file:
- path: "/etc/prometheus/targets/{{ target.job }}/{{ target.instance }}.yml"
- state: absent
- notify: reload prometheus
-
- name: create sub-directories for all jobs in rules directory
loop: "{{ prometheus_server_jobs | union(prometheus_server_federation | default({}) | dict2items | map(attribute='value.jobs') | flatten | unique) | select('match', '.*/.*') | map('dirname') | unique }}"
file:
diff --git a/roles/monitoring/prometheus/target/filter_plugins/prometheus.py b/roles/monitoring/prometheus/target/filter_plugins/prometheus.py
new file mode 100644
index 00000000..c29bce81
--- /dev/null
+++ b/roles/monitoring/prometheus/target/filter_plugins/prometheus.py
@@ -0,0 +1,36 @@
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+from functools import partial
+
+from ansible import errors
+
+
+def prometheus_job_targets(vars, jobs):
+ try:
+ 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
+ except Exception as e:
+ raise errors.AnsibleFilterError("prometheus_job_targets(): %s" % str(e))
+
+
+class FilterModule(object):
+
+ ''' prometheus filters '''
+ filter_map = {
+ 'prometheus_job_targets': prometheus_job_targets,
+ }
+
+ def filters(self):
+ return self.filter_map
diff --git a/roles/monitoring/prometheus/target/handlers/main.yml b/roles/monitoring/prometheus/target/handlers/main.yml
new file mode 100644
index 00000000..1d386481
--- /dev/null
+++ b/roles/monitoring/prometheus/target/handlers/main.yml
@@ -0,0 +1,7 @@
+---
+- name: reload prometheus
+ delegate_to: "{{ prometheus_server }}"
+ run_once: yes
+ service:
+ name: prometheus
+ state: reloaded
diff --git a/roles/monitoring/prometheus/target/tasks/main.yml b/roles/monitoring/prometheus/target/tasks/main.yml
new file mode 100644
index 00000000..69ea94f2
--- /dev/null
+++ b/roles/monitoring/prometheus/target/tasks/main.yml
@@ -0,0 +1,26 @@
+---
+- 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
diff --git a/roles/monitoring/prometheus/server/templates/targets/blackbox/probe.yml.j2 b/roles/monitoring/prometheus/target/templates/blackbox/probe.yml.j2
index 47e6dceb..47e6dceb 100644
--- a/roles/monitoring/prometheus/server/templates/targets/blackbox/probe.yml.j2
+++ b/roles/monitoring/prometheus/target/templates/blackbox/probe.yml.j2
diff --git a/roles/monitoring/prometheus/server/templates/targets/generic.yml.j2 b/roles/monitoring/prometheus/target/templates/generic.yml.j2
index 341cb45a..341cb45a 100644
--- a/roles/monitoring/prometheus/server/templates/targets/generic.yml.j2
+++ b/roles/monitoring/prometheus/target/templates/generic.yml.j2
diff --git a/roles/monitoring/prometheus/server/templates/targets/ipmi/remote.yml.j2 b/roles/monitoring/prometheus/target/templates/ipmi/remote.yml.j2
index 47e6dceb..47e6dceb 100644
--- a/roles/monitoring/prometheus/server/templates/targets/ipmi/remote.yml.j2
+++ b/roles/monitoring/prometheus/target/templates/ipmi/remote.yml.j2
diff --git a/roles/monitoring/prometheus/server/templates/targets/nut/ups.yml.j2 b/roles/monitoring/prometheus/target/templates/nut/ups.yml.j2
index a25cdfe5..a25cdfe5 100644
--- a/roles/monitoring/prometheus/server/templates/targets/nut/ups.yml.j2
+++ b/roles/monitoring/prometheus/target/templates/nut/ups.yml.j2
diff --git a/roles/monitoring/prometheus/server/templates/targets/snmp/probe.yml.j2 b/roles/monitoring/prometheus/target/templates/snmp/probe.yml.j2
index 47e6dceb..47e6dceb 100644
--- a/roles/monitoring/prometheus/server/templates/targets/snmp/probe.yml.j2
+++ b/roles/monitoring/prometheus/target/templates/snmp/probe.yml.j2
diff --git a/roles/monitoring/prometheus/server/templates/targets/ssl/probe.yml.j2 b/roles/monitoring/prometheus/target/templates/ssl/probe.yml.j2
index 47e6dceb..47e6dceb 100644
--- a/roles/monitoring/prometheus/server/templates/targets/ssl/probe.yml.j2
+++ b/roles/monitoring/prometheus/target/templates/ssl/probe.yml.j2