diff --git a/REFERENCE.md b/REFERENCE.md index 192e058e9..5c4022140 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -175,6 +175,7 @@ The following parameters are available in the `prometheus` class: * [`systemd_unit_options`](#-prometheus--systemd_unit_options) * [`systemd_install_options`](#-prometheus--systemd_install_options) * [`env_file_path`](#-prometheus--env_file_path) +* [`scrape_config_files`](#-prometheus--scrape_config_files) * [`manage_config_dir`](#-prometheus--manage_config_dir) * [`manage_init_file`](#-prometheus--manage_init_file) * [`manage_config`](#-prometheus--manage_config) @@ -913,6 +914,15 @@ Data type: `Stdlib::Absolutepath` +##### `scrape_config_files` + +Data type: `Optional[Array]` + +Option `scrape_config_files` specifies an Array of file globs. Scrape configs are read from all +matching files and appended to the list of scrape configs. + +Default value: `undef` + ##### `manage_config_dir` Data type: `Boolean` @@ -11672,6 +11682,7 @@ The following parameters are available in the `prometheus::server` class: * [`global_config`](#-prometheus--server--global_config) * [`rule_files`](#-prometheus--server--rule_files) * [`scrape_configs`](#-prometheus--server--scrape_configs) +* [`scrape_config_files`](#-prometheus--server--scrape_config_files) * [`include_default_scrape_configs`](#-prometheus--server--include_default_scrape_configs) * [`remote_read_configs`](#-prometheus--server--remote_read_configs) * [`remote_write_configs`](#-prometheus--server--remote_write_configs) @@ -11876,6 +11887,14 @@ Data type: `Array` Default value: `$prometheus::scrape_configs` +##### `scrape_config_files` + +Data type: `Optional[Array]` + + + +Default value: `$prometheus::scrape_config_files` + ##### `include_default_scrape_configs` Data type: `Boolean` diff --git a/manifests/init.pp b/manifests/init.pp index 190e70475..c72b6d033 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -228,6 +228,7 @@ String $package_name = 'prometheus', Array $rule_files = [], Array $scrape_configs = [], + Optional[Array] $scrape_config_files = undef, Array $remote_read_configs = [], Array $remote_write_configs = [], Boolean $enable_tracing = false, diff --git a/manifests/server.pp b/manifests/server.pp index 8b8aca8f5..08f11542d 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -21,6 +21,7 @@ Hash $global_config = $prometheus::global_config, Array $rule_files = $prometheus::rule_files, Array $scrape_configs = $prometheus::scrape_configs, + Optional[Array] $scrape_config_files = $prometheus::scrape_config_files, Boolean $include_default_scrape_configs = $prometheus::include_default_scrape_configs, Array $remote_read_configs = $prometheus::remote_read_configs, Array $remote_write_configs = $prometheus::remote_write_configs, diff --git a/templates/prometheus.yaml.erb b/templates/prometheus.yaml.erb index 45e47ca56..24d16e5f0 100644 --- a/templates/prometheus.yaml.erb +++ b/templates/prometheus.yaml.erb @@ -2,6 +2,7 @@ <% global_config = scope.lookupvar('prometheus::server::global_config') -%> <% rule_files = scope.lookupvar('prometheus::server::_rule_files') -%> <% scrape_configs = scope.lookupvar('prometheus::config::scrape_configs') -%> +<% scrape_config_files = scope.lookupvar('prometheus::server::scrape_config_files') -%> <% remote_read_configs = scope.lookupvar('prometheus::server::remote_read_configs') -%> <% remote_write_configs = scope.lookupvar('prometheus::server::remote_write_configs') -%> <% tracing_config = scope.lookupvar('prometheus::server::tracing_config') -%> @@ -14,6 +15,9 @@ 'alertmanagers'=>scope.lookupvar('prometheus::server::alertmanagers_config'), }, } +if scrape_config_files + full_config['scrape_config_files'] = scrape_config_files +end full_config['remote_read'] = remote_read_configs full_config['remote_write'] = remote_write_configs if @enable_tracing