Просмотр исходного кода

non tested promethius counters added

Henry Oswald 8 лет назад
Родитель
Сommit
4b075db038
2 измененных файлов с 17 добавлено и 1 удалено
  1. 15 0
      libraries/metrics/metrics.coffee
  2. 2 1
      libraries/metrics/package.json

+ 15 - 0
libraries/metrics/metrics.coffee

@@ -1,6 +1,9 @@
 StatsD = require('lynx')
 statsd = new StatsD(process.env["STATSD_HOST"] or "localhost", 8125, {on_error:->})
 
+prom = require('prom-client')
+collectDefaultMetrics = client.collectDefaultMetrics
+
 name = "unknown"
 hostname = require('os').hostname()
 
@@ -14,6 +17,8 @@ require "./uv_threadpool_size"
 module.exports = Metrics =
 	initialize: (_name) ->
 		name = _name
+		collectDefaultMetrics({ timeout: 5000, prefix: name })
+
 
 	registerDestructor: (func) ->
 		destructors.push func
@@ -23,9 +28,19 @@ module.exports = Metrics =
 
 	inc : (key, sampleRate = 1)->
 		statsd.increment buildKey(key), sampleRate
+		counter = new prom.Counter({
+		  name: key,
+		  help: key #https://prometheus.io/docs/instrumenting/writing_exporters/#help-strings this is probably wrong
+		});
+		counter.inc()
 
 	count : (key, count, sampleRate = 1)->
 		statsd.count buildKey(key), count, sampleRate
+		counter = new prom.Counter({
+		  name: key,
+		  help: key #https://prometheus.io/docs/instrumenting/writing_exporters/#help-strings this is probably wrong
+		});
+		counter.inc(count)
 
 	timing: (key, timeSpan, sampleRate)->
 		statsd.timing(buildKey(key), timeSpan, sampleRate)

+ 2 - 1
libraries/metrics/package.json

@@ -7,8 +7,9 @@
     "url": "https://github.com/sharelatex/metrics-sharelatex.git"
   },
   "dependencies": {
-    "lynx": "~0.1.1",
     "coffee-script": "1.6.0",
+    "lynx": "~0.1.1",
+    "prom-client": "^11.1.3",
     "underscore": "~1.6.0"
   },
   "devDependencies": {