From 98e020e82585d69c54bc6774237812ed8eab730e Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 28 Aug 2021 03:52:29 +0200 Subject: promethues generic vs special jobs --- roles/monitoring/prometheus/server/defaults/main/main.yml | 4 +++- roles/monitoring/prometheus/server/defaults/main/rules_nut.yml | 3 +++ roles/monitoring/prometheus/server/tasks/main.yml | 10 ++++++---- roles/monitoring/prometheus/server/templates/prometheus.yml.j2 | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 roles/monitoring/prometheus/server/defaults/main/rules_nut.yml (limited to 'roles/monitoring') diff --git a/roles/monitoring/prometheus/server/defaults/main/main.yml b/roles/monitoring/prometheus/server/defaults/main/main.yml index 98fc5b01..f6679fa7 100644 --- a/roles/monitoring/prometheus/server/defaults/main/main.yml +++ b/roles/monitoring/prometheus/server/defaults/main/main.yml @@ -5,8 +5,9 @@ prometheus_server_retention: "15d" -prometheus_server_jobs: +prometheus_server_jobs_generic: - node +prometheus_server_jobs_special: [] #prometheus_server_jobs_extra: | # - job_name: ... @@ -14,6 +15,7 @@ prometheus_server_rules: prometheus: "{{ prometheus_server_rules_prometheus + ((prometheus_server_alertmanager is defined) | ternary(prometheus_server_rules_prometheus_alertmanager, [])) + prometheus_server_rules_prometheus_extra }}" node: "{{ prometheus_server_rules_node + prometheus_server_rules_node_extra }}" openwrt: "{{ prometheus_server_rules_openwrt + prometheus_server_rules_node_extra }}" + nut: "{{ prometheus_server_rules_nut + prometheus_server_rules_nut_extra }}" # prometheus_server_alertmanager: # url: "127.0.0.1:9093" diff --git a/roles/monitoring/prometheus/server/defaults/main/rules_nut.yml b/roles/monitoring/prometheus/server/defaults/main/rules_nut.yml new file mode 100644 index 00000000..d8d64f64 --- /dev/null +++ b/roles/monitoring/prometheus/server/defaults/main/rules_nut.yml @@ -0,0 +1,3 @@ +--- +prometheus_server_rules_nut_extra: [] +prometheus_server_rules_nut: [] diff --git a/roles/monitoring/prometheus/server/tasks/main.yml b/roles/monitoring/prometheus/server/tasks/main.yml index aaae1a0e..1e25eb06 100644 --- a/roles/monitoring/prometheus/server/tasks/main.yml +++ b/roles/monitoring/prometheus/server/tasks/main.yml @@ -45,7 +45,7 @@ state: directory - name: create sub-directroy for all exporter types in jobs directory - loop: "{{ prometheus_server_jobs }}" + loop: "{{ prometheus_server_jobs_generic + prometheus_server_jobs_special }}" file: path: "/etc/prometheus/jobs/{{ item }}" state: directory @@ -59,8 +59,8 @@ instance: "{{ item }}" dest: "/etc/prometheus/targets/{{ item }}.yml" -- name: enable targets for jobs - loop: "{{ hostvars | prometheus_job_targets(prometheus_server_jobs, prometheus_zone_targets) }}" +- name: enable targets for generic jobs + loop: "{{ hostvars | prometheus_job_targets(prometheus_server_jobs_generic, prometheus_zone_targets) }}" loop_control: label: "{{ item.job }} -> {{ item.target }}" file: @@ -68,8 +68,10 @@ path: "/etc/prometheus/jobs/{{ item.job }}/{{ item.target }}.yml" state: "{{ item.enabled | ternary('link', 'absent') }}" +## TODO: generate special target configs + - name: generate rules files for all jobs - loop: "{{ prometheus_server_jobs | union(['prometheus']) }}" + loop: "{{ (prometheus_server_jobs_generic + prometheus_server_jobs_special) | union(['prometheus']) }}" template: src: rules.yml.j2 dest: "/etc/prometheus/rules/{{ item }}.yml" diff --git a/roles/monitoring/prometheus/server/templates/prometheus.yml.j2 b/roles/monitoring/prometheus/server/templates/prometheus.yml.j2 index dbd8bd99..2b9a08e4 100644 --- a/roles/monitoring/prometheus/server/templates/prometheus.yml.j2 +++ b/roles/monitoring/prometheus/server/templates/prometheus.yml.j2 @@ -35,7 +35,7 @@ scrape_configs: static_configs: - targets: ['{{ prometheus_server_alertmanager.url }}'] {% endif %} -{% for job in prometheus_server_jobs %} +{% for job in (prometheus_server_jobs_generic + prometheus_server_jobs_special) %} {% include 'job-snippets/' + (lookup('first_found', {'paths': ['templates/job-snippets'], 'files': [job + '.j2', 'default.j2']}) | basename) %}{{ '' }} {% endfor %} -- cgit v1.2.3