Filippo Giunchedi has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/323079 )
Change subject: Add hhvm_exporter role and class
......................................................................
Add hhvm_exporter role and class
Bug: T147423
Change-Id: I100912e31347e8734bd6ff2556c14cfb719310e9
---
A modules/prometheus/manifests/hhvm_exporter.pp
A modules/role/manifests/prometheus/hhvm_exporter.pp
M modules/role/manifests/prometheus/ops.pp
3 files changed, 93 insertions(+), 1 deletion(-)
Approvals:
Filippo Giunchedi: Verified; Looks good to me, approved
diff --git a/modules/prometheus/manifests/hhvm_exporter.pp
b/modules/prometheus/manifests/hhvm_exporter.pp
new file mode 100644
index 0000000..4887f02
--- /dev/null
+++ b/modules/prometheus/manifests/hhvm_exporter.pp
@@ -0,0 +1,28 @@
+# == Define: prometheus::hhvm_exporter
+#
+# Prometheus exporter for hhvm server metrics.
+#
+# = Parameters
+#
+# [*arguments*]
+# Additional command line arguments for prometheus-hhvm-exporter.
+
+define prometheus::hhvm_exporter (
+ $arguments = '',
+) {
+ require_package('prometheus-hhvm-exporter')
+
+ file { '/etc/default/prometheus-hhvm-exporter':
+ ensure => present,
+ mode => '0444',
+ owner => 'root',
+ group => 'root',
+ content => "ARGS=\"${arguments}\"",
+ notify => Service['prometheus-hhvm-exporter'],
+ }
+
+ service { 'prometheus-hhvm-exporter':
+ ensure => running,
+ require => Package['prometheus-hhvm-exporter'],
+ }
+}
diff --git a/modules/role/manifests/prometheus/hhvm_exporter.pp
b/modules/role/manifests/prometheus/hhvm_exporter.pp
new file mode 100644
index 0000000..cc9eeec
--- /dev/null
+++ b/modules/role/manifests/prometheus/hhvm_exporter.pp
@@ -0,0 +1,13 @@
+class role::prometheus::hhvm_exporter {
+ prometheus::hhvm_exporter { 'default': }
+
+ $prometheus_nodes = hiera('prometheus_nodes')
+ $prometheus_ferm_nodes = join($prometheus_nodes, ' ')
+ $ferm_srange = "(@resolve((${prometheus_ferm_nodes}))
@resolve((${prometheus_ferm_nodes}), AAAA))"
+
+ ferm::service { 'prometheus-hhvm-exporter':
+ proto => 'tcp',
+ port => '9192',
+ srange => $ferm_srange,
+ }
+}
diff --git a/modules/role/manifests/prometheus/ops.pp
b/modules/role/manifests/prometheus/ops.pp
index 1bf55da..efe3270 100644
--- a/modules/role/manifests/prometheus/ops.pp
+++ b/modules/role/manifests/prometheus/ops.pp
@@ -111,11 +111,62 @@
labels => {}
}
+ # Job definition for hhvm_exporter
+ $hhvm_jobs = [
+ {
+ 'job_name' => 'hhvm',
+ 'file_sd_configs' => [
+ { 'files' => [ "${targets_path}/hhvm_*.yaml"] },
+ ]
+ },
+ ]
+
+ # Generate a list of hosts running hhvm from Ganglia cluster definition
+ # TODO: generate the configuration based on hosts with hhvm class applied
+ prometheus::cluster_config{ "hhvm_jobrunner_${::site}":
+ dest => "${targets_path}/hhvm_jobrunner_${::site}.yaml",
+ site => $::site,
+ cluster => 'jobrunner',
+ port => '9192',
+ labels => {
+ 'cluster' => 'jobrunner'
+ }
+ }
+ prometheus::cluster_config{ "hhvm_appserver_${::site}":
+ dest => "${targets_path}/hhvm_appserver_${::site}.yaml",
+ site => $::site,
+ cluster => 'appserver',
+ port => '9192',
+ labels => {
+ 'cluster' => 'appserver'
+ }
+ }
+ prometheus::cluster_config{ "hhvm_api_appserver_${::site}":
+ dest => "${targets_path}/hhvm_api_appserver_${::site}.yaml",
+ site => $::site,
+ cluster => 'api_appserver',
+ port => '9192',
+ labels => {
+ 'cluster' => 'api_appserver'
+ }
+ }
+ prometheus::cluster_config{ "hhvm_imagescaler_${::site}":
+ dest => "${targets_path}/hhvm_imagescaler_${::site}.yaml",
+ site => $::site,
+ cluster => 'imagescaler',
+ port => '9192',
+ labels => {
+ 'cluster' => 'imagescaler'
+ }
+ }
+
prometheus::server { 'ops':
storage_encoding => '2',
listen_address => '127.0.0.1:9900',
storage_retention => $storage_retention,
- scrape_configs_extra => array_concat($mysql_jobs, $varnish_jobs,
$memcached_jobs),
+ scrape_configs_extra => array_concat(
+ $mysql_jobs, $varnish_jobs, $memcached_jobs, $hhvm_jobs
+ ),
global_config_extra => $config_extra,
}
--
To view, visit https://gerrit.wikimedia.org/r/323079
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I100912e31347e8734bd6ff2556c14cfb719310e9
Gerrit-PatchSet: 6
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Filippo Giunchedi <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Filippo Giunchedi <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Volans <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits