diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml index fb1e301a6..28cac4f80 100644 --- a/roles/prometheus/defaults/main.yml +++ b/roles/prometheus/defaults/main.yml @@ -97,6 +97,10 @@ prometheus_static_targets_files: - prometheus/targets/*.yml - prometheus/targets/*.json +prometheus_scrape_config_files: + - prometheus/targets/*.yml + - prometheus/targets/*.json + # yamllint disable rule:line-length prometheus_alert_rules: # noqa yaml[line-length] # noqa line-length - alert: Watchdog diff --git a/roles/prometheus/meta/argument_specs.yml b/roles/prometheus/meta/argument_specs.yml index 9a58cb49d..555c652ee 100644 --- a/roles/prometheus/meta/argument_specs.yml +++ b/roles/prometheus/meta/argument_specs.yml @@ -150,6 +150,14 @@ argument_specs: default: - "prometheus/targets/*.yml" - "prometheus/targets/*.json" + prometheus_scrape_config_files: + description: + - "List of folders where ansible will look for files containing custom scrape config configuration files which will be copied to C({{ prometheus_config_dir }}/scrapes/)." + type: "list" + elements: "str" + default: + - "prometheus/scrapes/*.yml" + - "prometheus/scrapes/*.json" prometheus_stop_timeout: description: - "How long to wait for Prometheus to shutdown. This is passed as a systemd TimeoutStopSec time spec." diff --git a/roles/prometheus/tasks/configure.yml b/roles/prometheus/tasks/configure.yml index cd220f1cc..52fb6262a 100644 --- a/roles/prometheus/tasks/configure.yml +++ b/roles/prometheus/tasks/configure.yml @@ -70,3 +70,13 @@ group: prometheus mode: 0640 with_fileglob: "{{ prometheus_static_targets_files }}" + +- name: Copy prometheus scrape config files + ansible.builtin.copy: + src: "{{ item }}" + dest: "{{ prometheus_config_dir }}/scrapes/" + force: true + owner: root + group: prometheus + mode: 0640 + with_fileglob: "{{ prometheus_static_scrape_files }}" diff --git a/roles/prometheus/tasks/install.yml b/roles/prometheus/tasks/install.yml index 47a874048..44f3aaa58 100644 --- a/roles/prometheus/tasks/install.yml +++ b/roles/prometheus/tasks/install.yml @@ -33,6 +33,7 @@ - "{{ prometheus_config_dir }}" - "{{ prometheus_config_dir }}/rules" - "{{ prometheus_config_dir }}/file_sd" + - "{{ prometheus_config_dir }}/scrapes" - name: Get prometheus binary when: diff --git a/roles/prometheus/templates/prometheus.yml.j2 b/roles/prometheus/templates/prometheus.yml.j2 index fb0be5d2f..a37ae12e8 100644 --- a/roles/prometheus/templates/prometheus.yml.j2 +++ b/roles/prometheus/templates/prometheus.yml.j2 @@ -34,3 +34,8 @@ alerting: scrape_configs: {{ prometheus_scrape_configs | to_nice_yaml(indent=2,sort_keys=False) | indent(2,False) }} + +{% if prometheus_scrape_config_files != [] %} +scrape_config_files: + {{ prometheus_scrape_config_files | to_nice_yaml(indent=2) | indent(2,False) }} +{% endif %}