prometheus
Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x
- Puppet >= 5.5.8 < 7.0.0
- Archlinux , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-prometheus', '8.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-prometheus
Table of Contents
Compatibility
Prometheus Version | Recommended Puppet Module Version |
---|---|
>= 0.16.2 | latest |
node_exporter >= 0.15.0 consul_exporter >= 0.3.0
This module supports below Prometheus architectures:
- x86_64/amd64
- i386
- armv71 (Tested on raspberry pi 3)
Background
This module automates the install and configuration of Prometheus monitoring tool: Prometheus web site
What This Module Affects
- Installs the prometheus daemon, alertmanager or exporters(via url or package)
- The package method was implemented, but currently there isn't any package for prometheus
- Optionally installs a user to run it under (per exporter)
- Installs a configuration file for prometheus daemon (/etc/prometheus/prometheus.yaml) or for alertmanager (/etc/prometheus/alert.rules)
- Manages the services via upstart, sysv, or systemd
- Optionally creates alert rules
- The following exporters are currently implemented: node_exporter, statsd_exporter, process_exporter, haproxy_exporter, mysqld_exporter, blackbox_exporter, consul_exporter, redis_exporter, varnish_exporter, graphite_exporter, postgres_exporter, collectd_exporter
Usage
Notice about breaking changes
Version 5.0.0 and older of this module allowed you to deploy the prometheus server by doing a simple include prometheus
.
We introduced a new class layout in
version 6. By default, including the prometheus
class won't deploy the server now.
You need to include the prometheus::server
class for this (which has the same
parameters that prometheus
had). An alternative approach is to set the
manage_prometheus_server
parameter to true in the prometheus
class. Background information about this change is described in the related pull request and the issue.
For more information regarding class parameters please take a look at the class docstrings.
Prometheus Server (versions < 1.0.0)
class { 'prometheus::server':
global_config => {
'scrape_interval' => '15s',
'evaluation_interval' => '15s',
'external_labels' => {'monitor' => 'master'},
},
rule_files => ['/etc/prometheus/alert.rules'],
scrape_configs => [
{
'job_name' => 'prometheus',
'scrape_interval' => '10s',
'scrape_timeout' => '10s',
'target_groups' => [
{
'targets' => ['localhost:9090'],
'labels' => {'alias' => 'Prometheus'}
},
],
},
],
}
Prometheus Server (versions >= 1.0.0 < 2.0.0)
class { 'prometheus::server':
version => '1.0.0',
scrape_configs => [
{
'job_name' => 'prometheus',
'scrape_interval' => '30s',
'scrape_timeout' => '30s',
'static_configs' => [
{
'targets' => ['localhost:9090'],
'labels' => {
'alias' => 'Prometheus',
},
},
],
},
],
alerts => [
{
'name' => 'InstanceDown',
'condition' => 'up == 0',
'timeduration' => '5m',
'labels' => [
{
'name' => 'severity',
'content' => 'page',
},
],
'annotations' => [
{
'name' => 'summary',
'content' => 'Instance {{ $labels.instance }} down',
},
{
'name' => 'description',
'content' => '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.',
},
],
},
],
extra_options => '-alertmanager.url http://localhost:9093 -web.console.templates=/opt/prometheus-1.0.0.linux-amd64/consoles -web.console.libraries=/opt/prometheus-1.0.0.linux-amd64/console_libraries',
localstorage => '/prometheus/prometheus',
}
Prometheus Server (versions >= 2.0.0)
class { 'prometheus::server':
version => '2.4.3',
alerts => {
'groups' => [
{
'name' => 'alert.rules',
'rules' => [
{
'alert' => 'InstanceDown',
'expr' => 'up == 0',
'for' => '5m',
'labels' => {
'severity' => 'page',
},
'annotations' => {
'summary' => 'Instance {{ $labels.instance }} down',
'description' => '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
}
},
],
},
],
},
scrape_configs => [
{
'job_name' => 'prometheus',
'scrape_interval' => '10s',
'scrape_timeout' => '10s',
'static_configs' => [
{
'targets' => [ 'localhost:9090' ],
'labels' => {
'alias' => 'Prometheus',
}
}
],
},
],
}
When using prometheus >= 2.0, use the new yaml format for rules and alerts.
Which in Puppet means the alerts looks like this:
alerts => {
'groups' => [
{
'name' => 'alert.rules',
'rules' => [
{
'alert' => 'InstanceDown',
'expr' => 'up == 0',
'for' => '5m',
'labels' => {
'severity' => 'page',
},
'annotations' => {
'summary' => 'Instance {{ $labels.instance }} down',
'description' => '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.',
}
}
],
},
],
},
And that results in this YAML configuration.
---
alerts:
groups:
- name: 'alert.rules'
rules:
- alert: 'InstanceDown'
expr: 'up == 0'
for: '5m'
labels:
severity: 'page'
annotations:
summary: 'Instance {{ $labels.instance }} down'
description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
Monitored Nodes
include prometheus::node_exporter
or:
class { 'prometheus::node_exporter':
version => '0.12.0',
collectors_disable => ['loadavg', 'mdadm'],
extra_options => '--collector.ntp.server ntp1.orange.intra',
}
Example
Real Prometheus >=2.0.0 setup example including alertmanager and slack_configs.
class { 'prometheus':
manage_prometheus_server => true,
version => '2.0.0',
alerts => {
'groups' => [
{
'name' => 'alert.rules',
'rules' => [
{
'alert' => 'InstanceDown',
'expr' => 'up == 0',
'for' => '5m',
'labels' => {'severity' => 'page'},
'annotations' => {
'summary' => 'Instance {{ $labels.instance }} down',
'description' => '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
},
},
],
},
],
},
scrape_configs => [
{
'job_name' => 'prometheus',
'scrape_interval' => '10s',
'scrape_timeout' => '10s',
'static_configs' => [
{
'targets' => ['localhost:9090'],
'labels' => {'alias' => 'Prometheus'}
}
],
},
{
'job_name' => 'node',
'scrape_interval' => '5s',
'scrape_timeout' => '5s',
'static_configs' => [
{
'targets' => ['nodexporter.domain.com:9100'],
'labels' => {'alias' => 'Node'}
},
],
},
],
alertmanagers_config => [
{
'static_configs' => [{'targets' => ['localhost:9093']}],
},
],
}
class { 'prometheus::alertmanager':
version => '0.13.0',
route => {
'group_by' => ['alertname', 'cluster', 'service'],
'group_wait' => '30s',
'group_interval' => '5m',
'repeat_interval' => '3h',
'receiver' => 'slack',
},
receivers => [
{
'name' => 'slack',
'slack_configs' => [
{
'api_url' => 'https://hooks.slack.com/services/ABCDEFG123456',
'channel' => '#channel',
'send_resolved' => true,
'username' => 'username'
},
],
},
],
}
And if you want to use Hiera to declare the values instead, you can simply include the prometheus
class and set your Hiera data as shown below:
Puppet Code
include prometheus
Hiera Data (in yaml)
---
prometheus::manage_prometheus_server: true
prometheus::version: '2.0.0'
prometheus::alerts:
groups:
- name: 'alert.rules'
rules:
- alert: 'InstanceDown'
expr: 'up == 0'
for: '5m'
labels:
severity: 'page'
annotations:
summary: 'Instance {{ $labels.instance }} down'
description: '{{ $labels.instance }} of job {{ $labels.job }} has been
down for more than 5 minutes.'
prometheus::scrape_configs:
- job_name: 'prometheus'
scrape_interval: '10s'
scrape_timeout: '10s'
static_configs:
- targets:
- 'localhost:9090'
labels:
alias: 'Prometheus'
- job_name: 'node'
scrape_interval: '10s'
scrape_timeout: '10s'
static_configs:
- targets:
- 'nodexporter.domain.com:9100'
labels:
alias: 'Node'
prometheus::alertmanagers_config:
- static_configs:
- targets:
- 'localhost:9093'
prometheus::alertmanager::version: '0.13.0'
prometheus::alertmanager::route:
group_by:
- 'alertname'
- 'cluster'
- 'service'
group_wait: '30s'
group_interval: '5m'
repeat_interval: '3h'
receiver: 'slack'
prometheus::alertmanager::receivers:
- name: 'slack'
slack_configs:
- api_url: 'https://hooks.slack.com/services/ABCDEFG123456'
channel: "#channel"
send_resolved: true
username: 'username'
Test your commit with vagrant https://github.com/kalinux/vagrant-puppet-prometheus.git
Known issues
In version 0.1.14 of this module the alertmanager was configured to run as the service alert_manager
. This has been changed in version 0.2.00 to be alertmanager
.
Do not use version 1.0.0 of Prometheus: https://groups.google.com/forum/#!topic/prometheus-developers/vuSIxxUDff8 ; it is not compatible with this module!
Even if the module has templates for several linux distributions, only RedHat family distributions were tested.
This module has unit tests for CentOS/RHEL, Debian, Ubuntu and Archlinux. Acceptance tests are executed for CentOS, Debian and Ubuntu. Other operating systems may work but are untested.
Development
This project contains tests for rspec-puppet.
Quickstart to run all linter and unit tests:
bundle install --path .vendor/ --without system_tests --without development --without release
bundle exec rake test
Authors
puppet-prometheus is maintained by Vox Pupuli, it was written by brutus333.
Changelog
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.
v8.0.0 (2019-11-21)
Breaking changes:
- Update default Prometheus version from 2.11.1 to 2.14.0 #392 (bastelfreak)
- Update default redis_exporter version to 1.3.4 #391 (alexjfisher)
- drop Ubuntu 14.04 support #384 (bastelfreak)
Implemented enhancements:
- Add
scrape_job_labels
parameter to exporters #388 (alexjfisher) - Support redis_exporter version >= 1.0.0 #387 (alexjfisher)
- Accept
Sensitive
mysqld_exportercnf_password
#386 (alexjfisher)
Fixed bugs:
- Prometheus daemon is not restarting when command-line arguments are changed #382
- Fix prometheus not restarting after config changes on systemd based systems #390 (alexjfisher)
- Add service restart on package change #376 (rwaffen)
Closed issues:
v7.1.0 (2019-11-05)
Implemented enhancements:
- Change Prometheus port #52
- Addd RHEL8 support / disable timesync for docker images #378 (bastelfreak)
- Add prom command line args and validation #377 (hooten)
- exporters: set /usr/bin/nologin as shell #372 (bastelfreak)
- Expose env_vars to prometheus::pushprox_client class #369 (mcanevet)
- Allow s3 sources for download uris #368 (hooten)
- Make elasticsearch usable with older version #364 (zonArt)
- Archlinux: support node_exporter installation as package #362 (bastelfreak)
- make config files readonly to daemons #324 (anarcat)
Fixed bugs:
- Archlinux: Do not manage node_exporter group/user #373 (bastelfreak)
- user/group: prohibit empty strings #371 (bastelfreak)
- Archlinux: set correct binary name for node_exporter #365 (bastelfreak)
Closed issues:
Merged pull requests:
v7.0.0 (2019-07-19)
Breaking changes:
- apache_exporter: update 0.5.0->0.7.0 #358 (bastelfreak)
- varnish_exporter: update 1.4->1.5 #356 (bastelfreak)
- postgres_exporter: update 0.4.6->0.5.1 #354 (bastelfreak)
- blackbox_exporter: update 0.7.0->0.14.0 & Add acceptance tests #353 (bastelfreak)
- statsd_exporter: update 0.8.0->0.12.1 #352 (bastelfreak)
- snmp_exporter: Update 0.7.0->0.15.0 & Add acceptance tests #351 (bastelfreak)
- consul_exporter: Update 0.4.0->0.5.0 #349 (bastelfreak)
- mysqld_exporter: update 0.9.0->0.12.0 #348 (bastelfreak)
- consul_exporter: update 0.3.0->0.4.0 #344 (bastelfreak)
- nginx_vts_exporter: update 0.6->0.10.4 & Add acceptance tests #342 (bastelfreak)
- pushgateway: update 0.4.0->0.8.0 & enhance unit tests #341 (bastelfreak)
- process_exporter: update 0.1.0->0.5.0 & add acceptance tests #340 (bastelfreak)
- haproxy_exporter: update 0.9.0->0.10.0 #338 (bastelfreak)
- mesos_exporter: update 1.0.0->1.1.2 & add acceptance tests #337 (bastelfreak)
- node_exporter: update 0.16.0->0.18.1 #336 (bastelfreak)
- alertmanager: update 0.5.1->0.18.0 #335 (bastelfreak)
- prometheus: update 2.4.3->2.11.1 #334 (bastelfreak)
- Feature update to newest elasticsearch exporter version: 1.0.2rc1 -> 1.1.0rc1 #313 (snarlistic)
- modulesync 2.6.0 and drop Puppet 4 #305 (bastelfreak)
- remove version path splitting for process exporter #292 (moon-hawk)
- update haproxy exporter default to 0.9.0, fix options and allow unix … #280 (dynek)
- bump prometheus version: 1.5.2->2.4.3 #276 (bastelfreak)
- bump node_exporter version: 0.15.2->0.16.0 #274 (othalla)
- Refactor statsd_exporter class to support version >= 0.5.0; bump from 0.3.0->0.8.0 #271 (wiebe)
Implemented enhancements:
- Add flag for managing the config file #319 (bastelfreak)
- add ability to export/collect scrape_jobs #304 (anarcat)
- Add support for the aarch64 architecture #300 (ralimi)
- Add
max_open_files
parameter for systemd systems #298 (alexjfisher) - Add custom datasource possibilities for postgres_exporter #289 (romdav00)
- Test with unix socket for scraping uri #286 (othalla)
- Add apache exporter support #284 (wiebe)
- Add bin_name override to daemon.pp #281 (dudemcbacon)
- Add MacOS support #279 (hatvik)
- Add support for armv6 and amrv5 #278 (wiebe)
- Validate Alertmanager config #277 (allangood)
- Allow override of extract command for archives #54 (atward)
Fixed bugs:
- Pupppet sysv fails due to -log.format option #268
- pushgateway: use correct CPU architecture & add acceptance tests #346 (bastelfreak)
- mesos_exporter: add unit tests & Fix bug/typo in parameter assignment #339 (bastelfreak)
- Link the amtool only if it is installed via direct download. #328 (sezuan)
- issue #306: Fix broken startup scripts #318 (bastelfreak)
- subbing out @name in stop function with an ambiguous name. #314 (strings48066)
- Debian daemon template: Split and escape args to avoid quotes passed as args #299 (ntesteca)
- fix for CentOS6 with sysv #290 (spali)
- sysv, armv6/7 fixes #270 (defenestration)
Closed issues:
- amtool is unconditionally linked from /opt/, even if it is installed differently. #327
- Next Tag ? #316
- Process-exporter sysv init stop process command not found #311
- Bad formed prometheus.service #306
- apache_exporter unable to contact apache on Debian 7 #296
- Unable to force arch for installing exporter #265
- Configuration of prometheus::server fails when looking up configname #254
- support statsd_exporter >= 0.5.0 #248
- Service fails to start under systemd #244
- Add support for exporting/collecting *_exporter configs #126
Merged pull requests:
- Cleanup acceptance tests #347 (bastelfreak)
- Archlinux: update prometheus 2.2.0->2.10.0 #345 (bastelfreak)
- Add Pushprox client and proxy #333 (mcanevet)
- alertmanager - Add flag for managing the config file #332 (daniellawrence)
- Make mongodb usable with newer version #331 (zonArt)
- prohibit empty service_provider fact #330 (bastelfreak)
- Allow
puppetlabs/stdlib
6.x andpuppet/archive
4.x #321 (alexjfisher) - Improve the code examples in the README #301 (natemccurdy)
- cleanup duplicated entries in case block #295 (bastelfreak)
- Add & refactor haproxy tests for scraping uri #288 (othalla)
- Haproxy spec improvements #287 (othalla)
v6.4.0 (2018-10-21)
Implemented enhancements:
- Add armv7 support #273 (othalla)
- Feature/collectd exporter #272 (mindriot88)
- consul_exporter improvement for version 0.4.0 and above #264 (RogierO)
v6.3.0 (2018-10-06)
Implemented enhancements:
- Use more compatible STDERR/STDOUT redirection syntax in sysv init script #259 (tkuther)
- allow puppetlabs/stdlib 5.x #256 (bastelfreak)
- Add support for mysqld_exporter version 0.11.0 #247 (TheMeier)
Fixed bugs:
- Render alerts file properly depending on prometheus version #253 (bastelfreak)
Closed issues:
- expects a value #262
- prometheus::haproxy_exporter Failing #261
- User needs to adjust $extra_options for mysqld_exporter 0.11 and newer #255
- Error when installing Prometheus server #252
Merged pull requests:
- modulesync 2.1.0 and allow puppet 6.x #266 (bastelfreak)
- Fix misleading example of hieradata usage in blackbox_exporter #250 (bramblek1)
v6.2.0 (2018-08-02)
Implemented enhancements:
- add postgres exporter #236 (blupman)
- add ubuntu 18.04 support #235 (bastelfreak)
Fixed bugs:
- $rule_files parameter not respected #180
- enhance acceptance tests / dont quote web.external-url param #245 (bastelfreak)
- 180 rule files param #241 (bramblek1)
Merged pull requests:
v6.1.0 (2018-07-29)
Implemented enhancements:
Fixed bugs:
- Debian init script for prometheus daemon doesn't implement 'reload' #240
Closed issues:
- web.external-url #232
Merged pull requests:
- revert eff8dad2 - dont update bundler during travis runs #239 (bastelfreak)
v6.0.6 (2018-07-04)
Fixed bugs:
- Redirect SDTERR to SDTOUT for logfile #223 (mkrakowitzer)
- fix notify $service_name in the alertmanager #222 (thde)
Closed issues:
- haproxy_exporter New flag handling > 0.8 #227
v6.0.5 (2018-06-23)
Fixed bugs:
- The real_download_url in process-exporter manifest doesn't match to newer versions #212
- fix support for process_exporter 0.2.0 and newer #220 (tuxmea)
v6.0.4 (2018-06-21)
Merged pull requests:
- bump archive upper version boundary to \<4.0.0 #218 (bastelfreak)
v6.0.3 (2018-06-21)
Fixed bugs:
Closed issues:
- redis_exporter is downloaded every puppet run #215
v6.0.2 (2018-06-19)
Fixed bugs:
- Remove double quotes from source_labels value with gsub #213 (sebastianrakel)
v6.0.1 (2018-06-12)
Fixed bugs:
- Prometheus service wont run if installed from package #62
- start-stop scripts get vars from prometheus::server scope #210 (edevreede)
- use lookup instead of puppet variable in data #209 (tuxmea)
- upgrade stdlib dependancy to minium 4.25.0 #207 (blupman)
Closed issues:
- stdlib dependancy should be updated to 4.25 #206
v6.0.0 (2018-06-01)
Breaking changes:
- Install prometheus server via own class #194 (bastelfreak)
Implemented enhancements:
- allow to set prometheus server config filename #200 (bastelfreak)
- Add Graphite exporter #191 (bastelfreak)
- Convert to data-in-modules #178 (bastelfreak)
- Add Debian 9 support #176 (bastelfreak)
- Add Datatypes to all parameters #175 (bastelfreak)
- simplify init handling with service_provider fact #173 (bastelfreak)
- Add Archlinux support #172 (bastelfreak)
- add varnish_exporter #171 (blupman)
Fixed bugs:
- Wrong installation method on archlinux #195
- Wrong architecture used on CentOS 64bit for exporters #192
- fix hiera key {prometheus_,}install_method on arch #196 (bastelfreak)
- use correct architecture variable from init.pp in exporters #193 (bastelfreak)
- change default inhibit_rules to reflect previous params.pp config #181 (blupman)
Closed issues:
- node_exporterd defaults to older version #188
- node exporter also installs prometheus server on monitored node #184
- alertmanager default inhibit_rules error #182
Merged pull requests:
- Update node_exporter default version 0.14.0 -> 0.15.2 #204 (blupman)
- migrate more default values to hiera #201 (bastelfreak)
- dont use single class reference in an array #199 (bastelfreak)
- fix typos in the README.md #198 (bastelfreak)
- migrate server related classes to private scope #197 (bastelfreak)
- Rely on beaker-hostgenerator for docker nodesets #190 (ekohl)
- switch from topscope to class scope for variables #189 (bastelfreak)
- extend README.md #177 (bastelfreak)
- drop legacy debian 7 #174 (bastelfreak)
- allow camptocamp/systemd 2.X #170 (bastelfreak)
v5.0.0 (2018-02-26)
Breaking changes:
Merged pull requests:
v4.1.1 (2018-02-18)
Fixed bugs:
- puppetlabs/stdlib dependency appears to be 4.20.0 and not 4.13.1 #161
- raise stdlib version dependency #162 (tuxmea)
Merged pull requests:
- release 4.1.1 #163 (bastelfreak)
v4.1.0 (2018-02-14)
Implemented enhancements:
- Add support for rabbitmq_exporter #149
- Added redis_exporter module #157 (yackushevas)
- Add rabbitmq exporter #153 (costela)
- add envvars support to daemon #151 (costela)
- adding remote_write support #144 (gangsta)
Fixed bugs:
- Alert rule validation error #143
- Facter error on older distributions (Ubuntu Trusty) #142
- bug: alert rules are still 1.0 syntax for Prometheus 2 #120
- [minor] change default alerts to empty hash #152 (costela)
Closed issues:
- Add ability to set environment variables for daemons #150
Merged pull requests:
- release 4.1.0 #159 (bastelfreak)
- update blackbox_exporter.pp inline documentation #155 (ghost)
- Ruby 1.8 compatibility (Agent-side) #146 (sathieu)
- Fail silently when service is not installed #145 (vladgh)
- Add support for snmp_exporter #125 (sathieu)
- new feature - consul_exporter #36 (pjfbashton)
v4.0.0 (2018-01-04)
Breaking changes:
- Bump dependencies #124 (juniorsysadmin)
- Add validation to config changes #122 (costela)
Implemented enhancements:
- Install Promtool #31
- add explicit parameter for retention #137 (costela)
- Feature/alerts prometheus2 #127 (jhooyberghs)
Fixed bugs:
- not up to date dependencies: puppetlabs-stdlib should be >= 4.13.0 #123
- prometheus systemd wants and depends "multi-user.target" #139 (bastelfreak)
- daemon: explicitly pass provider to service #133 (costela)
Closed issues:
- Minor: add explicit retention option? #136
- node_exporter: "Could not find init script for node_exporter" #132
- Usage of
puppet
in custom alertmanager fact breaks if puppet not in $PATH (e.g. systemd service) #130
Merged pull requests:
- Use puppet internals to determine the state of the alert_manager #131 (vStone)
- Correct typo in documentation header for node_exporter #121 (jhooyberghs)
v3.1.0 (2017-11-26)
Implemented enhancements:
- add support for remote_read #109 (lobeck)
- messagebird/beanstalkd_exporter support #105 (TomaszUrugOlszewski)
- Add support for mesos exporter #59 (tahaalibra)
Fixed bugs:
- Unable to use this module on fresh alert manager instances #55
- older versions of puppet don't know about the --to_yaml option #119 (tuxmea)
- prometheus systemd needs network-online and started after multi-user. #117 (tuxmea)
- Disable line wrapping when converting full_config to yaml. #104 (benpollardcts)
- verify whether alert_manager is running #101 (tuxmea)
Closed issues:
- Error: Could not parse application options: invalid option: --to_yaml #118
- Flaky Acceptance Tests in TravisCI #114
- Update release on forge.puppetlabs.com #107
Merged pull requests:
- replace all Variant[Undef.. with Optional[... #103 (TheMeier)
- Tests for prometheus::daemon #87 (sathieu)
v3.0.0 (2017-10-31)
Breaking changes:
Implemented enhancements:
- Running puppet restarts service #37
- manage systemd unit files with camptocamp/systemd #90 (bastelfreak)
- add basic acceptance tests; fix wrong service handling in Ubuntu 14.04 #86 (bastelfreak)
- Fix restart_on_change and add tests to Class[prometheus] #83 (sathieu)
- add feature blackbox exporter #74 (bramblek1)
- Add nginx-vts-exporter #71 (viq)
- Add pushgateway #68 (mdebruyn-trip)
- Support prometheus >= 2.0 #48 (sathieu)
Fixed bugs:
- Blackbox_exporter manifest erroneously uses -config.file instead of --config.file parameter #96
- Service resource in
prometheus::daemon
does not depend oninit_style
dependent service description #94 - Wrong service reload command on ubuntu 14.04 #89
- blackbox exporters source_labels must be unquoted #98 (tuxmea)
- add service notification to systemd and sysv #95 (tuxmea)
- Fix isssue with node_exporter containing empty pid on RHEL6. #88 (mkrakowitzer)
Closed issues:
Merged pull requests:
- use double dash for blackbox exporter options #97 (tuxmea)
- Improve readability of README #93 (roidelapluie)
- Switch systemd restart from always to on-failure #92 (bastelfreak)
- Alertmanager global config should be a hash not an array #91 (attachmentgenie)
- Test content params of File resources in Class[prometheus] #84 (sathieu)
- drop legacy validate_bool calls #82 (bastelfreak)
- replace validate_* with datatypes in statsd_exporter #81 (bastelfreak)
- bump puppet version dependency to at least 4.7.1 #80 (bastelfreak)
- replace validate_* with datatypes in mysqld_exporter #79 (bastelfreak)
- replace validate_* with datatypes in process_exporter #78 (bastelfreak)
- replace validate_* with datatypes in haproxy_exporter #77 (bastelfreak)
- replace validate_* with datatypes in alertmanager #76 (bastelfreak)
- replace validate_* with datatypes in init #75 (bastelfreak)
- use Optional instead of Variant[Undef... #73 (TheMeier)
v2.0.0 (2017-10-12)
Breaking changes:
- release 2.0.0 #66 (bastelfreak)
- Add elasticsearch exporter. Drop Puppet 3 support. #51 (rbestbmj)
Implemented enhancements:
- Bump versions for archive and puppet dependency/support puppet5 #65 (bastelfreak)
- Add tests for elasticsearch_exporter and update a bit #64 (salekseev)
- Allow uncompressed daemons #53 (sathieu)
- Add mongodb_exporter #46 (salekseev)
Fixed bugs:
Closed issues:
- Upgrade to Puppet4? #34
Merged pull requests:
- Remove systemd module dependency and fix missing path for a exec #58 (juliantaylor)
- Update README.md #56 (steinbrueckri)
- Use default collectors if "collectors" param is empty #49 (sathieu)
- Feature/cleanup and document #44 (jhooyberghs)
- Reload config #43 (vide)
- Add param service_name to node_exporter class #40 (bastelfreak)
- backport changes to upstream #39 (bastelfreak)
1.0.0 (2017-03-26)
v1.0.0 (2017-03-26)
v0.2.4 (2017-03-13)
v0.2.3 (2017-03-12)
v0.2.1 (2017-02-04)
v0.2.2 (2017-01-31)
Closed issues:
- alertmanager systemd service doesnt start #28
Merged pull requests:
v0.2.0 (2016-12-27)
Closed issues:
- Allow to configure scrape options by file #17
- Generate tag. #12
- Extend Readme #7
- Prometheus Rule Files #6
- Prometheus Logging to file #5
Merged pull requests:
- Add Statsd Exporter, Mysqld Exporter, make exporters generic #27 (lswith)
- adding class to create alerts #24 (snubba)
v0.1.14 (2016-11-11)
Closed issues:
- Issue when install prometheus and alertmanager #23
Merged pull requests:
- allow specification of a custom template #25 (lobeck)
- Allow overriding shared_dir #22 (roidelapluie)
- Remove extra blank spaces at the end of lines #21 (roidelapluie)
- Fix AlertManager Class #20 (lswith)
v0.1.13 (2016-09-14)
Closed issues:
- Update forge version #10
Merged pull requests:
- Add console support #15 (mspaulding06)
- Add missing quotes to params file #14 (mspaulding06)
- Get rid of leading whitespace in generated configs #13 (mspaulding06)
- Bunch of changes to work against the latest prom releases #11 (brutus333)
- add support for newer releases of node_exporter #4 (patdowney)
- Systemd does not see all shutdowns as failures #3 (tarjei)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppet/archive (>= 2.2.0 < 5.0.0)
- puppetlabs/stdlib (>= 4.25.0 < 7.0.0)
- camptocamp/systemd (>= 1.1.1 < 3.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.