Filippo Giunchedi has uploaded a new change for review. https://gerrit.wikimedia.org/r/310557
Change subject: [WIP] prometheus: add varnish_exporter ...................................................................... [WIP] prometheus: add varnish_exporter Change-Id: I325ccc028da833da917514885cfa6bca998cc533 --- A modules/prometheus/manifests/varnish_exporter.pp A modules/prometheus/templates/initscripts/prometheus-varnish-expor...@.systemd.erb A modules/role/manifests/prometheus/varnish_exporter.pp 3 files changed, 74 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/57/310557/1 diff --git a/modules/prometheus/manifests/varnish_exporter.pp b/modules/prometheus/manifests/varnish_exporter.pp new file mode 100644 index 0000000..39d31e7 --- /dev/null +++ b/modules/prometheus/manifests/varnish_exporter.pp @@ -0,0 +1,29 @@ +# Prometheus Varnish metrics exporter. + +# === Parameters +# +# [*$instance*] +# The varnish instance to use, passed to varnishstat -n +# +# [*$listen_address*] +# The host:port tuple to listen on, host can be omitted. + +class prometheus::varnish_exporter ( + $instance = $::hostname, + $listen_address = ':9131', +) { + require_package('prometheus-varnish-exporter') + + exec { 'mask_default_varnish_exporter': + command => '/bin/systemctl mask prometheus-varnish-exporter.service', + creates => '/etc/systemd/system/prometheus-varnish-exporter.service', + } + + base::service_unit { "prometheus-varnish-exporter@${instance}": + ensure => present, + refresh => true, + systemd => true, + template_name => 'prometheus-varnish-exporter@', + require => Package['prometheus-varnish-exporter'], + } +} diff --git a/modules/prometheus/templates/initscripts/prometheus-varnish-expor...@.systemd.erb b/modules/prometheus/templates/initscripts/prometheus-varnish-expor...@.systemd.erb new file mode 100644 index 0000000..cc3ca2c --- /dev/null +++ b/modules/prometheus/templates/initscripts/prometheus-varnish-expor...@.systemd.erb @@ -0,0 +1,11 @@ +[Unit] +Description=Prometheus exporter for Varnish (instance %i) +Documentation=https://prometheus.io/docs/introduction/overview/ + +[Service] +Restart=always +User=prometheus +ExecStart=/usr/bin/prometheus-varnish-exporter -raw -n <%= @instance %> -web.listen-address <%= @listen_address %> + +[Install] +WantedBy=multi-user.target diff --git a/modules/role/manifests/prometheus/varnish_exporter.pp b/modules/role/manifests/prometheus/varnish_exporter.pp new file mode 100644 index 0000000..c900858 --- /dev/null +++ b/modules/role/manifests/prometheus/varnish_exporter.pp @@ -0,0 +1,34 @@ +# == Class: role::prometheus::varnish_exporter +# +# The role sets up one exporter per instance: +# default on tcp/9131 +# frontend on tcp/9331 (ie. default + 200) + +class role::prometheus::varnish_exporter { + if $::realm == 'labs' { + $ferm_srange = '$LABS_NETWORKS' + } else { + $prometheus_nodes = hiera('prometheus_nodes') + $prometheus_ferm_nodes = join($prometheus_nodes, ' ') + $ferm_srange = "@resolve((${prometheus_ferm_nodes}))" + } + + class { '::prometheus::varnish_exporter': } + + ferm::service { 'prometheus-varnish-exporter': + proto => 'tcp', + port => '9131', + srange => $ferm_srange, + } + + class { '::prometheus::varnish_exporter': + instance => 'frontend', + listen_address => ':9331', + } + + ferm::service { 'prometheus-varnish-exporter-frontend': + proto => 'tcp', + port => '9331', + srange => $ferm_srange, + } +} -- To view, visit https://gerrit.wikimedia.org/r/310557 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I325ccc028da833da917514885cfa6bca998cc533 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Filippo Giunchedi <fgiunch...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits