37 changes: 35 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,40 @@ 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.

## [v11.0.0](https://github.com/voxpupuli/puppet-prometheus/tree/v11.0.0) (2021-01-17)
## [v11.1.0](https://github.com/voxpupuli/puppet-prometheus/tree/v11.1.0) (2021-04-25)

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

**Implemented enhancements:**

- puppetlabs/stdlib: Allow 7.x [\#545](https://github.com/voxpupuli/puppet-prometheus/pull/545) ([bastelfreak](https://github.com/bastelfreak))
- camptocamp/systemd: allow 3.x [\#544](https://github.com/voxpupuli/puppet-prometheus/pull/544) ([bastelfreak](https://github.com/bastelfreak))
- puppet/archive: allow 5.x [\#543](https://github.com/voxpupuli/puppet-prometheus/pull/543) ([bastelfreak](https://github.com/bastelfreak))
- bird\_exporter: Update 1.2.4 -\> 1.2.5 [\#538](https://github.com/voxpupuli/puppet-prometheus/pull/538) ([bastelfreak](https://github.com/bastelfreak))
- Implement unbound\_exporter [\#498](https://github.com/voxpupuli/puppet-prometheus/pull/498) ([bastelfreak](https://github.com/bastelfreak))
- Add Bind exporter [\#312](https://github.com/voxpupuli/puppet-prometheus/pull/312) ([anarcat](https://github.com/anarcat))

**Fixed bugs:**

- fix quoting in apache exporter [\#541](https://github.com/voxpupuli/puppet-prometheus/pull/541) ([anarcat](https://github.com/anarcat))
- fix default scrape\_uri in apache\_exporter [\#532](https://github.com/voxpupuli/puppet-prometheus/pull/532) ([anarcat](https://github.com/anarcat))
- Fix download of beanstalkd\_exporter for versions newer than 1.0.0 [\#508](https://github.com/voxpupuli/puppet-prometheus/pull/508) ([TuningYourCode](https://github.com/TuningYourCode))
- Update network denendency in daemon systemd template [\#489](https://github.com/voxpupuli/puppet-prometheus/pull/489) ([moonape1226](https://github.com/moonape1226))

**Closed issues:**

- Support for IPMI exporter [\#521](https://github.com/voxpupuli/puppet-prometheus/issues/521)
- env\_file\_path has no effect on prometheus::server [\#323](https://github.com/voxpupuli/puppet-prometheus/issues/323)

**Merged pull requests:**

- check node exporter config file instead of bird in node exporter test [\#531](https://github.com/voxpupuli/puppet-prometheus/pull/531) ([anarcat](https://github.com/anarcat))
- pass options through env\_vars if no control over init files [\#530](https://github.com/voxpupuli/puppet-prometheus/pull/530) ([anarcat](https://github.com/anarcat))
- convert daemon.env template to EPP [\#529](https://github.com/voxpupuli/puppet-prometheus/pull/529) ([anarcat](https://github.com/anarcat))
- deploy env\_file\_path on server [\#527](https://github.com/voxpupuli/puppet-prometheus/pull/527) ([anarcat](https://github.com/anarcat))
- Support for IPMI exporter [\#522](https://github.com/voxpupuli/puppet-prometheus/pull/522) ([benibr](https://github.com/benibr))

## [v11.0.0](https://github.com/voxpupuli/puppet-prometheus/tree/v11.0.0) (2021-01-18)

[Full Changelog](https://github.com/voxpupuli/puppet-prometheus/compare/v10.2.0...v11.0.0)

Expand Down Expand Up @@ -607,7 +640,7 @@ Debian 8 is EOL since a few months now. This release will be the last with offic
- Ruby 1.8 compatibility \(Agent-side\) [\#146](https://github.com/voxpupuli/puppet-prometheus/pull/146) ([sathieu](https://github.com/sathieu))
- Fail silently when service is not installed [\#145](https://github.com/voxpupuli/puppet-prometheus/pull/145) ([vladgh](https://github.com/vladgh))
- Add support for snmp\_exporter [\#125](https://github.com/voxpupuli/puppet-prometheus/pull/125) ([sathieu](https://github.com/sathieu))
- new feature - consul\_exporter [\#36](https://github.com/voxpupuli/puppet-prometheus/pull/36) ([pjfbashton](https://github.com/pjfbashton))
- new feature - consul\_exporter [\#36](https://github.com/voxpupuli/puppet-prometheus/pull/36) ([pavloos](https://github.com/pavloos))

## [v4.0.0](https://github.com/voxpupuli/puppet-prometheus/tree/v4.0.0) (2018-01-04)

Expand Down
244 changes: 244 additions & 0 deletions REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ The package method needs specific yum or apt repo settings which are not made ye
* [`prometheus::server`](#prometheusserver): class to manage the actual prometheus server. This class gets called from the init.pp
* [`prometheus::snmp_exporter`](#prometheussnmp_exporter): This module manages prometheus snmp_exporter
* [`prometheus::statsd_exporter`](#prometheusstatsd_exporter): This module manages prometheus statsd_exporter
* [`prometheus::unbound_exporter`](#prometheusunbound_exporter): This module manages prometheus unbound exporter. The exporter needs to be compiled by hand! (https://github.com/kumina/unbound_exporter/issues/21)
* [`prometheus::varnish_exporter`](#prometheusvarnish_exporter): This module manages prometheus varnish_exporter

#### Private Classes
Expand Down Expand Up @@ -7926,6 +7927,249 @@ Data type: `Optional[Hash]`

Default value: ``undef``

### `prometheus::unbound_exporter`

This module manages prometheus unbound exporter. The exporter needs to be compiled by hand! (https://github.com/kumina/unbound_exporter/issues/21)

* **See also**
* https://github.com/kumina/unbound_exporter

#### Parameters

The following parameters are available in the `prometheus::unbound_exporter` class.

##### `arch`

Data type: `String[1]`

Architecture

Default value: `$prometheus::real_arch`

##### `bin_dir`

Data type: `String[1]`

Directory where binaries are located

Default value: `'/usr/local/bin'`

##### `download_extension`

Data type: `String`

Extension for the release binary archive

Default value: `''`

##### `download_url`

Data type: `Optional[String]`

Complete URL corresponding to the where the release binary archive can be downloaded

Default value: ``undef``

##### `download_url_base`

Data type: `String[1]`

Base URL for the binary archive

Default value: `'https://github.com/kumina/unbound_exporter/releases'`

##### `extra_groups`

Data type: `Array[String]`

Extra groups to add the binary user to

Default value: `['unbound']`

##### `extra_options`

Data type: `String`

Extra options added to the startup command

Default value: `''`

##### `group`

Data type: `String[1]`

Group under which the binary is running

Default value: `'unbound-exporter'`

##### `init_style`

Data type: `Prometheus::Initstyle`

Service startup scripts style (e.g. rc, upstart or systemd)

Default value: `$facts['service_provider']`

##### `install_method`

Data type: `String[1]`

Installation method: url or package (only url is supported currently)

Default value: `'none'`

##### `manage_group`

Data type: `Boolean`

Whether to create a group for or rely on external code for that

Default value: ``true``

##### `manage_service`

Data type: `Boolean`

Should puppet manage the service?

Default value: ``true``

##### `manage_user`

Data type: `Boolean`

Whether to create user or rely on external code for that

Default value: ``true``

##### `os`

Data type: `String[1]`

Operating system (linux is the only one supported)

Default value: `downcase($facts['kernel'])`

##### `package_ensure`

Data type: `String[1]`

If package, then use this for package ensure

Default value: `'installed'`

##### `package_name`

Data type: `String[1]`

The binary package name - not available yet

Default value: `'unbound_exporter'`

##### `purge_config_dir`

Data type: `Boolean`

Purge config files no longer generated by Puppet

Default value: ``true``

##### `restart_on_change`

Data type: `Boolean`

Should puppet restart the service on configuration change?

Default value: ``true``

##### `service_enable`

Data type: `Boolean`

Whether to enable the service from puppet

Default value: ``true``

##### `service_ensure`

Data type: `Stdlib::Ensure::Service`

State ensured for the service

Default value: `'running'`

##### `service_name`

Data type: `String[1]`

Name of the unbound exporter service

Default value: `'unbound_exporter'`

##### `user`

Data type: `String[1]`

User which runs the service

Default value: `'unbound-exporter'`

##### `version`

Data type: `String[1]`

The binary release version

Default value: `'0.3'`

##### `export_scrape_job`

Data type: `Boolean`



Default value: ``false``

##### `scrape_port`

Data type: `Stdlib::Port`



Default value: `9167`

##### `scrape_job_name`

Data type: `String[1]`



Default value: `'unbound'`

##### `scrape_job_labels`

Data type: `Optional[Hash]`



Default value: ``undef``

##### `bin_name`

Data type: `Optional[String[1]]`



Default value: ``undef``

##### `env_vars`

Data type: `Hash`



Default value: `{ 'GODEBUG' => 'x509ignoreCN=0' }`

### `prometheus::varnish_exporter`

This module manages prometheus varnish_exporter
Expand Down
4 changes: 2 additions & 2 deletions data/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ prometheus::node_exporter::user: 'node-exporter'
prometheus::node_exporter::version: '1.0.1'
prometheus::beanstalkd_exporter::exporter_listen: ':9371'
prometheus::beanstalkd_exporter::beanstalkd_address: '127.0.0.1:11300'
prometheus::beanstalkd_exporter::download_extension: 'tar.gz'
prometheus::beanstalkd_exporter::download_extension: ''
prometheus::beanstalkd_exporter::download_url_base: 'https://github.com/messagebird/beanstalkd_exporter/releases'
prometheus::beanstalkd_exporter::extra_groups: []
prometheus::beanstalkd_exporter::group: 'beanstalkd-exporter'
Expand Down Expand Up @@ -319,7 +319,7 @@ prometheus::collectd_exporter::service_name: 'collectd_exporter'
prometheus::collectd_exporter::user: 'collectd-exporter'
prometheus::collectd_exporter::version: '0.5.0'
prometheus::collectd_exporter::options: ''
prometheus::apache_exporter::scrape_uri: 'http://localhost/server-status?auto'
prometheus::apache_exporter::scrape_uri: 'http://localhost/server-status/?auto'
prometheus::apache_exporter::download_extension: 'tar.gz'
prometheus::apache_exporter::download_url_base: 'https://github.com/Lusitaniae/apache_exporter/releases'
prometheus::apache_exporter::extra_groups: []
Expand Down
4 changes: 2 additions & 2 deletions manifests/apache_exporter.pp
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@
}

if versioncmp($version, '0.8.0') < 0 {
$options = "-scrape_uri \"${scrape_uri}\" ${extra_options}"
$options = "-scrape_uri '${scrape_uri}' ${extra_options}"
} else {
$options = "--scrape_uri \"${scrape_uri}\" ${extra_options}"
$options = "--scrape_uri '${scrape_uri}' ${extra_options}"
}

prometheus::daemon { $service_name:
Expand Down
18 changes: 12 additions & 6 deletions manifests/beanstalkd_exporter.pp
Original file line number Diff line number Diff line change
Expand Up @@ -87,24 +87,30 @@
String[1] $scrape_job_name = 'beanstalkd',
Optional[Hash] $scrape_job_labels = undef,
) inherits prometheus {
#Please provide the download_url for versions < 0.9.0
$real_download_url = pick($download_url,"${download_url_base}/download/${version}/${package_name}-${version}.${os}-${arch}.${download_extension}")
# Download url differs between 1.0.0 and 1.0.1 onwards
if( versioncmp($version, '1.0.0') < 1 ) {
$real_download_url = pick($download_url,"${download_url_base}/download/${version}/${package_name}-${version}.${os}-${arch}.${download_extension}")
$options = "-listen-address ${exporter_listen} -config ${config} -mapping-config ${mapping_config} ${extra_options}"
$real_file_ensure = 'file'
} else {
$real_download_url = pick($download_url,"${download_url_base}/download/${version}/${package_name}-${version}.${os}-${arch}")
$options = "-web.listen-address ${exporter_listen} -beanstalkd.address ${beanstalkd_address} ${extra_options}"
$real_file_ensure = 'absent'
}

$notify_service = $restart_on_change ? {
true => Service[$service_name],
default => undef,
}

$options = "-listen-address ${exporter_listen} -config ${config} -mapping-config ${mapping_config} ${extra_options}"

file { $config:
ensure => file,
ensure => $real_file_ensure,
content => $beanstalkd_address,
before => Prometheus::Daemon['beanstalkd_exporter'],
}

file { $mapping_config:
ensure => file,
ensure => $real_file_ensure,
before => Prometheus::Daemon['beanstalkd_exporter'],
}

Expand Down
Loading