Showing with 992 additions and 196 deletions.
  1. +19 −4 .github/CONTRIBUTING.md
  2. +1 −1 .msync.yml
  3. +1 −0 .sync.yml
  4. +8 −0 .travis.yml
  5. +32 −0 CHANGELOG.md
  6. +4 −3 Gemfile
  7. +7 −0 data/Archlinux.yaml
  8. +1 −0 data/Debian.yaml
  9. +1 −0 data/RedHat.yaml
  10. +3 −2 data/defaults.yaml
  11. +4 −4 manifests/alertmanager.pp
  12. +2 −2 manifests/alerts.pp
  13. +19 −19 manifests/apache_exporter.pp
  14. +1 −1 manifests/blackbox_exporter.pp
  15. +139 −37 manifests/config.pp
  16. +5 −3 manifests/daemon.pp
  17. +12 −1 manifests/elasticsearch_exporter.pp
  18. +1 −1 manifests/haproxy_exporter.pp
  19. +186 −7 manifests/init.pp
  20. +2 −1 manifests/install.pp
  21. +20 −20 manifests/mysqld_exporter.pp
  22. +2 −0 manifests/node_exporter.pp
  23. +20 −20 manifests/process_exporter.pp
  24. +6 −1 manifests/pushprox_client.pp
  25. +1 −1 manifests/pushprox_proxy.pp
  26. +1 −1 manifests/scrape_job.pp
  27. +3 −2 manifests/server.pp
  28. +1 −1 manifests/snmp_exporter.pp
  29. +20 −20 manifests/statsd_exporter.pp
  30. +1 −1 manifests/varnish_exporter.pp
  31. +5 −3 metadata.json
  32. +32 −2 spec/classes/node_exporter_spec.rb
  33. +176 −7 spec/classes/prometheus_spec.rb
  34. +2 −2 spec/classes/snmp_exporter_spec.rb
  35. +2 −2 spec/classes/statsd_exporter_spec.rb
  36. +1 −1 spec/defines/alerts_spec.rb
  37. +1 −1 spec/defines/daemon_spec.rb
  38. +37 −0 spec/fixtures/files/cli/prometheus1_all.systemd
  39. +23 −0 spec/fixtures/files/cli/prometheus1_extra.systemd
  40. +21 −0 spec/fixtures/files/cli/prometheus2_6_retention.systemd
  41. +50 −0 spec/fixtures/files/cli/prometheus2_all.systemd
  42. +22 −0 spec/fixtures/files/cli/prometheus2_extra.systemd
  43. +2 −2 spec/fixtures/files/prometheus1.debian
  44. +2 −2 spec/fixtures/files/prometheus1.systemd
  45. +2 −2 spec/fixtures/files/prometheus1.sysv
  46. +2 −2 spec/fixtures/files/prometheus1.upstart
  47. +2 −2 spec/fixtures/files/prometheus2.debian
  48. +3 −3 spec/fixtures/files/prometheus2.systemd
  49. +2 −2 spec/fixtures/files/prometheus2.sysv
  50. +3 −3 spec/fixtures/files/prometheus2.upstart
  51. +2 −0 spec/spec_helper.rb
  52. +6 −7 spec/spec_helper_acceptance.rb
  53. +2 −0 spec/spec_helper_methods.rb
  54. +30 −0 spec/type_aliases/s3uri_spec.rb
  55. +33 −0 spec/type_aliases/uri_spec.rb
  56. +1 −0 types/s3uri.pp
  57. +5 −0 types/uri.pp
23 changes: 19 additions & 4 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,34 @@ You can install all needed gems for spec tests into the modules directory by
running:

```sh
bundle install --path .vendor/ --without development system_tests release
bundle install --path .vendor/ --without development system_tests release --jobs "$(nproc)"
```

If you also want to run acceptance tests:

```sh
bundle install --path .vendor/ --with system_tests --without development release
bundle install --path .vendor/ --with system_tests --without development release --jobs "$(nproc)"
```

Our all in one solution if you don't know if you need to install or update gems:

```sh
bundle install --path .vendor/ --with system_tests --without development release; bundle update; bundle clean
bundle install --path .vendor/ --with system_tests --without development release --jobs "$(nproc)"; bundle update; bundle clean
```

As an alternative to the `--jobs "$(nproc)` parameter, you can set an
environment variable:

```sh
BUNDLE_JOBS="$(nproc)"
```

### Note for OS X users

`nproc` isn't a valid command unter OS x. As an alternative, you can do:

```sh
--jobs "$(sysctl -n hw.ncpu)"
```

## Syntax and style
Expand Down Expand Up @@ -160,7 +175,7 @@ created virtual machines will be in `.vagrant/beaker_vagrant_files`.
Beaker also supports docker containers. We also use that in our automated CI
pipeline at [travis-ci](http://travis-ci.org). To use that instead of Vagrant:

```
```sh
PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_debug=true BEAKER_setfile=debian9-64{hypervisor=docker} BEAKER_destroy=yes bundle exec rake beaker
```

Expand Down
2 changes: 1 addition & 1 deletion .msync.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
modulesync_config_version: '2.7.0'
modulesync_config_version: '2.8.0'
1 change: 1 addition & 0 deletions .sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
- set: debian8-64
- set: debian9-64
- set: centos7-64
- set: centos8-64
spec/spec_helper.rb:
spec_overrides: "require 'spec_helper_methods'"
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ matrix:
bundler_args: --without development release
env: PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_debug=true BEAKER_setfile=centos7-64 BEAKER_HYPERVISOR=docker CHECK=beaker
services: docker
- rvm: 2.5.3
bundler_args: --without development release
env: PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_debug=true BEAKER_setfile=centos8-64 BEAKER_HYPERVISOR=docker CHECK=beaker
services: docker
- rvm: 2.5.3
bundler_args: --without development release
env: PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_debug=true BEAKER_setfile=centos8-64 BEAKER_HYPERVISOR=docker CHECK=beaker
services: docker
branches:
only:
- master
Expand Down
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file.
Each new release typically also includes the latest modulesync defaults.
These should not affect the functionality of the module.

## [v7.1.0](https://github.com/voxpupuli/puppet-prometheus/tree/v7.1.0) (2019-11-05)

[Full Changelog](https://github.com/voxpupuli/puppet-prometheus/compare/v7.0.0...v7.1.0)

**Implemented enhancements:**

- Change Prometheus port [\#52](https://github.com/voxpupuli/puppet-prometheus/issues/52)
- Addd RHEL8 support / disable timesync for docker images [\#378](https://github.com/voxpupuli/puppet-prometheus/pull/378) ([bastelfreak](https://github.com/bastelfreak))
- Add prom command line args and validation [\#377](https://github.com/voxpupuli/puppet-prometheus/pull/377) ([hooten](https://github.com/hooten))
- exporters: set /usr/bin/nologin as shell [\#372](https://github.com/voxpupuli/puppet-prometheus/pull/372) ([bastelfreak](https://github.com/bastelfreak))
- Expose env\_vars to prometheus::pushprox\_client class [\#369](https://github.com/voxpupuli/puppet-prometheus/pull/369) ([mcanevet](https://github.com/mcanevet))
- Allow s3 sources for download uris [\#368](https://github.com/voxpupuli/puppet-prometheus/pull/368) ([hooten](https://github.com/hooten))
- Make elasticsearch usable with older version [\#364](https://github.com/voxpupuli/puppet-prometheus/pull/364) ([zonArt](https://github.com/zonArt))
- Archlinux: support node\_exporter installation as package [\#362](https://github.com/voxpupuli/puppet-prometheus/pull/362) ([bastelfreak](https://github.com/bastelfreak))
- make config files readonly to daemons [\#324](https://github.com/voxpupuli/puppet-prometheus/pull/324) ([anarcat](https://github.com/anarcat))

**Fixed bugs:**

- Archlinux: Do not manage node\_exporter group/user [\#373](https://github.com/voxpupuli/puppet-prometheus/pull/373) ([bastelfreak](https://github.com/bastelfreak))
- user/group: prohibit empty strings [\#371](https://github.com/voxpupuli/puppet-prometheus/pull/371) ([bastelfreak](https://github.com/bastelfreak))
- Archlinux: set correct binary name for node\_exporter [\#365](https://github.com/voxpupuli/puppet-prometheus/pull/365) ([bastelfreak](https://github.com/bastelfreak))

**Closed issues:**

- `ensure =\> 'absent'` doesn't do what it should do [\#374](https://github.com/voxpupuli/puppet-prometheus/issues/374)
- Add a "config\_template" for alertmanager [\#315](https://github.com/voxpupuli/puppet-prometheus/issues/315)

**Merged pull requests:**

- Clean up acceptance spec helper [\#379](https://github.com/voxpupuli/puppet-prometheus/pull/379) ([ekohl](https://github.com/ekohl))
- fix duplicate key in data/defaults.yaml [\#360](https://github.com/voxpupuli/puppet-prometheus/pull/360) ([tkuther](https://github.com/tkuther))

## [v7.0.0](https://github.com/voxpupuli/puppet-prometheus/tree/v7.0.0) (2019-07-19)

[Full Changelog](https://github.com/voxpupuli/puppet-prometheus/compare/v6.4.0...v7.0.0)
Expand Down
7 changes: 4 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ group :test do
gem 'puppet-lint-unquoted_string-check', :require => false
gem 'puppet-lint-variable_contains_upcase', :require => false
gem 'puppet-lint-absolute_classname-check', :require => false
gem 'puppet-lint-topscope-variable-check', :require => false
gem 'metadata-json-lint', :require => false
gem 'redcarpet', :require => false
gem 'rubocop', '~> 0.49.1', :require => false
Expand All @@ -43,16 +44,16 @@ group :system_tests do
if beaker_version = ENV['BEAKER_VERSION']
gem 'beaker', *location_for(beaker_version)
else
gem 'beaker', '>= 4.2.0', :require => false
gem 'beaker', '>= 4.8.0', :require => false
end
if beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
gem 'beaker-rspec', *location_for(beaker_rspec_version)
else
gem 'beaker-rspec', :require => false
end
gem 'serverspec', :require => false
gem 'beaker-hostgenerator', '>= 1.1.22', :require => false
gem 'beaker-docker', :require => false
gem 'beaker-hostgenerator', :require => false, :git => 'https://github.com/puppetlabs/beaker-hostgenerator.git', :branch => 'master'
gem 'beaker-docker', :require => false, :git => 'https://github.com/puppetlabs/beaker-docker.git', :branch => 'master'
gem 'beaker-puppet', :require => false
gem 'beaker-puppet_install_helper', :require => false
gem 'beaker-module_install_helper', :require => false
Expand Down
7 changes: 7 additions & 0 deletions data/Archlinux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,10 @@ prometheus::version: '2.10.0'
prometheus::install_method: 'package'
prometheus::bin_dir: '/usr/bin'
prometheus::env_file_path: '/etc/default'
prometheus::node_exporter::package_name: 'prometheus-node-exporter'
prometheus::node_exporter::install_method: 'package'
prometheus::node_exporter::bin_name: 'prometheus-node-exporter'
prometheus::node_exporter::user: 'node_exporter'
prometheus::node_exporter::group: 'node_exporter'
prometheus::node_exporter::manage_user: false
prometheus::node_exporter::manage_group: false
1 change: 1 addition & 0 deletions data/Debian.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
prometheus::env_file_path: '/etc/default'
prometheus::usershell: '/usr/sbin/nologin'
1 change: 1 addition & 0 deletions data/RedHat.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
prometheus::env_file_path: '/etc/sysconfig'
prometheus::usershell: '/sbin/nologin'
5 changes: 3 additions & 2 deletions data/defaults.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
prometheus::usershell: '/usr/bin/nologin'
prometheus::configname: 'prometheus.yaml'
prometheus::service_enable: true
prometheus::service_ensure: 'running'
Expand Down Expand Up @@ -74,7 +75,7 @@ prometheus::alertmanager::user: 'alertmanager'
prometheus::alertmanager::version: '0.18.0'
prometheus::alerts: {}
prometheus::config_dir: '/etc/prometheus'
prometheus::config_mode: '0660'
prometheus::config_mode: '0640'
prometheus::config_template: 'prometheus/prometheus.yaml.erb'
prometheus::consul_exporter::consul_health_summary: true
prometheus::consul_exporter::consul_server: 'localhost:8500'
Expand All @@ -101,14 +102,14 @@ prometheus::elasticsearch_exporter::package_ensure: 'latest'
prometheus::elasticsearch_exporter::package_name: 'elasticsearch_exporter'
prometheus::elasticsearch_exporter::user: 'elasticsearch-exporter'
prometheus::elasticsearch_exporter::version: '1.1.0rc1'
prometheus::elasticsearch_exporter::use_kingpin: true
prometheus::extra_groups: []
prometheus::global_config:
'scrape_interval': '15s'
'evaluation_interval': '15s'
'external_labels':
'monitor': 'master'
prometheus::group: 'prometheus'
prometheus::install_method: 'url'
prometheus::localstorage: '/var/lib/prometheus'
prometheus::manage_config: true
prometheus::mesos_exporter::server_type: 'master'
Expand Down
8 changes: 4 additions & 4 deletions manifests/alertmanager.pp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@
Stdlib::Absolutepath $config_dir,
Stdlib::Absolutepath $config_file,
String $download_extension,
Variant[Stdlib::HTTPUrl, Stdlib::HTTPSUrl] $download_url_base,
Prometheus::Uri $download_url_base,
Array $extra_groups,
Hash $global,
String $group,
Expand Down Expand Up @@ -178,7 +178,7 @@

file { $config_dir:
ensure => 'directory',
owner => $user,
owner => 'root',
group => $group,
purge => $purge_config_dir,
recurse => $purge_config_dir,
Expand All @@ -194,7 +194,7 @@
if $manage_config {
file { $config_file:
ensure => present,
owner => $user,
owner => 'root',
group => $group,
mode => $config_mode,
content => template('prometheus/alertmanager.yaml.erb'),
Expand All @@ -208,7 +208,7 @@
if $manage_config {
file { $config_file:
ensure => present,
owner => $user,
owner => 'root',
group => $group,
mode => $config_mode,
content => template('prometheus/alertmanager.yaml.erb'),
Expand Down
4 changes: 2 additions & 2 deletions manifests/alerts.pp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
if ( versioncmp($version, '2.0.0') < 0 ){
file { "${location}/${name}.rules":
ensure => 'file',
owner => $user,
owner => 'root',
group => $group,
notify => Class['prometheus::service_reload'],
content => epp("${module_name}/alerts.epp", {'alerts' => $alerts}),
Expand All @@ -31,7 +31,7 @@
else {
file { "${location}/${name}.rules":
ensure => 'file',
owner => $user,
owner => 'root',
group => $group,
notify => Class['prometheus::service_reload'],
content => $alerts.to_yaml,
Expand Down
38 changes: 19 additions & 19 deletions manifests/apache_exporter.pp
Original file line number Diff line number Diff line change
Expand Up @@ -78,31 +78,31 @@
class prometheus::apache_exporter (
String[1] $scrape_uri,
String[1] $download_extension,
Variant[Stdlib::HTTPSUrl, Stdlib::HTTPUrl] $download_url_base,
Prometheus::Uri $download_url_base,
Array[String[1]] $extra_groups,
String[1] $group,
String[1] $package_ensure,
String[1] $package_name,
String[1] $user,
String[1] $version,
Boolean $purge_config_dir = true,
Boolean $restart_on_change = true,
Boolean $service_enable = true,
String[1] $service_ensure = 'running',
String[1] $init_style = $prometheus::init_style,
String[1] $install_method = $prometheus::install_method,
Boolean $manage_group = true,
Boolean $manage_service = true,
Boolean $manage_user = true,
String[1] $os = $prometheus::os,
String $extra_options = '',
Optional[Variant[Stdlib::HTTPSUrl, Stdlib::HTTPUrl]] $download_url = undef,
String[1] $config_mode = $prometheus::config_mode,
String[1] $arch = $prometheus::real_arch,
Stdlib::Absolutepath $bin_dir = $prometheus::bin_dir,
Boolean $export_scrape_job = false,
Stdlib::Port $scrape_port = 9117,
String[1] $scrape_job_name = 'apache',
Boolean $purge_config_dir = true,
Boolean $restart_on_change = true,
Boolean $service_enable = true,
String[1] $service_ensure = 'running',
String[1] $init_style = $prometheus::init_style,
String[1] $install_method = $prometheus::install_method,
Boolean $manage_group = true,
Boolean $manage_service = true,
Boolean $manage_user = true,
String[1] $os = $prometheus::os,
String $extra_options = '',
Optional[Prometheus::Uri] $download_url = undef,
String[1] $config_mode = $prometheus::config_mode,
String[1] $arch = $prometheus::real_arch,
Stdlib::Absolutepath $bin_dir = $prometheus::bin_dir,
Boolean $export_scrape_job = false,
Stdlib::Port $scrape_port = 9117,
String[1] $scrape_job_name = 'apache',
) inherits prometheus {

#Please provide the download_url for versions < 0.9.0
Expand Down
2 changes: 1 addition & 1 deletion manifests/blackbox_exporter.pp
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@

file { $config_file:
ensure => present,
owner => $user,
owner => 'root',
group => $group,
mode => $config_mode,
content => template('prometheus/blackbox_exporter.yaml.erb'),
Expand Down
Loading