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

Reply via email to