From 44665bae12750a9193ff8156c1b67aa8e65c568c Mon Sep 17 00:00:00 2001 From: uumas Date: Thu, 21 Dec 2023 01:18:27 +0200 Subject: [PATCH] prometheus: install alertmanager --- roles/prometheus/defaults/main.yml | 4 ++++ roles/prometheus/meta/argument_specs.yml | 13 +++++++++++++ roles/prometheus/tasks/main.yml | 8 ++++++++ roles/prometheus/templates/prometheus.yml.j2 | 4 +++- 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml index ef92987..3d995d1 100644 --- a/roles/prometheus/defaults/main.yml +++ b/roles/prometheus/defaults/main.yml @@ -5,3 +5,7 @@ prometheus_evaluation_interval: 15s prometheus_storage_retention: 3650d prometheus_install_grafana: false prometheus_hcloud_relabel_configs: [] + +prometheus_install_alertmanager: true + +alertmanager_storage_retention: "{{ prometheus_storage_retention }}" diff --git a/roles/prometheus/meta/argument_specs.yml b/roles/prometheus/meta/argument_specs.yml index 2e9ea13..5e52e6d 100644 --- a/roles/prometheus/meta/argument_specs.yml +++ b/roles/prometheus/meta/argument_specs.yml @@ -40,11 +40,24 @@ argument_specs: replacement: type: str required: false + prometheus_install_grafana: description: If true, installs grafana in the same docker network as prometheus and configures it with prometheus as data source type: bool required: false default: false + prometheus_install_alertmanager: + description: If true, installs alertmanager in the same docker network as prometheus and configures it + type: bool + required: false + default: true + + alertmanager_storage_retention: + description: Period of time for which alertmanager data is stored for. A number followed by unit (s, m, h, d, w, y). Passed directly to alertmanager role + type: str + required: false + default: "{{ prometheus_storage_retention | default('3650d') }}" + # All options after this will be passed directly to the container role docker_service_suffix: diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml index 0b5427d..98befaf 100644 --- a/roles/prometheus/tasks/main.yml +++ b/roles/prometheus/tasks/main.yml @@ -23,6 +23,14 @@ - copypath: alerting path: /etc/prometheus/alerting +- name: Alertmanager container for prometheus + include_role: + name: alertmanager + vars: + docker_networks: + - name: prometheus + when: prometheus_install_alertmanager + - name: Grafana container for prometheus include_role: name: grafana diff --git a/roles/prometheus/templates/prometheus.yml.j2 b/roles/prometheus/templates/prometheus.yml.j2 index 67f64dd..1e61dae 100644 --- a/roles/prometheus/templates/prometheus.yml.j2 +++ b/roles/prometheus/templates/prometheus.yml.j2 @@ -10,7 +10,9 @@ alerting: alertmanagers: - static_configs: - targets: - # - alertmanager:9093 +{% if prometheus_install_alertmanager %} + - alertmanager:9093 +{%- endif %} # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: