diff --git a/hieradata/roles/infra/metrics/server.yaml b/hieradata/roles/infra/metrics/server.yaml new file mode 100644 index 0000000..1b5c298 --- /dev/null +++ b/hieradata/roles/infra/metrics/server.yaml @@ -0,0 +1,10 @@ +--- +profiles::metrics::server::version: '2.48.0' +profiles::metrics::server::manage_user: true +profiles::metrics::server::manage_group: true +profiles::metrics::server::retention: 30d +profiles::metrics::server::scrape_jobs: + - node + - bind + - puppetdb + - systemd diff --git a/site/profiles/manifests/metrics/server.pp b/site/profiles/manifests/metrics/server.pp new file mode 100644 index 0000000..1bb82cf --- /dev/null +++ b/site/profiles/manifests/metrics/server.pp @@ -0,0 +1,25 @@ +# profiles::metrics::server +class profiles::metrics::server ( + String $version = '2.48.0', + Boolean $manage_user = true, + Boolean $manage_group = true, + String $retention = '30d', + Array $scrape_jobs = [], +) { + + $collect_scrape_jobs = $scrape_jobs.map |$job| { + { + 'job_name' => $job, + } + } + + class { 'prometheus::server': + manage_user => $manage_user, + manage_group => $manage_group, + version => $version, + collect_scrape_jobs => $collect_scrape_jobs, + extra_options => { + 'storage.tsdb.retention.time' => $retention, + }, + } +} diff --git a/site/roles/manifests/infra/metrics/prometheus.pp b/site/roles/manifests/infra/metrics/prometheus.pp new file mode 100644 index 0000000..d3dd8ea --- /dev/null +++ b/site/roles/manifests/infra/metrics/prometheus.pp @@ -0,0 +1,7 @@ +# a role to deploy a prometheus server +class roles::infra::metrics::prometheus { + include profiles::defaults + include profiles::base + include profiles::base::datavol + include profiles::metrics::server +}