Page MenuHomeSoftware Heritage

D7826.diff
No OneTemporary

D7826.diff

diff --git a/data/common/common.yaml b/data/common/common.yaml
--- a/data/common/common.yaml
+++ b/data/common/common.yaml
@@ -3129,6 +3129,8 @@
specification:
minute: fqdn_rand
+prometheus::statsd::exporter::version: 0.22.5
+prometheus::statsd::exporter::archive_sha256sum: b04a25fe937a2e74dab097d589bd1f4da9e874d62b166c4e74d5d55b0f58eab6
prometheus::statsd::listen_network: "%{lookup('internal_network')}"
prometheus::statsd::listen_port: 9102
prometheus::statsd::defaults_config: {}
diff --git a/site-modules/profile/manifests/prometheus/statsd.pp b/site-modules/profile/manifests/prometheus/statsd.pp
--- a/site-modules/profile/manifests/prometheus/statsd.pp
+++ b/site-modules/profile/manifests/prometheus/statsd.pp
@@ -2,30 +2,51 @@
class profile::prometheus::statsd {
include profile::prometheus::base
- $defaults_file = '/etc/default/prometheus-statsd-exporter'
- $mapping_config_file = '/etc/prometheus/statsd_exporter_mapping.yml'
-
package {'prometheus-statsd-exporter':
- ensure => present,
- notify => Service['prometheus-statsd-exporter'],
- }
-
- service {'prometheus-statsd-exporter':
- ensure => 'running',
- enable => true,
- require => [
- Package['prometheus-statsd-exporter'],
- File[$defaults_file],
- ]
+ ensure => 'purged',
+ notify => Class['systemd::systemctl::daemon_reload'],
}
::systemd::dropin_file {'prometheus-statsd-exporter/restart.conf':
- ensure => present,
+ ensure => absent,
unit => 'prometheus-statsd-exporter.service',
filename => 'restart.conf',
- content => "[Service]\nRestart=always\nRestartSec=5\n",
}
+ $version = lookup('prometheus::statsd::exporter::version')
+ $archive_sha256sum = lookup('prometheus::statsd::exporter::archive_sha256sum')
+
+ $exporter_name = "statsd_exporter"
+ $github_project = "prometheus/${exporter_name}"
+ $service_name = "prometheus-statsd-exporter"
+ $unit_name = "${service_name}.service"
+
+ $url = "https://github.com/${github_project}/releases/download/v${version}/${exporter_name}-${version}.linux-amd64.tar.gz"
+
+ $exporter_dir = "/opt/${service_name}-${version}"
+ $exporter_exe = "${exporter_dir}/${exporter_name}"
+
+ file {$exporter_dir:
+ ensure => 'directory',
+ owner => 'root',
+ group => 'root',
+ mode => '0755',
+ }
+ -> archive { "/tmp/${exporter_name}.tar.gz":
+ source => $url,
+ extract => true,
+ extract_path => $exporter_dir,
+ extract_command => 'tar xfz %s --strip-components=1',
+ checksum => $archive_sha256sum,
+ checksum_type => 'sha256',
+ creates => $exporter_exe,
+ cleanup => true,
+ }
+ -> file {$exporter_exe:}
+
+ $service_file = '/etc/systemd/system/prometheus-statsd-exporter.service'
+ $mapping_config_file = '/etc/prometheus/statsd_exporter_mapping.yml'
+
$lookup_defaults_config = lookup('prometheus::statsd::defaults_config', Hash)
$listen_network = lookup('prometheus::statsd::listen_network', Optional[String], 'first', undef)
$listen_address = lookup('prometheus::statsd::listen_address', Optional[String], 'first', undef)
@@ -53,25 +74,29 @@
}
)
- # Uses $defaults_config
- file {$defaults_file:
- ensure => 'present',
- owner => 'root',
- group => 'root',
- mode => '0644',
- content => template('profile/prometheus/statsd/prometheus-statsd-exporter.defaults.erb'),
- require => Package['prometheus-statsd-exporter'],
- notify => Service['prometheus-statsd-exporter'],
- }
-
file {$mapping_config_file:
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0644',
content => inline_yaml($mapping_config),
- require => Package['prometheus-statsd-exporter'],
- notify => Service['prometheus-statsd-exporter'],
+ notify => Service[$service_name],
+ }
+
+ # uses $exporter_exe and $defaults_config
+ ::systemd::unit_file {$unit_name:
+ ensure => present,
+ content => template('profile/prometheus/statsd/prometheus-statsd-exporter.service.erb'),
+ require => [
+ File[$exporter_exe],
+ File[$mapping_config_file],
+ ],
+ }
+
+ ~> service {$service_name:
+ ensure => 'running',
+ enable => true,
+ require => Class['systemd::systemctl::daemon_reload'],
}
profile::prometheus::export_scrape_config {'statsd':
diff --git a/site-modules/profile/templates/prometheus/statsd/prometheus-statsd-exporter.defaults.erb b/site-modules/profile/templates/prometheus/statsd/prometheus-statsd-exporter.defaults.erb
deleted file mode 100644
--- a/site-modules/profile/templates/prometheus/statsd/prometheus-statsd-exporter.defaults.erb
+++ /dev/null
@@ -1,36 +0,0 @@
-# Set the command-line arguments to pass to the server.
-# Due to shell scaping, to pass backslashes for regexes, you need to double
-# them (\\d for \d). If running under systemd, you need to double them again
-# (\\\\d to mean \d), and escape newlines too.
-ARGS="\
-<%- scope.call_function('flatten_to_argument_list', [@defaults_config]).each do |argument| -%>
- <%= argument %> \
-<%- end -%>
-"
-
-# Prometheus-statsd-exporter supports the following options:
-# --web.listen-address=":9102"
-# The address on which to expose the web interface and generated Prometheus
-# metrics.
-# --web.telemetry-path="/metrics"
-# Path under which to expose metrics.
-# --statsd.listen-udp=":9125"
-# The UDP address on which to receive statsd metric lines. "" disables it.
-# --statsd.listen-tcp=":9125"
-# The TCP address on which to receive statsd metric lines. "" disables it.
-# --statsd.mapping-config=STATSD.MAPPING-CONFIG
-# Metric mapping configuration file name.
-# --statsd.read-buffer=STATSD.READ-BUFFER
-# Size (in bytes) of the operating system's transmit read buffer
-# associated with the UDP connection. Please make sure the kernel
-# parameters net.core.rmem_max is set to a value greater than the
-# value specified.
-# --debug.dump-fsm=""
-# The path to dump internal FSM generated for glob matching as Dot file.
-# --log.level="info"
-# Only log messages with the given severity or above. Valid levels: [debug,
-# info, warn, error, fatal]
-# --log.format="logger:stderr"
-# Set the log target and format. Example: "logger:syslog?appname=bob&local=7"
-# or "logger:stdout?json=true"
-
diff --git a/site-modules/profile/templates/prometheus/statsd/prometheus-statsd-exporter.service.erb b/site-modules/profile/templates/prometheus/statsd/prometheus-statsd-exporter.service.erb
new file mode 100644
--- /dev/null
+++ b/site-modules/profile/templates/prometheus/statsd/prometheus-statsd-exporter.service.erb
@@ -0,0 +1,14 @@
+[Unit]
+Description=Prometheus exporter for StatsD metrics
+Documentation=https://github.com/prometheus/statsd_exporter
+
+[Service]
+Restart=always
+ExecStart=<%= @exporter_exe %> <%= scope.call_function('flatten_to_argument_list', [@defaults_config]).join(' ') %>
+ExecReload=/bin/kill -HUP $MAINPID
+TimeoutStopSec=20s
+SendSIGKILL=no
+DynamicUser=yes
+
+[Install]
+WantedBy=multi-user.target

File Metadata

Mime Type
text/plain
Expires
Mar 17 2025, 7:38 PM (7 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3217467

Event Timeline