diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-09-18 16:42:41 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-09-18 16:42:41 +0200 |
| commit | 9ce66cb8a69a874d9219e4df48dfa28e92b587b0 (patch) | |
| tree | 5def586496570d33a45c1491ec26f13fc812ed41 | |
| parent | 7e51b1642f6c848e7fc50dab609bf28c03e54e04 (diff) | |
Allow configuring multiple targets for prometheus
The default are localhost, but it can be overridden to allow scrapping
localhost and or remote hosts (for both prometheus job and node exporter
jobs)
| -rw-r--r-- | roles/prometheus/defaults/main.yml | 8 | ||||
| -rw-r--r-- | roles/prometheus/meta/argument_specs.yml | 10 | ||||
| -rw-r--r-- | roles/prometheus/tasks/main.yml | 2 | ||||
| -rw-r--r-- | roles/prometheus/templates/prometheus.yml.j2 | 5 |
4 files changed, 21 insertions, 4 deletions
diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml index aae8d210..52c8da02 100644 --- a/roles/prometheus/defaults/main.yml +++ b/roles/prometheus/defaults/main.yml @@ -1,6 +1,12 @@ --- -prometheus_host: "127.0.0.1" +prometheus_host: "localhost" prometheus_port: 9090 prometheus_retention: "15d" prometheus_scrape_interval: "15s" prometheus_node_exporter_port: 9100 + +prometheus_targets: + - "{{ prometheus_host }}:{{ prometheus_port }}" + +prometheus_node_exporter_targets: + - "{{ prometheus_host }}:{{ prometheus_node_exporter_port }}" diff --git a/roles/prometheus/meta/argument_specs.yml b/roles/prometheus/meta/argument_specs.yml index 4d4d65e6..6a6db4c4 100644 --- a/roles/prometheus/meta/argument_specs.yml +++ b/roles/prometheus/meta/argument_specs.yml @@ -24,3 +24,13 @@ argument_specs: description: "Port for node-exporter metrics endpoint" type: "int" default: 9100 + prometheus_targets: + description: "The list of prometheus targets to scrape" + type: "list" + elements: "str" + default: ["{{ prometheus_host }}:{{ prometheus_port }}"] + prometheus_node_exporter_targets: + description: "The list of node_exporter targets to scrape" + type: "list" + elements: "str" + default: ["{{ prometheus_host }}:{{ prometheus_node_exporter_port }}"] diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml index e3029487..c4606ace 100644 --- a/roles/prometheus/tasks/main.yml +++ b/roles/prometheus/tasks/main.yml @@ -67,7 +67,7 @@ - name: "Start and enable prometheus services" become: true ansible.builtin.systemd_service: - name: "prometheus" + name: "{{ item }}" state: "started" enabled: true with_items: diff --git a/roles/prometheus/templates/prometheus.yml.j2 b/roles/prometheus/templates/prometheus.yml.j2 index e39a69c0..c43864ea 100644 --- a/roles/prometheus/templates/prometheus.yml.j2 +++ b/roles/prometheus/templates/prometheus.yml.j2 @@ -1,3 +1,4 @@ +--- global: scrape_interval: {{ prometheus_scrape_interval }} evaluation_interval: {{ prometheus_scrape_interval }} @@ -7,10 +8,10 @@ rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - - targets: ['localhost:{{ prometheus_port }}'] + - targets: {{ prometheus_targets | to_yaml }} - job_name: 'node' static_configs: - - targets: ['localhost:{{ prometheus_node_exporter_port }}'] + - targets: {{ prometheus_node_exporter_targets | to_yaml }} scrape_interval: {{ prometheus_scrape_interval }} metrics_path: /metrics |
