فهرست منبع

add metrics for ASpell workers

Brian Gough 11 سال پیش
والد
کامیت
7936269804
2فایلهای تغییر یافته به همراه6 افزوده شده و 0 حذف شده
  1. 3 0
      services/spelling/app/coffee/ASpellWorker.coffee
  2. 3 0
      services/spelling/app/coffee/ASpellWorkerPool.coffee

+ 3 - 0
services/spelling/app/coffee/ASpellWorker.coffee

@@ -1,5 +1,6 @@
 child_process = require("child_process")
 logger = require 'logger-sharelatex'
+metrics = require('metrics-sharelatex')
 
 BATCH_SIZE = 100
 
@@ -9,9 +10,11 @@ class ASpellWorker
 		@count = 0
 		@pipe = child_process.spawn("aspell", ["pipe", "-t", "--encoding=utf-8", "-d", language])
 		logger.log process: @pipe.pid, lang: @language, "starting new aspell worker"
+		metrics.inc "aspellWorker-start-" + @language
 		@pipe.on 'exit', () =>
 			@state = 'killed'
 			logger.log process: @pipe.pid, lang: @language, "aspell worker has exited"
+			metrics.inc "aspellWorker-exit-" + @language
 		@pipe.on 'error', (err) =>
 			@state = 'error'
 			@callback err, []

+ 3 - 0
services/spelling/app/coffee/ASpellWorkerPool.coffee

@@ -1,6 +1,7 @@
 ASpellWorker = require "./ASpellWorker"
 _ = require "underscore"
 logger = require 'logger-sharelatex'
+metrics = require('metrics-sharelatex')
 
 class ASpellWorkerPool
 	MAX_REQUESTS: 100*1024
@@ -18,12 +19,14 @@ class ASpellWorkerPool
 		worker.pipe.on 'exit', () =>
 			@cleanup()
 		@PROCESS_POOL.push(worker)
+		metrics.gauge 'aspellWorkerPool-size', @PROCESS_POOL.length
 		return worker
 
 	cleanup: () ->
 		active = @PROCESS_POOL.filter (worker) ->
 			worker.state != 'killed'
 		@PROCESS_POOL = active
+		metrics.gauge 'aspellWorkerPool-size', @PROCESS_POOL.length
 
 	check: (language, words, timeout, callback) ->
 		# look for an existing process in the pool