prometheus
Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- Archlinux , , , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-prometheus', '15.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-prometheus
Table of Contents
Compatibility
This module supports below Prometheus architectures:
- x86_64/amd64
- i386
- armv71 (Tested on raspberry pi 3)
The prometheus::ipmi_exporter
class has a dependency on saz/sudo Puppet module.
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
Example Usage
class { 'prometheus::server':
version => '2.52.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',
}
}
],
},
],
}
Monitored Nodes
include prometheus::node_exporter
or:
class { 'prometheus::node_exporter':
version => '0.27.0',
collectors_disable => ['loadavg', 'mdadm'],
}
Example
Real Prometheus >=2.0.0 setup example including alertmanager and slack_configs.
class { 'prometheus':
manage_prometheus_server => true,
version => '2.52.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.27.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.52.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.27.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'
Known issues
Postfix is not supported on Archlinux because it relies on puppet-postfix, which does not support Archlinux.
Development
See https://voxpupuli.org/docs/how_to_run_tests/ for information on how to run test locally.
Transfer Notice
This plugin was originally authored by brutus333
Reference
Table of Contents
Classes
Public Classes
prometheus
: This module manages prometheusprometheus::alertmanager
: This module manages prometheus alertmanagerprometheus::apache_exporter
: This module manages prometheus apache_exporterprometheus::beanstalkd_exporter
: This module manages prometheus beanstalkd_exporterprometheus::bind_exporter
: Class: prometheus::bind_exporter This module manages prometheus bind_exporterprometheus::bird_exporter
: This module manages prometheus bird exporterprometheus::blackbox_exporter
: This module manages prometheus blackbox_exporterprometheus::collectd_exporter
: This module manages prometheus node collectd_exporterprometheus::config
: Configuration class for prometheus monitoring systemprometheus::consul_exporter
: This module manages prometheus node consul_exporterprometheus::dellhw_exporter
: This module manages prometheus node dellhw_exporterprometheus::elasticsearch_exporter
: This module manages prometheus elasticsearch_exporterprometheus::graphite_exporter
: This module manages prometheus node graphite_exporterprometheus::grok_exporter
: This module manages prometheus grok_exporterprometheus::haproxy_exporter
: This module manages prometheus haproxy_exporterprometheus::install
: Install prometheusprometheus::ipmi_exporter
: This module manages prometheus node ipmi_exporter (https://github.com/soundcloud/ipmi_exporter)prometheus::ipsec_exporter
: This module manages prometheus node ipsec_exporterprometheus::jmx_exporter
: Installs and configures the Prometheus JMX exporterprometheus::memcached_exporter
: This module manages prometheus node memcached_exporterprometheus::mesos_exporter
: This module manages prometheus mesos_exporterprometheus::mongodb_exporter
: This module manages prometheus mongodb_exporterprometheus::mysqld_exporter
: manages prometheus mysqld_exporterprometheus::nginx_prometheus_exporter
: This module manages prometheus nginx exporterprometheus::nginx_vts_exporter
: This module manages prometheus nginx_vts_exporterprometheus::node_exporter
: This module manages prometheus node node_exporterprometheus::openldap_exporter
: This module manages prometheus openldap_exporterprometheus::openvpn_exporter
: This module manages prometheus node openvpn_exporterprometheus::php_fpm_exporter
: This module manages prometheus php-fpm exporterprometheus::postfix_exporter
: manages prometheus postfix_exporterprometheus::postgres_exporter
: This module manages prometheus node postgres_exporterprometheus::process_exporter
: This module manages prometheus process_exporterprometheus::puppetdb_exporter
: This module manages prometheus node puppetdb_exporterprometheus::pushgateway
: This module manages prometheus node pushgatewayprometheus::pushprox_client
: This module manages prometheus pushprox_clientprometheus::pushprox_proxy
: This module manages prometheus pushprox_proxyprometheus::rabbitmq_exporter
: This module manages prometheus rabbitmq_exporterprometheus::redis_exporter
: This module manages prometheus node redis_exporterprometheus::run_service
: This class is meant to be called from prometheus. It ensure the service is runningprometheus::sachet
: This module manages prometheus sachet (https://github.com/messagebird/sachet)prometheus::server
: class to manage the actual prometheus server. This class gets called from the init.ppprometheus::snmp_exporter
: This module manages prometheus snmp_exporterprometheus::ssh_exporter
: This module manages prometheus ssh_exporter (https://github.com/treydock/ssh_exporter)prometheus::ssl_exporter
: This module manages prometheus ssl_exporter (https://github.com/ribbybibby/ssl_exporter)prometheus::statsd_exporter
: This module manages prometheus statsd_exporterprometheus::systemd_exporter
: This module manages prometheus node redis_exporterprometheus::unbound_exporter
: This module manages prometheus unbound exporter.prometheus::varnish_exporter
: This module manages prometheus varnish_exporterprometheus::wireguard_exporter
: This module manages prometheus wireguard_exporter
Private Classes
prometheus::service_reload
: This class implements prometheus service reload without restarting the whole service when a config changes
Defined types
prometheus::alerts
: This module manages prometheus alert files for prometheusprometheus::daemon
: This define managed prometheus daemons that don't have their own classprometheus::scrape_job
: This module manages prometheus scrape jobs.
Data types
Prometheus::GsUri
: Type for a Google Cloud Storage URIPrometheus::Initstyle
: A type to represent the init style of a Prometheus servicePrometheus::Install
: type to enforce the different installation methods for our exporters.Prometheus::S3Uri
: Type for S3 URIsPrometheus::Uri
: A URI that can be used to fetch a Prometheus configuration filePrometheus::Web_config
: webconfig for the exporterPrometheus::Web_config::Http_server_config
: http_server_config of a exporter webconfigPrometheus::Web_config::Tls_server_config
: tls_server_config of a exporter webconfig
Classes
prometheus
This module manages prometheus
Parameters
The following parameters are available in the prometheus
class:
configname
manage_user
user
manage_group
purge_config_dir
group
bin_dir
shared_dir
arch
version
install_method
os
download_url
download_url_base
download_extension
package_name
package_ensure
config_dir
localstorage
extra_options
config_hash
config_defaults
config_template
config_mode
service_enable
service_ensure
service_name
manage_service
restart_on_change
init_style
global_config
rule_files
scrape_configs
include_default_scrape_configs
remote_read_configs
remote_write_configs
enable_tracing
tracing_config
alerts
extra_alerts
alert_relabel_config
alertmanagers_config
storage_retention
external_url
extract_command
collect_tag
collect_scrape_jobs
max_open_files
usershell
web_listen_address
web_read_timeout
web_max_connections
web_route_prefix
web_user_assets
web_enable_lifecycle
web_enable_admin_api
web_page_title
web_cors_origin
storage_retention_size
storage_no_lockfile
storage_allow_overlapping_blocks
storage_wal_compression
storage_flush_deadline
storage_read_sample_limit
storage_read_concurrent_limit
storage_read_max_bytes_in_frame
alert_for_outage_tolerance
alert_for_grace_period
alert_resend_delay
alertmanager_notification_queue_capacity
alertmanager_timeout
query_lookback_delta
query_timeout
query_max_concurrency
query_max_samples
log_level
log_format
config_show_diff
extra_groups
proxy_server
proxy_type
systemd_service_options
systemd_unit_options
systemd_install_options
env_file_path
manage_config_dir
manage_init_file
manage_config
manage_localstorage
manage_prometheus_server
configname
Data type: String[1]
the name of the configfile, defaults to prometheus.yaml or prometheus.yml on most operating systems
Default value: 'prometheus.yaml'
manage_user
Data type: Boolean
Whether to create user for prometheus or rely on external code for that
Default value: true
user
Data type: String
User running prometheus
Default value: 'prometheus'
manage_group
Data type: Boolean
Whether to create user for prometheus or rely on external code for that
Default value: true
purge_config_dir
Data type: Boolean
Purge config files no longer generated by Puppet
Default value: true
group
Data type: String
Group under which prometheus is running
Default value: 'prometheus'
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: '/usr/local/bin'
shared_dir
Data type: Stdlib::Absolutepath
Directory where shared files are located
Default value: '/usr/local/share/prometheus'
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $facts['os']['architecture']
version
Data type: String
Prometheus release
Default value: '2.52.0'
install_method
Data type: String
Installation method: url or package (only url is supported currently)
Default value: 'url'
os
Data type: String[1]
Operating system (linux is supported)
Default value: downcase($facts['kernel'])
download_url
Data type: Optional[String]
Complete URL corresponding to the Prometheus release, default to undef
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for prometheus
Default value: 'https://github.com/prometheus/prometheus/releases'
download_extension
Data type: String
Extension of Prometheus binaries archive
Default value: 'tar.gz'
package_name
Data type: String
Prometheus package name - not available yet
Default value: 'prometheus'
package_ensure
Data type: String
If package, then use this for package ensurel default 'latest'
Default value: 'latest'
config_dir
Data type: String
Prometheus configuration directory (default /etc/prometheus)
Default value: '/etc/prometheus'
localstorage
Data type: Stdlib::Absolutepath
Location of prometheus local storage (storage.local argument)
Default value: '/var/lib/prometheus'
extra_options
Data type: Optional[String[1]]
Extra options added to prometheus startup command
Default value: undef
config_hash
Data type: Hash
Startup config hash
Default value: {}
config_defaults
Data type: Hash
Startup config defaults
Default value: {}
config_template
Data type: String
Configuration template to use (template/prometheus.yaml.erb)
Default value: 'prometheus/prometheus.yaml.erb'
config_mode
Data type: String
Configuration file mode (default 0660)
Default value: '0640'
service_enable
Data type: Boolean
Whether to enable or not prometheus service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured from prometheus service (default 'running')
Default value: 'running'
service_name
Data type: String
Name of the prometheus service (default 'prometheus')
Default value: 'prometheus'
manage_service
Data type: Boolean
Should puppet manage the prometheus service? (default true)
Default value: true
restart_on_change
Data type: Boolean
Should puppet restart prometheus on configuration change? (default true) Note: this applies only to command-line options changes. Configuration options are always reloaded without restarting.
Default value: true
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $facts['service_provider']
global_config
Data type: Hash
Prometheus global configuration variables
Default value: { 'scrape_interval' => '15s', 'evaluation_interval' => '15s', 'external_labels' => { 'monitor' => 'master' } }
rule_files
Data type: Array
Prometheus rule files
Default value: []
scrape_configs
Data type: Array
Prometheus scrape configs
Default value: []
include_default_scrape_configs
Data type: Boolean
Include the module default scrape configs
Default value: true
remote_read_configs
Data type: Array
Prometheus remote_read config to scrape prometheus 1.8+ instances
Default value: []
remote_write_configs
Data type: Array
Prometheus remote_write config to scrape prometheus 1.8+ instances
Default value: []
enable_tracing
Data type: Boolean
Prometheus enables experimental tracing in Prometheus config file
Default value: false
tracing_config
Data type: Hash
Prometheus tracing configuration for the Prometheus config file
Default value: {}
alerts
Data type: Hash
alert rules to put in alerts.rules
Default value: {}
extra_alerts
Data type: Hash
Hash with extra alert rules to put in separate files.
Default value: {}
alert_relabel_config
Data type: Array
Prometheus alert relabel config under alerting
Default value: []
alertmanagers_config
Data type: Array
Prometheus managers config under alerting
Default value: []
storage_retention
Data type: String
How long to keep timeseries data. This is given as a duration like "100h" or "14d". Until prometheus 1.8.*, only durations understood by golang's time.ParseDuration are supported. Starting with prometheus 2, durations can also be given in days, weeks and years.
Default value: '360h'
external_url
Data type: Optional[Variant[Stdlib::HTTPUrl, Stdlib::Unixpath, String[1]]]
The URL under which Alertmanager is externally reachable (for example, if Alertmanager is served via a reverse proxy). Used for generating relative and absolute links back to Alertmanager itself. If omitted, relevant URL components will be derived automatically.
Default value: undef
extract_command
Data type: Optional[String[1]]
Custom command passed to the archive resource to extract the downloaded archive.
Default value: undef
collect_tag
Data type: Optional[String[1]]
Only collect scrape jobs tagged with this label. Allowing to split jobs over multiple prometheuses.
Default value: undef
collect_scrape_jobs
Data type: Array[Hash[String[1], Any]]
Array of scrape_configs. Format, e.g.:
- job_name: some_exporter scheme: https The jobs defined here will be used to collect resources exported via prometheus::daemon, creating the appropriate prometheus scrape configs for each endpoint. All scrape_config options can be passed as hash elements. Only the job_name is mandatory.
Default value: []
max_open_files
Data type: Optional[Integer]
The maximum number of file descriptors for the prometheus server.
Defaults to undef
, but set to a large integer to override your default OS limit.
Currently only implemented for systemd based service.
Default value: undef
usershell
Data type: Stdlib::Absolutepath
if requested, we create a user for prometheus or the exporters. The default shell is nologin. It can be overwritten to any valid path.
Default value: '/usr/bin/nologin'
web_listen_address
Data type: Optional[String[1]]
--web.listen-address="0.0.0.0:9090" Address to listen on for UI, API, and telemetry.
Default value: undef
web_read_timeout
Data type: Optional[String[1]]
--web.read-timeout=5m Maximum duration before timing out read of the request, and closing idle connections.
Default value: undef
web_max_connections
Data type: Optional[String[1]]
--web.max-connections=512 Maximum number of simultaneous connections.
Default value: undef
web_route_prefix
Data type: Optional[String[1]]
--web.route-prefix= Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.
Default value: undef
web_user_assets
Data type: Optional[String[1]]
--web.user-assets= Path to static asset directory, available at /user.
Default value: undef
web_enable_lifecycle
Data type: Boolean
--web.enable-lifecycle Enable shutdown and reload via HTTP request
Default value: false
web_enable_admin_api
Data type: Boolean
--web.enable-admin-api Enable API endpoints for admin control actions.
Default value: false
web_page_title
Data type: Optional[String[1]]
--web.page-title="Prometheus Time Series Collection and Processing Server" Document title of Prometheus instance.
Default value: undef
web_cors_origin
Data type: Optional[String[1]]
--web.cors.origin=".*" Regex for CORS origin. It is fully anchored. Example: 'https?://(domain1|domain2).com'
Default value: undef
storage_retention_size
Data type: Optional[String[1]]
--storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE [EXPERIMENTAL] Maximum number of bytes that can be stored for blocks. Units supported: KB, MB, GB, TB, PB. This flag is experimental and can be changed in future releases.
Default value: undef
storage_no_lockfile
Data type: Boolean
--storage.tsdb.no-lockfile Do not create lockfile in data directory.
Default value: false
storage_allow_overlapping_blocks
Data type: Boolean
--storage.tsdb.allow-overlapping-blocks [EXPERIMENTAL] Allow overlapping blocks, which in turn enables vertical compaction and vertical query merge.
Default value: false
storage_wal_compression
Data type: Boolean
--storage.tsdb.wal-compression Compress the tsdb WAL.
Default value: false
storage_flush_deadline
Data type: Optional[String[1]]
--storage.remote.flush-deadline= How long to wait flushing sample on shutdown or config reload.
Default value: undef
storage_read_sample_limit
Data type: Optional[String[1]]
--storage.remote.read-sample-limit=5e7 Maximum overall number of samples to return via the remote read interface, in a single query. 0 means no limit. This limit is ignored for streamed response types.
Default value: undef
storage_read_concurrent_limit
Data type: Optional[String[1]]
--storage.remote.read-concurrent-limit=10 Maximum number of concurrent remote read calls. 0 means no limit.
Default value: undef
storage_read_max_bytes_in_frame
Data type: Optional[String[1]]
--storage.remote.read-max-bytes-in-frame=1048576 Maximum number of bytes in a single frame for streaming remote read response types before marshalling. Note that client might have limit on frame size as well. 1MB as recommended by protobuf by default.
Default value: undef
alert_for_outage_tolerance
Data type: Optional[String[1]]
--rules.alert.for-outage-tolerance=1h Max time to tolerate prometheus outage for restoring "for" state of alert.
Default value: undef
alert_for_grace_period
Data type: Optional[String[1]]
--rules.alert.for-grace-period=10m Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than grace period.
Default value: undef
alert_resend_delay
Data type: Optional[String[1]]
--rules.alert.resend-delay=1m Minimum amount of time to wait before resending an alert to Alertmanager.
Default value: undef
alertmanager_notification_queue_capacity
Data type: Optional[String[1]]
--alertmanager.notification-queue-capacity=10000 The capacity of the queue for pending Alertmanager notifications.
Default value: undef
alertmanager_timeout
Data type: Optional[String[1]]
--alertmanager.timeout=10s Timeout for sending alerts to Alertmanager.
Default value: undef
query_lookback_delta
Data type: Optional[String[1]]
--query.lookback-delta=5m The maximum lookback duration for retrieving metrics during expression evaluations.
Default value: undef
query_timeout
Data type: Optional[String[1]]
--query.timeout=2m Maximum time a query may take before being aborted.
Default value: undef
query_max_concurrency
Data type: Optional[String[1]]
--query.max-concurrency=20 Maximum number of queries executed concurrently.
Default value: undef
query_max_samples
Data type: Optional[String[1]]
--query.max-samples=50000000 Maximum number of samples a single query can load into memory. Note that queries will fail if they try to load more samples than this into memory, so this also limits the number of samples a query can return. Enable remote service shutdown.
Default value: undef
log_level
Data type: Optional[Enum['debug', 'info', 'warn', 'error']]
--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]
Default value: undef
log_format
Data type: Optional[Enum['logfmt', 'json']]
--log.format=logfmt Output format of log messages. One of: [logfmt, json]
Default value: undef
config_show_diff
Data type: Boolean
Whether to show prometheus configuration file diff in the Puppet logs.
Default value: true
extra_groups
Data type: Array
Extra groups of which the user should be a part
Default value: []
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
systemd_service_options
Data type: Systemd::Unit::Service
Options for the service section of prometheus systemd unit file. Can be used to add custom options or to override default. Only used when init_style is set to systemd.
Default value: {}
systemd_unit_options
Data type: Systemd::Unit::Unit
Options for the unit section of prometheus systemd unit file. Can be used to add custom options or to override default. Only used when init_style is set to systemd.
Default value: {}
systemd_install_options
Data type: Systemd::Unit::Install
Options for the install section of prometheus systemd unit file. Can be used to add custom options or to override default. Only used when init_style is set to systemd.
Default value: {}
env_file_path
Data type: Stdlib::Absolutepath
manage_config_dir
Data type: Boolean
Default value: true
manage_init_file
Data type: Boolean
Default value: true
manage_config
Data type: Boolean
Default value: true
manage_localstorage
Data type: Boolean
Default value: true
manage_prometheus_server
Data type: Boolean
Default value: false
prometheus::alertmanager
Example: prometheus::alertmanager::time_intervals:
- name: weekend
time_intervals:
- weekdays: ['saturday','sunday']
Parameters
The following parameters are available in the prometheus::alertmanager
class:
arch
bin_dir
config_file
config_mode
download_extension
download_url
download_url_base
extra_groups
extra_options
global
group
inhibit_rules
init_style
install_method
manage_group
manage_service
manage_user
mute_time_intervals
time_intervals
os
package_ensure
package_name
config_dir
purge_config_dir
manage_config
validate_config
receivers
restart_on_change
reload_on_change
route
service_enable
service_ensure
service_name
storage_path
templates
user
version
proxy_server
proxy_type
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
config_file
Data type: Stdlib::Absolutepath
The path to put the configuration file
config_mode
Data type: String[1]
The permissions of the configuration files
Default value: $prometheus::config_mode
download_extension
Data type: String[1]
Extension for the release binary archive
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: Prometheus::Uri
Base URL for the binary archive
extra_groups
Data type: Array
Extra groups to add the binary user to
extra_options
Data type: Optional[String[1]]
Extra options added to the startup command
Default value: undef
global
Data type: Hash
The global alertmanager configuration. Example (also default): prometheus::alertmanager::global: smtp_smarthost: 'localhost:25' smtp_from: 'alertmanager@localhost'
group
Data type: String[1]
Group under which the binary is running
inhibit_rules
Data type: Array
An array of inhibit rules. Example (also default): prometheus::alertmanager::inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal:
- 'alertname'
- 'cluster'
- 'service'
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: String[1]
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
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 true)
Default value: true
manage_user
Data type: Boolean
Whether to create user or rely on external code for that
Default value: true
mute_time_intervals
Data type: Array[Hash]
Array of mute time intervals Not applied if time_intervals is defined Example: prometheus::alertmanager::mute_time_intervals:
- name: weekend
time_intervals:
- weekdays: ['saturday','sunday']
time_intervals
Data type: Array[Hash]
Array of time intervals, only supported with 0.24.0 and newer
os
Data type: String[1]
Operating system (linux is the only one supported)
Default value: $prometheus::os
package_ensure
Data type: String[1]
If package, then use this for package ensure default 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
config_dir
Data type: Stdlib::Absolutepath
The directory to put the configuration files
purge_config_dir
Data type: Boolean
Purge config files no longer generated by Puppet
Default value: true
manage_config
Data type: Boolean
Whether Puppet should manage Alertmanager config
Default value: true
validate_config
Data type: Boolean
Whether Puppet should validate the config with amtool when it is not installed with the URL method
Default value: false
receivers
Data type: Array
An array of receivers. Example (also default): prometheus::alertmanager::receivers:
- name: 'Admin'
email_configs:
- to: 'root@localhost'
restart_on_change
Data type: Boolean
Should puppet restart the service on configuration change? (default true)
Default value: true
reload_on_change
Data type: Boolean
Should puppet reload the service on configuration change? (default false)
Default value: false
route
Data type: Hash
The top level route. Example (also default): prometheus::alertmanager::route: group_by:
- 'alertname'
- 'cluster'
- 'service'
group_wait: '30s' group_interval: '5m' repeat_interval: '3h' receiver: 'Admin'
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the alertmanager service (default 'alertmanager')
Default value: 'alertmanager'
storage_path
Data type: Stdlib::Absolutepath
The storage path to pass to the alertmanager. Defaults to '/var/lib/alertmanager'
templates
Data type: Array
The array of template files. Defaults to [ "${config_dir}/*.tmpl" ]
user
Data type: String[1]
User which runs the service
version
Data type: String[1]
The binary release version
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
prometheus::apache_exporter
This module manages prometheus apache_exporter
Parameters
The following parameters are available in the prometheus::apache_exporter
class:
arch
bin_dir
config_mode
download_extension
download_url
download_url_base
extra_groups
extra_options
group
init_style
install_method
manage_group
manage_service
manage_user
os
package_ensure
package_name
purge_config_dir
restart_on_change
scrape_uri
service_enable
service_ensure
service_name
user
version
proxy_server
proxy_type
web_config_file
web_config_content
export_scrape_job
scrape_host
scrape_port
scrape_job_name
scrape_job_labels
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
config_mode
Data type: String[1]
The permissions of the configuration files
Default value: $prometheus::config_mode
download_extension
Data type: String
Extension for the release binary archive
Default value: 'tar.gz'
download_url
Data type: Optional[Prometheus::Uri]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for the binary archive
Default value: 'https://github.com/Lusitaniae/apache_exporter/releases'
extra_groups
Data type: Array[String[1]]
Extra groups to add the binary user to
Default value: []
extra_options
Data type: Optional[String[1]]
Extra options added to the startup command
Default value: undef
group
Data type: String[1]
Group under which the binary is running
Default value: 'apache-exporter'
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
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 true)
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 'latest'
Default value: 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
Default value: 'apache_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 true)
Default value: true
scrape_uri
Data type: String[1]
The URI for the Apache status page
Default value: 'http://localhost/server-status/?auto'
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the node exporter service (default 'apache_exporter')
Default value: 'apache_exporter'
user
Data type: String[1]
User which runs the service
Default value: 'apache-exporter'
version
Data type: String[1]
The binary release version
Default value: '0.8.0'
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
web_config_file
Data type: Stdlib::Absolutepath
Path of file where the web-config will be saved to
Default value: '/etc/apache_exporter_web-config.yml'
web_config_content
Data type: Prometheus::Web_config
Unless empty the content of the web-config yaml which will handed over as option to the exporter
Default value: {}
export_scrape_job
Data type: Boolean
Default value: false
scrape_host
Data type: Optional[Stdlib::Host]
Default value: undef
scrape_port
Data type: Stdlib::Port
Default value: 9117
scrape_job_name
Data type: String[1]
Default value: 'apache'
scrape_job_labels
Data type: Optional[Hash]
Default value: undef
prometheus::beanstalkd_exporter
This module manages prometheus beanstalkd_exporter
Parameters
The following parameters are available in the prometheus::beanstalkd_exporter
class:
arch
bin_dir
config
mapping_config
beanstalkd_address
exporter_listen
download_extension
download_url
download_url_base
extra_groups
extra_options
group
init_style
install_method
manage_group
manage_service
manage_user
os
package_ensure
package_name
purge_config_dir
restart_on_change
service_enable
service_ensure
service_name
user
version
proxy_server
proxy_type
export_scrape_job
scrape_host
scrape_port
scrape_job_name
scrape_job_labels
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
config
Data type: String[1]
Path to configuration file that stores beanstalkd address
mapping_config
Data type: String[1]
Path to configuration file with tubes mappings (not implemented)
beanstalkd_address
Data type: String[1]
Address of beanstalkd, defaults to localhost
exporter_listen
Data type: String[1]
Address to bind beanstalkd_exporter to. Default is different than upstream (*:9371)
download_extension
Data type: String
Extension for the release binary archive
download_url
Data type: Variant[Undef,String]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for the binary archive
extra_groups
Data type: Array
Extra groups to add the binary user to
extra_options
Data type: Optional[String[1]]
Extra options added to the startup command
Default value: undef
group
Data type: String[1]
Group under which the binary is running
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
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 true)
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 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
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 true)
Default value: true
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the beanstalkd exporter service (default 'beanstalkd_exporter')
user
Data type: String[1]
User which runs the service
version
Data type: String[1]
The binary release version
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
export_scrape_job
Data type: Boolean
Default value: false
scrape_host
Data type: Optional[Stdlib::Host]
Default value: undef
scrape_port
Data type: Stdlib::Port
Default value: 8080
scrape_job_name
Data type: String[1]
Default value: 'beanstalkd'
scrape_job_labels
Data type: Optional[Hash]
Default value: undef
prometheus::bind_exporter
Class: prometheus::bind_exporter
This module manages prometheus bind_exporter
Parameters
The following parameters are available in the prometheus::bind_exporter
class:
arch
bin_dir
config_mode
download_extension
download_url
download_url_base
extra_groups
extra_options
env_vars
group
init_style
install_method
manage_group
manage_service
manage_user
os
package_ensure
package_name
purge_config_dir
restart_on_change
service_enable
service_ensure
service_name
user
version
export_scrape_job
scrape_job_name
scrape_port
scrape_job_labels
proxy_server
proxy_type
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
config_mode
Data type: String[1]
The permissions of the configuration files
Default value: $prometheus::config_mode
download_extension
Data type: String
Extension for the release binary archive
Default value: 'tar.gz'
download_url
Data type: Optional[Stdlib::HTTPSUrl]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Stdlib::HTTPSUrl
Base URL for the binary archive
Default value: 'https://github.com/prometheus-community/bind_exporter/releases'
extra_groups
Data type: Array[String[1]]
Extra groups to add the binary user to
Default value: []
extra_options
Data type: Optional[String[1]]
Extra options added to the startup command
Default value: undef
env_vars
Data type: Hash[String, Scalar]
The environment variable to pass to the daemon
Default value: {}
group
Data type: String[1]
Group under which the binary is running
Default value: 'bind-exporter'
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
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 true)
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: $prometheus::os
package_ensure
Data type: String[1]
If package, then use this for package ensure default 'latest'
Default value: 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
Default value: 'bind_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 true)
Default value: true
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: String[1]
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String
Name of the node exporter service (default 'bind_exporter')
Default value: 'bind_exporter'
user
Data type: String[1]
User which runs the service
Default value: 'bind-exporter'
version
Data type: String[1]
The binary release version
Default value: '0.4.0'
export_scrape_job
Data type: Boolean
Whether to export a prometheus::scrape_job
to puppetDB for
collecting on your prometheus server.
Default value: false
scrape_job_name
Data type: String[1]
The name of the scrape job. When configuring prometheus with this
puppet module, the jobs to be collected are configured with
prometheus::collect_scrape_jobs
.
Default value: 'bind'
scrape_port
Data type: Stdlib::Port
The port to use in the scrape job. This won't normally need to be
changed unless you run the exporter with a non-default port by
overriding extra_options
.
Default value: 9119
scrape_job_labels
Data type: Optional[Hash]
Labels to configure on the scrape job. If not set, the
prometheus::daemon
default ({ 'alias' => $scrape_host }
) will
be used.
Default value: undef
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
prometheus::bird_exporter
This module manages prometheus bird exporter
Examples
configure bird_exporter on Arch Linux via the repository package
class { 'prometheus::bird_exporter':
env_vars => { 'BIRD_EXPORTER_ARGS'=> '-bird.v2 -web.listen-address=127.0.0.1:9324 -format.new=true -bird.socket=/var/run/bird/bird.ctl -format.description-labels' },
require => Service['bird'],
}
Parameters
The following parameters are available in the prometheus::bird_exporter
class:
arch
bin_dir
download_extension
download_url
download_url_base
extra_groups
extra_options
group
init_style
install_method
manage_group
manage_service
manage_user
os
package_ensure
package_name
purge_config_dir
restart_on_change
service_enable
service_ensure
service_name
user
version
env_vars
env_file_path
proxy_server
proxy_type
export_scrape_job
scrape_host
scrape_port
scrape_job_name
scrape_job_labels
bin_name
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
download_extension
Data type: String
Extension for the release binary archive
Default value: ''
download_url
Data type: Optional[Prometheus::Uri]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for the binary archive
Default value: 'https://github.com/czerwonk/bird_exporter/releases'
extra_groups
Data type: Array[String]
Extra groups to add the binary user to
Default value: ['bird']
extra_options
Data type: String[1]
Extra options added to the startup command
Default value: '-bird.v2 -web.listen-address=127.0.0.1:9324 -format.new=true'
group
Data type: String[1]
Group under which the binary is running
Default value: 'bird-exporter'
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: 'url'
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 true)
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 'latest'
Default value: 'installed'
package_name
Data type: String[1]
The binary package name - not available yet
Default value: 'bird_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 true)
Default value: true
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the bird exporter service (default 'bird_exporter')
Default value: 'bird_exporter'
user
Data type: String[1]
User which runs the service
Default value: 'bird-exporter'
version
Data type: String[1]
The binary release version
Default value: '1.2.5'
env_vars
Data type: Hash[String[1], Scalar]
hash with custom environment variables thats passed to the exporter via init script / unit file
Default value: {}
env_file_path
Data type: Stdlib::Absolutepath
The path to the file with the environmetn variable that is read from the init script/systemd unit
Default value: $prometheus::env_file_path
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
export_scrape_job
Data type: Boolean
Default value: false
scrape_host
Data type: Optional[Stdlib::Host]
Default value: undef
scrape_port
Data type: Stdlib::Port
Default value: 9324
scrape_job_name
Data type: String[1]
Default value: 'bird'
scrape_job_labels
Data type: Optional[Hash]
Default value: undef
bin_name
Data type: Optional[String[1]]
Default value: undef
prometheus::blackbox_exporter
prometheus::blackbox_exporter::modules: simple_ssl: prober: http timeout: 10s http: fail_if_not_ssl: true easy_tcp: prober: tcp tcp: preferred_ip_protocol: ip4 @ see https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md
Examples
Example for configuring named blackbox modules via hiera
Parameters
The following parameters are available in the prometheus::blackbox_exporter
class:
arch
bin_dir
config_file
download_extension
download_url
download_url_base
extra_groups
extra_options
group
init_style
install_method
manage_group
manage_service
manage_user
modules
export_scrape_job
scrape_host
scrape_port
scrape_job_name
scrape_job_labels
os
package_ensure
package_name
restart_on_change
service_enable
service_ensure
service_name
user
version
config_mode
proxy_server
proxy_type
web_config_file
web_config_content
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
config_file
Data type: Stdlib::Absolutepath
Absolute path to configuration file (blackbox module definitions)
Default value: '/etc/blackbox-exporter.yaml'
download_extension
Data type: String
Extension for the release binary archive
Default value: 'tar.gz'
download_url
Data type: Optional[Prometheus::Uri]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for the binary archive
Default value: 'https://github.com/prometheus/blackbox_exporter/releases'
extra_groups
Data type: Array[String]
Extra groups to add the binary user to
Default value: []
extra_options
Data type: Optional[String[1]]
Extra options added to the startup command
Default value: undef
group
Data type: String[1]
Group under which the binary is running
Default value: 'blackbox-exporter'
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
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 true)
Default value: true
manage_user
Data type: Boolean
Whether to create user or rely on external code for that
Default value: true
modules
Data type: Hash
Structured, array of blackbox module definitions for different probe types
Default value: {}
export_scrape_job
Data type: Boolean
Whether to export a scrape job for this service
Default value: false
scrape_host
Data type: Optional[Stdlib::Host]
Hostname or IP address to scrape
Default value: undef
scrape_port
Data type: Stdlib::Port
Host port to scrape
Default value: 9115
scrape_job_name
Data type: String[1]
Name of the scrape job to export, if export_scrape_job is true
Default value: 'blackbox'
scrape_job_labels
Data type: Optional[Hash]
Labels to add to the scrape job, if export_scrape_job is true
Default value: undef
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 'latest'
Default value: 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
Default value: 'blackbox_exporter'
restart_on_change
Data type: Boolean
Should puppet restart the service on configuration change? (default true)
Default value: true
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the node exporter service (default 'blackbox_exporter')
Default value: 'blackbox_exporter'
user
Data type: String[1]
User which runs the service
Default value: 'blackbox-exporter'
version
Data type: String[1]
The binary release version
Default value: '0.17.0'
config_mode
Data type: String[1]
The permissions of the configuration files
Default value: $prometheus::config_mode
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
web_config_file
Data type: Stdlib::Absolutepath
Path of file where the web-config will be saved to
Default value: '/etc/blackbox_exporter_web-config.yml'
web_config_content
Data type: Prometheus::Web_config
Unless empty the content of the web-config yaml which will handed over as option to the exporter
Default value: {}
prometheus::collectd_exporter
This module manages prometheus node collectd_exporter
Parameters
The following parameters are available in the prometheus::collectd_exporter
class:
arch
bin_dir
download_extension
download_url
download_url_base
options
group
init_style
install_method
manage_group
manage_service
manage_user
os
package_ensure
package_name
purge_config_dir
restart_on_change
service_enable
service_ensure
service_name
user
version
proxy_server
proxy_type
export_scrape_job
scrape_host
scrape_port
scrape_job_name
scrape_job_labels
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
download_extension
Data type: String
Extension for the release binary archive
Default value: 'tar.gz'
download_url
Data type: Optional[String[1]]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for the binary archive
Default value: 'https://github.com/prometheus/collectd_exporter/releases'
options
Data type: String
Options added to the startup command
Default value: ''
group
Data type: String[1]
Group under which the binary is running
Default value: 'collectd-exporter'
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
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 true)
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 'latest'
Default value: 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
Default value: 'collectd_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 true)
Default value: true
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the collectd exporter service (default 'collectd_exporter')
Default value: 'collectd_exporter'
user
Data type: String[1]
User which runs the service
Default value: 'collectd-exporter'
version
Data type: String[1]
The binary release version
Default value: '0.5.0'
proxy_server
Data type: Optional[String[1]]
Optional proxy server, with port number if needed. ie: https://example.com:8080
Default value: undef
proxy_type
Data type: Optional[Enum['none', 'http', 'https', 'ftp']]
Optional proxy server type (none|http|https|ftp)
Default value: undef
export_scrape_job
Data type: Boolean
Default value: false
scrape_host
Data type: Optional[Stdlib::Host]
Default value: undef
scrape_port
Data type: Stdlib::Port
Default value: 9103
scrape_job_name
Data type: String[1]
Default value: 'collectd'
scrape_job_labels
Data type: Optional[Hash]
Default value: undef
prometheus::config
Configuration class for prometheus monitoring system
prometheus::consul_exporter
This module manages prometheus node consul_exporter
Parameters
The following parameters are available in the prometheus::consul_exporter
class:
arch
bin_dir
consul_server
consul_health_summary
download_extension
download_url
download_url_base
extra_groups
extra_options
group
init_style
install_method
log_level
manage_group
manage_service
manage_user
os
package_ensure
package_name
purge_config_dir
restart_on_change
service_enable
service_ensure
service_name
user
version
web_listen_address
web_telemetry_path
proxy_server
proxy_type
export_scrape_job
scrape_host
scrape_port
scrape_job_name
scrape_job_labels
arch
Data type: String[1]
Architecture (amd64 or i386)
Default value: $prometheus::real_arch
bin_dir
Data type: Stdlib::Absolutepath
Directory where binaries are located
Default value: $prometheus::bin_dir
consul_server
Data type: String[1]
HTTP API address of a Consul server or agent. (prefix with https:// to connect over HTTPS) (default "http://localhost:8500")
consul_health_summary
Data type: Boolean
Generate a health summary for each service instance. Needs n+1 queries to collect all information. (default true)
download_extension
Data type: String
Extension for the release binary archive
download_url
Data type: Optional[Prometheus::Uri]
Complete URL corresponding to the where the release binary archive can be downloaded
Default value: undef
download_url_base
Data type: Prometheus::Uri
Base URL for the binary archive
extra_groups
Data type: Array
Extra groups to add the binary user to
extra_options
Data type: Optional[String[1]]
Extra options added to the startup command
Default value: undef
group
Data type: String[1]
Group under which the binary is running
init_style
Data type: Prometheus::Initstyle
Service startup scripts style (e.g. rc, upstart or systemd)
Default value: $prometheus::init_style
install_method
Data type: Prometheus::Install
Installation method: url or package (only url is supported currently)
Default value: $prometheus::install_method
log_level
Data type: String[1]
Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] (default "info")
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 true)
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 'latest'
package_name
Data type: String[1]
The binary package name - not available yet
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 true)
Default value: true
service_enable
Data type: Boolean
Whether to enable the service from puppet (default true)
Default value: true
service_ensure
Data type: Stdlib::Ensure::Service
State ensured for the service (default 'running')
Default value: 'running'
service_name
Data type: String[1]
Name of the consul exporter service (default 'consul_exporter')
user
Data type: String[1]
User which runs the service
version
Data type: String[1]
The binary release version
web_listen_address
Data type: String[1]
Address to listen on for web interface and telemetry. (default ":9107")
web_telemetry_path
Data type: String[1]
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.
v15.0.0 (2024-06-13)
Breaking changes:
- Remove support for alertmanager \< 0.13.0 #720
- Remove prometheus 1.x support #718
- drop suport for redis_exporter \< 1.0.0 #732 (TheMeier)
- drop support for alertmanager \< 0.13.0 #731 (TheMeier)
- drop support for prometheus 1.x, update prometheus version to 2.52.0 #728 (TheMeier)
- drop Debian 10 support #727 (TheMeier)
- drop RedHat and CentOS 7 & 8 support #726 (TheMeier)
- update alertmanager to 0.21.0->0.27.0 #725 (TheMeier)
- Change default port from 9090 to 9419 #637 (mindriot88)
Implemented enhancements:
- deprecation of
source_match(_re)
andtarget_match(_re)
#697 - replace templates for systemd units with systemd::manage_unit #735 (TheMeier)
- remove code for puppet \< 7 #724 (TheMeier)
- Fix Archlinux acceptance test #719 (TheMeier)
- update puppet-systemd upper bound to 8.0.0 #716 (TheMeier)
Fixed bugs:
- fix syntax of altermanager::receivers #723 (TheMeier)
- change path or my.cnf for mysqld_exporter #722 (TheMeier)
v14.0.0 (2024-03-26)
Breaking changes:
- Drop Ubuntu 18.04, allow systemd 6.x #704 (griggi-ws)
- Rework web-config support for multiple exporters #693 (cruelsmith)
Implemented enhancements:
- add option to enable tracing in Prometheus config #705 (fbegyn)
- Add Debian 12 support #703 (bastelfreak)
- Cleanup architecture selection, dont fail on unknown architecture #702 (bastelfreak)
- mongodb_exporter: make service name and binary path configureable #699 (ansgarwiechers)
- Implement wireguard exporter #695 (bastelfreak)
- Add OracleLinux support #687 (bastelfreak)
Merged pull requests:
v13.4.0 (2023-11-08)
Implemented enhancements:
- Update puppet-strings documentation #700 (JGodin-C2C)
- Add systemd_exporter #661 (JGodin-C2C)
v13.3.0 (2023-08-19)
Implemented enhancements:
- Drop legacy systemd reload code for Puppet 5 #689 (bastelfreak)
- add proxy_server & proxy_type to server install #641 (sabo)
Fixed bugs:
- Fix Arch Linux Prometheus Server installation #684 (bastelfreak)
Merged pull requests:
- init.pp: Add default data from hiera #686 (bastelfreak)
v13.2.0 (2023-07-29)
Merged pull requests:
- systemd & archive: Allow latest deps #682 (bastelfreak)
v13.1.0 (2023-07-13)
Implemented enhancements:
v13.0.0 (2023-06-26)
Breaking changes:
- Drop Ubuntu 16.04 (EOL) #668 (smortex)
- Drop Debian 9 (EOL) #667 (smortex)
- puppetlabs/stdlib: Require 9.x #665 (hashworks)
- Drop Puppet 6 support #660 (bastelfreak)
Implemented enhancements:
- Add Ubuntu 22.04 support #672 (bastelfreak)
- Add EL9 support #671 (bastelfreak)
- Add puppet 8 support #670 (bastelfreak)
Merged pull requests:
- blackbox_exporter: Move hiera data to class #675 (bastelfreak)
- postgres_exporter: Move hiera data to class #674 (bastelfreak)
- redis_exporter: Move hiera data to class #673 (bastelfreak)
v12.5.0 (2023-01-30)
Implemented enhancements:
- Add AlmaLinux/Rocky 8 support #649 (bastelfreak)
- bump puppet/systemd to \< 5.0.0 #645 (jhoblitt)
- Adapt web.config.file option for node_exporter versions higher than 1.5.0 #644 (Pigueiras)
- feat: Support JMX exporter #636 (dploeger)
- Support time_intervals with alertmanager >= 0.24.0 #618 (treydock)
Fixed bugs:
Closed issues:
Merged pull requests:
- varnish_exporter: Move hiera data to class #653 (bastelfreak)
- graphite_exporter: Move hiera data to class #652 (bastelfreak)
- collectd_exporter: Move hiera data to class #651 (bastelfreak)
- apache_exporter: Move hiera data to class #650 (bastelfreak)
- config_file: Enforce Stdlib::Absolutepath #648 (bastelfreak)
- grok_exporter: Move hiera data to class #647 (bastelfreak)
- Debian OS family: Install apt-transport-https during CI #628 (bastelfreak)
- prometheus: Move hiera data to class #624 (bastelfreak)
v12.4.0 (2022-06-03)
Implemented enhancements:
- Adding a Proxy option #186
- Implement web-config.yml handling #622 (rwaffen)
- Support new download format for openldap_exporter #619 (treydock)
- Add php-fpm exporter #605 (kubicgruenfeld)
- Add Debian 11 support #601 (towo)
- Allow to set storage parameters to false #598 (kubicgruenfeld)
- (#186) Add proxy parameters #596 (ShaunMaxwell)
Fixed bugs:
Closed issues:
- We should be able to download from custom url with credentials #603
- Prometheus Agent mode not supported yet #597
- Support for node exporter 1.x #520
Merged pull requests:
- Update ipmi_exporter URL, project moved #620 (treydock)
- extra_options: Switch from String to Optional[String[1]] #610 (bastelfreak)
- Beaker: Install lsb-release during CI #609 (bastelfreak)
v12.3.0 (2021-11-17)
Implemented enhancements:
- Add a parameter to validate alertmanager config #593 (roidelapluie)
- Add sachet webhook receiver #590 (BDelacour)
Fixed bugs:
Closed issues:
- Alertmanager configuration is not checked when installed from RPM #592
- postgres_exporter 0.10.0 cannot be downloaded #584
- found multiple scrape configs with job name
x
#573
Merged pull requests:
- Update prometheus version from 2.20.1 to 2.30.3 #587 (saz)
- Run CI nightly #586 (bastelfreak)
v12.2.0 (2021-10-04)
Implemented enhancements:
- add nginx exporter #583 (kubicgruenfeld)
Fixed bugs:
- conflict with camptocamp-systemd latest release 3.0.0 #560
v12.1.1 (2021-08-26)
Merged pull requests:
v12.1.0 (2021-08-24)
Implemented enhancements:
- $bin_dir: Update datatype to Stdlib::Absolutepath #575 (bastelfreak)
- Arch Linux: Install bird_exporter via packages #574 (bastelfreak)
Fixed bugs:
- Arch Linux: Fix node_exporter installation #576 (bastelfreak)
v12.0.0 (2021-07-27)
Breaking changes:
Implemented enhancements:
- Support SSL exporter #567 (treydock)
- Add support for SSH exporter #566 (treydock)
- Support mute_time_intervals for Alertmanager #563 (treydock)
- Support Stdlib::Filesource as type for download urls #561 (gburton1)
Fixed bugs:
- Fix wrong undef datatypes #570 (bastelfreak)
Closed issues:
- Alertmanger service will not start (public IP) #558
Merged pull requests:
- switch from camptocamp/systemd to voxpupuli/systemd #569 (bastelfreak)
- Fix IPMI exporter sudo config, add dependency on saz/sudo #565 (treydock)
- Misc fixes to make IPMI exporter more consistent #564 (treydock)
- Allow default scrape_configs to be optional #542 (treydock)
v11.2.0 (2021-06-09)
Implemented enhancements:
- Exporters: Use Prometheus::Initstyle for $init_style #557 (bastelfreak)
- Exporters: Use Prometheus::Install for $install_method #556 (bastelfreak)
- Exporters: Use Prometheus::Uri for $download_url_base #554 (bastelfreak)
- Add openvpn_exporter #553 (JosephKav)
- mongodb_exporter supporting newer versions #550 (kuldazbraslav)
- Add openldap_exporter #549 (dabelenda)
- Add ipsec_exporter #547 (kuldazbraslav)
Merged pull requests:
- Exporters: Use Optional[Prometheus::Uri] for $download_url #555 (bastelfreak)
v11.1.0 (2021-04-25)
Implemented enhancements:
- puppetlabs/stdlib: Allow 7.x #545 (bastelfreak)
- camptocamp/systemd: allow 3.x #544 (bastelfreak)
- puppet/archive: allow 5.x #543 (bastelfreak)
- bird_exporter: Update 1.2.4 -> 1.2.5 #538 (bastelfreak)
- Implement unbound_exporter #498 (bastelfreak)
- Add Bind exporter #312 (anarcat)
Fixed bugs:
- fix quoting in apache exporter #541 (anarcat)
- fix default scrape_uri in apache_exporter #532 (anarcat)
- Fix download of beanstalkd_exporter for versions newer than 1.0.0 #508 (TuningYourCode)
- Update network denendency in daemon systemd template #489 (moonape1226)
Closed issues:
Merged pull requests:
- check node exporter config file instead of bird in node exporter test #531 (anarcat)
- pass options through env_vars if no control over init files #530 (anarcat)
- convert daemon.env template to EPP #529 (anarcat)
- deploy env_file_path on server #527 (anarcat)
- Support for IPMI exporter #522 (benibr)
v11.0.0 (2021-01-18)
Breaking changes:
- Drop Puppet 5; require at least Puppet 6.1.0 #518 (bastelfreak)
- puppetdb_exporter: Update 1.0.0->1.1.0 #513 (bastelfreak)
- Drop EOL CentOS 6 support #512 (bastelfreak)
- Drop Debian 8 support/compatibility #496 (bastelfreak)
Implemented enhancements:
- Support Puppet 7.x #515 (bastelfreak)
- Add Ubuntu 20.04 support #514 (bastelfreak)
- Daemon: create env files only if required #493 (bastelfreak)
Fixed bugs:
- Purge collected configs based on $purge_config_dir #517 (towo)
- (FACT-2880) fact: call Puppet within setcode block #511 (bastelfreak)
- Allow download_extension to be empty string #507 (treydock)
- fix sysv init scripts #502 (kubicgruenfeld)
Closed issues:
- haproxy_exporter fails scraping when haproxy.scrape-uri contains specials characters #516
- scrape_job exported resources are ignoring custom collect dir #490
- config.pp does not honor $prometheus::purge_config_dir value #460
- SysV init script leaves dangling shell processes #293
Merged pull requests:
v10.2.0 (2020-09-26)
Debian 8 is EOL since a few months now. This release will be the last with official Debian 8 compatibility and support. The next release will be v11.0.0 without Debian 8 support!
Implemented enhancements:
- Allow filtering scrape jobs by nodes #488 (fbs)
- Add option to override
scrape_host
for exporters #487 (fbs)
Merged pull requests:
- Extend puppet type check for install_method #492 (bastelfreak)
v10.1.0 (2020-08-23)
Implemented enhancements:
- Add support for Google Cloud gs storage #485 (j0sh3rs)
- prometheus::dellhw_exporter: Add scrape_ipadress parameter #484 (lconsuegra)
v10.0.0 (2020-08-15)
Breaking changes:
- update version numbers to latest releases #479 (antondollmaier)
Implemented enhancements:
- Fixes for prometheus::dellhw_exporter not working as is #480 (lconsuegra)
Merged pull requests:
- Prometheus: Update 2.20.0->2.20.1 #481 (bastelfreak)
- modulesync 3.0.0 & puppet-lint updates #478 (bastelfreak)
v9.1.0 (2020-07-21)
Implemented enhancements:
Fixed bugs:
- Exporters: Reload service if user has changed attributes #474 (bastelfreak)
Closed issues:
Merged pull requests:
v9.0.0 (2020-06-16)
Breaking changes:
- Redis Exporter: Update 1.3.4->1.6.1 #461 (bastelfreak)
- Upgrade varnish_exporter version from 1.5 to 1.5.2 #457 (mcanevet)
- Update PushProx to new namespace / update version 20190708 -> 0.1.0 #456 (mcanevet)
- Update rabbitmq_exporter to version 0.29.0 #453 (dhoppe)
- graphite_exporter: update 0.2.0->0.7.1 #357 (bastelfreak)
Implemented enhancements:
- Implement puppetdb exporter #463 (bastelfreak)
- Add memcached exporter support #462 (bastelfreak)
- (#458) add grok_exporter #459 (kuldazbraslav)
Closed issues:
- Feature request for grok_exporter #458
- Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Function Call, Could not find class ::systemd #257
v8.5.0 (2020-05-21)
Implemented enhancements:
- Allow hiding of prom config file #451 (hooten)
- Allow extract_path to be modified #449 (treydock)
- Add support for Debian 10 #447 (dhoppe)
Merged pull requests:
v8.4.0 (2020-04-17)
Implemented enhancements:
- Use
--scrape_uri
instead of-scrape_uri
for apache_exporter versions 0.8.0 and greater #444 (krische) - Support ppc64le #443 (treydock)
- add achive_bin_path parameter defaulting to existing value #438 (robmbrooks)
- Add VZ 6/7 to metadata.json #436 (bastelfreak)
- have a $service_name parameter for all prometheus-exporters #430 (unki)
Fixed bugs:
Closed issues:
- Apache Exporter 0.8.0+ uses
--
as argument prefix #442
Merged pull requests:
v8.3.0 (2020-02-28)
Implemented enhancements:
- Add service_name parameter to haproxy-exporter #428 (unki)
- Add parameter max_open_files to server class #425 (kubicgruenfeld)
- Support reloading alertmanager rather than restarting #424 (treydock)
Fixed bugs:
- Fix duplicate command line options in SysV script #427 (lukebigum)
- Add config mode to config_dir creation #397 (jpc2350)
Merged pull requests:
v8.2.1 (2020-01-26)
Fixed bugs:
v8.2.0 (2020-01-11)
Implemented enhancements:
- process-exporter: Add Option to provide config as hash #417 (bastelfreak)
- prometheus: harden systemd service #415 (bastelfreak)
- Add
managed by puppet
header to unit file #414 (bastelfreak) - migrate prometheus service file erb->epp #413 (bastelfreak)
- Arch Linux: Use prometheus unit file from package #412 (bastelfreak)
- Prometheus: Acceptance test for 2.15.1 #411 (bastelfreak)
- move more static data from hiera to module #409 (bastelfreak)
Merged pull requests:
- Use Stdlib::Ensure::Service for $service_ensure #408 (bastelfreak)
- Migrate static data from hiera to puppet code #407 (bastelfreak)
v8.1.0 (2019-12-18)
Implemented enhancements:
- Add Bird exporter #404 (bastelfreak)
- Convert comments to puppet-strings #403 (bastelfreak)
- make apache exporter service name customizable #400 (anarcat)
- Add postfix exporter #396 (alexjfisher)
Merged pull requests:
- Accept
none
as validinit_style
#399 (alexjfisher)
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
- 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 (pavloos)
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
- puppetlabs/stdlib (>= 9.0.0 < 10.0.0)
- puppet/systemd (>= 7.1.0 < 8.0.0)
- puppet/archive (>= 2.2.0 < 8.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.