Giuseppe Lavagetto has submitted this change and it was merged.

Change subject: mediawiki: collect hhvm stats
......................................................................


mediawiki: collect hhvm stats

Change-Id: I3b4d93a0fca7e7f48c6913623b0736ea78517259
Signed-off-by: Giuseppe Lavagetto <glavage...@wikimedia.org>
---
A modules/mediawiki/files/monitoring/collectors/hhvm.py
M modules/mediawiki/manifests/monitoring/webserver.pp
2 files changed, 65 insertions(+), 0 deletions(-)

Approvals:
  Giuseppe Lavagetto: Verified; Looks good to me, approved



diff --git a/modules/mediawiki/files/monitoring/collectors/hhvm.py 
b/modules/mediawiki/files/monitoring/collectors/hhvm.py
new file mode 100644
index 0000000..1ee9be3
--- /dev/null
+++ b/modules/mediawiki/files/monitoring/collectors/hhvm.py
@@ -0,0 +1,59 @@
+# coding=utf-8
+"""
+Collect stats from hhvm
+
+### Dependencies
+
+ * json
+ * urllib2
+
+"""
+
+import json
+import urllib2
+import diamond.collector
+
+
+class mw_hhvmCollector(diamond.collector.Collector):
+
+    def get_default_config_help(self):
+        pass
+
+    def get_default_config(self):
+        config = super(mw_hhvmCollector, self).get_default_config()
+        config.update({
+            'host': 'localhost:9002',
+            'url': '/',
+            'timeout': 5,
+        })
+
+    def collect(self):
+        # publish stats with self.publish
+        url = "http://{}{}".format(
+            self.config['host']
+            self.config['url']
+        )
+        headers = {
+            'User-agent': 'diamond-hhvm-collector/1.0',
+        }
+        try:
+            req = urllib2.Request(url, None, headers)
+            response = urllib2.urlopen(req, None, self.config['timeout'])
+        except urllib2.HTTPError as e:
+            self.log.error(
+                'Got error status code %d from the HTTP server',
+                e.code)
+            return
+        except urllib2.URLError as e:
+            self.log.error('Could not contact server on localhost')
+            return
+
+        try:
+            data = json.load(response)
+            for k, v in data.iteritems():
+                self.publish(k, v)
+        except:
+            self.log.error(
+                "error parsing and publishing data received:\n%s",
+                response.read())
+            return
diff --git a/modules/mediawiki/manifests/monitoring/webserver.pp 
b/modules/mediawiki/manifests/monitoring/webserver.pp
index 310d1b0..bfe4612 100644
--- a/modules/mediawiki/manifests/monitoring/webserver.pp
+++ b/modules/mediawiki/manifests/monitoring/webserver.pp
@@ -10,6 +10,12 @@
     }
     else {
         $endpoints = {}
+        diamond::collector { 'hhvm_health':
+            ensure   => $ensure,
+            source   => 
'puppet:///modules/mediawiki/monitoring/collectors/hhvm.py',
+            settings => { url => '/check-health' },
+            require  => Apache::Site['hhvm-admin'],
+        }
     }
 
     # Basic vhost files

-- 
To view, visit https://gerrit.wikimedia.org/r/166003
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3b4d93a0fca7e7f48c6913623b0736ea78517259
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to