Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F7343146
D7826.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
D7826.diff
View Options
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
Details
Attached
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
Attached To
D7826: Move the prometheus statsd exporter to use the upstream tarball
Event Timeline
Log In to Comment