# Class: prometheus::elasticsearch_exporter # # This module manages prometheus elasticsearch_exporter # # Parameters: # [*arch*] # Architecture (amd64 or i386) # # [*bin_dir*] # Directory where binaries are located # # [*cnf_uri*] # The URI to obtain elasticsearch stats from # # [*cnf_all*] # If true, query stats for all nodes in the cluster, rather than just the node we connect to. # # [*cnf_timeout*] # Timeout for trying to get stats from elasticsearch URI # # [*download_extension*] # Extension for the release binary archive # # [*download_url*] # Complete URL corresponding to the where the release binary archive can be downloaded # # [*download_url_base*] # Base URL for the binary archive # # [*extra_groups*] # Extra groups to add the binary user to # # [*extra_options*] # Extra options added to the startup command # # [*group*] # Group under which the binary is running # # [*init_style*] # Service startup scripts style (e.g. rc, upstart or systemd) # # [*install_method*] # Installation method: url or package (only url is supported currently) # # [*manage_group*] # Whether to create a group for or rely on external code for that # # [*manage_service*] # Should puppet manage the service? (default true) # # [*manage_user*] # Whether to create user or rely on external code for that # # [*os*] # Operating system (linux is the only one supported) # # [*package_ensure*] # If package, then use this for package ensure default 'latest' # # [*package_name*] # The binary package name - not available yet # # [*purge_config_dir*] # Purge config files no longer generated by Puppet # # [*restart_on_change*] # Should puppet restart the service on configuration change? (default true) # # [*service_enable*] # Whether to enable the service from puppet (default true) # # [*service_ensure*] # State ensured for the service (default 'running') # # [*user*] # User which runs the service # # [*version*] # The binary release version class prometheus::elasticsearch_exporter ( String $arch = $::prometheus::params::arch, String $bin_dir = $::prometheus::params::bin_dir, String $cnf_uri = $::prometheus::params::elasticsearch_exporter_cnf_uri, String $cnf_timeout = $::prometheus::params::elasticsearch_exporter_cnf_timeout, String $download_extension = $::prometheus::params::elasticsearch_exporter_download_extension, Variant[Undef,String] $download_url = undef, String $download_url_base = $::prometheus::params::elasticsearch_exporter_download_url_base, Array $extra_groups = $::prometheus::params::elasticsearch_exporter_extra_groups, String $extra_options = '', String $group = $::prometheus::params::elasticsearch_exporter_group, String $init_style = $::prometheus::params::init_style, String $install_method = $::prometheus::params::install_method, Boolean $manage_group = true, Boolean $manage_service = true, Boolean $manage_user = true, String $os = $::prometheus::params::os, String $package_ensure = $::prometheus::params::elasticsearch_exporter_package_ensure, String $package_name = $::prometheus::params::elasticsearch_exporter_package_name, Boolean $purge_config_dir = true, Boolean $restart_on_change = true, Boolean $service_enable = true, String $service_ensure = 'running', String $user = $::prometheus::params::elasticsearch_exporter_user, String $version = $::prometheus::params::elasticsearch_exporter_version, ) inherits prometheus::params { #Please provide the download_url for versions < 0.9.0 $real_download_url = pick($download_url,"${download_url_base}/download/v${version}/${package_name}-${version}.${os}-${arch}.${download_extension}") $notify_service = $restart_on_change ? { true => Service['elasticsearch_exporter'], default => undef, } $options = "-es.uri=${cnf_uri} -es.timeout=${cnf_timeout} ${extra_options}" prometheus::daemon { 'elasticsearch_exporter': install_method => $install_method, version => $version, download_extension => $download_extension, os => $os, arch => $arch, real_download_url => $real_download_url, bin_dir => $bin_dir, notify_service => $notify_service, package_name => $package_name, package_ensure => $package_ensure, manage_user => $manage_user, user => $user, extra_groups => $extra_groups, group => $group, manage_group => $manage_group, purge => $purge_config_dir, options => $options, init_style => $init_style, service_ensure => $service_ensure, service_enable => $service_enable, manage_service => $manage_service, } }