class exporters::nzbget_exporter ( Boolean $enable = false, String $user = 'nzbget_exporter', String $group = 'nzbget_exporter', Boolean $manage_user = true, Boolean $manage_service = true, Stdlib::Port $port = 9452, Stdlib::HTTPUrl $url = 'http://127.0.0.1:6789', Stdlib::Absolutepath $exec_path = '/usr/bin/nzbget_exporter', ){ if $enable { # install required package package {'nzbget_exporter': ensure => installed, } # manage the user/group if $manage_user { group { $group: ensure => present, } user { $user: ensure => present, shell => '/usr/sbin/nologin', groups => $group, managehome => true, } } # manage the systemd service if $manage_service { # Use these in notifications or file resources systemd::unit_file { 'nzbget_exporter.service': content => template('exporters/nzbget_exporter.service.erb'), enable => true, active => true, subscribe => Package['nzbget_exporter'], } } # manage consul service consul::service { 'nzbget_exporter': service_name => 'nzbget_exporter', address => $facts['networking']['ip'], port => $port, tags => [ 'metrics', 'metrics_scheme=http', 'metrics_job=nzbget', ], checks => [ { id => 'nzbget_exporter_http_check', name => 'nzbget_exporter HTTP Check', http => "http://${facts['networking']['fqdn']}:${port}/metrics", method => 'GET', tls_skip_verify => true, interval => '10s', timeout => '1s', }, ], } } }