Showing with 47 additions and 26 deletions.
  1. +1 −0 manifests/alert_manager.pp
  2. +13 −5 manifests/alert_manager/config.pp
  3. +4 −4 manifests/alert_manager/install.pp
  4. +2 −1 manifests/config.pp
  5. +22 −13 manifests/init.pp
  6. +4 −2 manifests/params.pp
  7. +1 −1 metadata.json
1 change: 1 addition & 0 deletions manifests/alert_manager.pp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
$package_name = $::prometheus::params::alert_manager_package_name,
$package_ensure = $::prometheus::params::alert_manager_package_ensure,
$storage_path = $::prometheus::params::alert_manager_storage_path,
$config_dir = $::prometheus::params::alert_manager_config_dir,
$config_file = $::prometheus::params::alert_manager_config_file,
$global = $::prometheus::params::alert_manager_global,
$route = $::prometheus::params::alert_manager_route,
Expand Down
18 changes: 13 additions & 5 deletions manifests/alert_manager/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,22 @@
}
}
}


file { $prometheus::alert_manager::config_dir:
ensure => 'directory',
owner => $prometheus::alert_manager::user,
group => $prometheus::alert_manager::group,
purge => $purge,
recurse => $purge,
}

file { $prometheus::alert_manager::config_file:
ensure => present,
owner => $prometheus::user,
group => $prometheus::group,
mode => $prometheus::config_mode,
owner => $prometheus::alert_manager::user,
group => $prometheus::alert_manager::group,
mode => $prometheus::alert_manager::config_mode,
content => template('prometheus/alert_manager.yaml.erb'),
require => File[$prometheus::config_dir],
require => File[$prometheus::alert_manager::config_dir],
}

}
8 changes: 4 additions & 4 deletions manifests/alert_manager/install.pp
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
{
file { $::prometheus::alert_manager::storage_path:
ensure => 'directory',
owner => $::prometheus::user,
group => $::prometheus::group,
owner => $::prometheus::alert_manager::user,
group => $::prometheus::alert_manager::group,
mode => '0755',
}
}
Expand All @@ -19,9 +19,9 @@
include staging
$staging_file = "alert_manager-${prometheus::alert_manager::version}.${prometheus::alert_manager::download_extension}"
if( versioncmp($::prometheus::alert_manager::version, '0.1.0') == -1 ){
$binary = "${::staging::path}/alertmanager-${::prometheus::alert_manager::version}.${::prometheus::os}-${::prometheus::arch}"
$binary = "${::staging::path}/alertmanager-${::prometheus::alert_manager::version}.${::prometheus::alert_manager::os}-${::prometheus::alert_manager::arch}"
} else {
$binary = "${::staging::path}/alertmanager-${::prometheus::alert_manager::version}.${::prometheus::os}-${::prometheus::arch}/alertmanager"
$binary = "${::staging::path}/alertmanager-${::prometheus::alert_manager::version}.${::prometheus::alert_manager::os}-${::prometheus::alert_manager::arch}/alertmanager"
}
staging::file { $staging_file:
source => $prometheus::alert_manager::real_download_url,
Expand Down
3 changes: 2 additions & 1 deletion manifests/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
$rule_files,
$scrape_configs,
$purge = true,
$config_template = $::prometheus::params::config_template,
) {

if $prometheus::init_style {
Expand Down Expand Up @@ -89,7 +90,7 @@
owner => $prometheus::user,
group => $prometheus::group,
mode => $prometheus::config_mode,
content => template('prometheus/prometheus.yaml.erb'),
content => template($config_template),
}

}
35 changes: 22 additions & 13 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
# This module manages prometheus
#
# Parameters:
#
#
# [*manage_user*]
# Whether to create user for prometheus or rely on external code for that
#
#
# [*user*]
# User running prometheus
#
Expand All @@ -16,25 +16,28 @@
# [*purge_config_dir*]
# Purge config files no longer generated by Puppet
#
# [*group*]
# [*group*]
# Group under which prometheus is running
#
#
# [*bin_dir*]
# Directory where binaries are located
#
# [*shared_dir*]
# Directory where shared files are located
#
# [*arch*]
# Architecture (amd64 or i386)
#
# [*version*]
# Prometheus release
#
#
# [*install_method*]
# Installation method: url or package (only url is supported currently)
#
#
# [*os*]
# Operating system (linux is supported)
#
# [*download_url*]
# [*download_url*]
# Complete URL corresponding to the Prometheus release, default to undef
#
# [*download_url_base*]
Expand All @@ -46,7 +49,7 @@
# [*package_name*]
# Prometheus package name - not available yet
#
# [*package_ensure*]
# [*package_ensure*]
# If package, then use this for package ensurel default 'latest'
#
# [*config_dir*]
Expand All @@ -64,6 +67,9 @@
# [*config_defaults*]
# Startup config defaults
#
# [*config_template*]
# Configuration template to use (template/prometheus.yaml.erb)
#
# [*config_mode*]
# Configuration file mode (default 0660)
#
Expand Down Expand Up @@ -105,6 +111,7 @@
$group = $::prometheus::params::group,
$extra_groups = $::prometheus::params::extra_groups,
$bin_dir = $::prometheus::params::bin_dir,
$shared_dir = $::prometheus::params::shared_dir,
$arch = $::prometheus::params::arch,
$version = $::prometheus::params::version,
$install_method = $::prometheus::params::install_method,
Expand All @@ -119,6 +126,7 @@
$extra_options = '',
$config_hash = {},
$config_defaults = {},
$config_template = $::prometheus::params::config_template,
$config_mode = $::prometheus::params::config_mode,
$service_enable = true,
$service_ensure = 'running',
Expand Down Expand Up @@ -157,11 +165,12 @@
->
class { '::prometheus::install': } ->
class { '::prometheus::config':
global_config => $global_config,
rule_files => $rule_files,
scrape_configs => $scrape_configs,
purge => $purge_config_dir,
notify => $notify_service,
global_config => $global_config,
rule_files => $rule_files,
scrape_configs => $scrape_configs,
purge => $purge_config_dir,
notify => $notify_service,
config_template => $config_template,
} ->
class { '::prometheus::run_service': } ->
anchor {'prometheus_last': }
Expand Down
6 changes: 4 additions & 2 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@
$node_exporter_package_name = 'node_exporter'
$node_exporter_extra_groups = []
$alert_manager_download_url_base = 'https://github.com/prometheus/alertmanager/releases'
$alert_manager_config_file = "${config_dir}/alertmanager.yaml"
$alert_manager_config_dir = '/etc/alert_manager'
$alert_manager_config_file = "${alert_manager_config_dir}/alertmanager.yaml"
$alert_manager_global = { 'smtp_smarthost' =>'localhost:25', 'smtp_from'=>'alertmanager@localhost' }
$alert_manager_templates = [ "${config_dir}/*.tmpl" ]
$alert_manager_templates = [ "${alert_manager_config_dir}/*.tmpl" ]
$alert_manager_route = { 'group_by' => [ 'alertname', 'cluster', 'service' ], 'group_wait'=> '30s', 'group_interval'=> '5m', 'repeat_interval'=> '3h', 'receiver'=> 'Admin' }
$alert_manager_receivers = [ { 'name' => 'Admin', 'email_configs'=> [ { 'to'=> 'root@localhost' }] }]
$alert_manager_inhibit_rules = [ { 'source_match' => { 'severity'=> 'critical' },'target_match'=> { 'severity'=>'warning'},'equal'=>['alertname','cluster','service']}]
Expand All @@ -33,6 +34,7 @@
$alert_manager_download_extension = 'tar.gz'
$alert_manager_package_ensure = 'latest'
$alert_manager_package_name = 'alertmanager'
$config_template = 'prometheus/prometheus.yaml.erb'
$config_mode = '0660'
$global_config = { 'scrape_interval'=> '15s', 'evaluation_interval'=> '15s', 'external_labels'=> { 'monitor'=>'master'}}
$rule_files = [ "${config_dir}/alert.rules" ]
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@
"source": "https://github.com/brutus333/puppet-prometheus",
"summary": "Prometheus Puppet module",
"tags": [],
"version": "0.1.13"
"version": "0.1.14"
}