From 7eb1c019941e4731166d1ab62fd344e18e4e061b Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 9 Aug 2017 11:34:16 +0100 Subject: [PATCH] add metrics for incremental compiles --- .../web/app/coffee/Features/Compile/ClsiManager.coffee | 7 +++++++ .../test/UnitTests/coffee/Compile/ClsiManagerTests.coffee | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/services/web/app/coffee/Features/Compile/ClsiManager.coffee b/services/web/app/coffee/Features/Compile/ClsiManager.coffee index e44f8c4d78..769e82a4c1 100755 --- a/services/web/app/coffee/Features/Compile/ClsiManager.coffee +++ b/services/web/app/coffee/Features/Compile/ClsiManager.coffee @@ -13,6 +13,7 @@ _ = require("underscore") async = require("async") ClsiFormatChecker = require("./ClsiFormatChecker") DocumentUpdaterHandler = require "../DocumentUpdater/DocumentUpdaterHandler" +Metrics = require('metrics-sharelatex') module.exports = ClsiManager = @@ -125,16 +126,22 @@ module.exports = ClsiManager = project.compiler = "pdflatex" if options.incremental or options.syncType? # new way, either incremental or full + timer = new Metrics.Timer("editor.compile-getdocs-redis") ClsiManager.getContentFromDocUpdaterIfMatch project_id, project, (error, projectStateHash, docUpdaterDocs) -> + timer.done() return callback(error) if error? logger.log project_id: project_id, projectStateHash: projectStateHash, docs: docUpdaterDocs?, "checked project state" # see if we can send an incremental update to the CLSI if docUpdaterDocs? and options.syncType isnt "full" + Metrics.inc "compile-from-redis" ClsiManager._buildRequestFromDocupdater project_id, options, project, projectStateHash, docUpdaterDocs, callback else + Metrics.inc "compile-from-mongo" ClsiManager._buildRequestFromMongo project_id, options, project, projectStateHash, callback else # old way, always from mongo + timer = new Metrics.Timer("editor.compile-getdocs-mongo") ClsiManager._getContentFromMongo project_id, (error, docs, files) -> + timer.done() return callback(error) if error? ClsiManager._finaliseRequest project_id, options, project, docs, files, callback diff --git a/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee b/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee index 0cca53d061..6b4727f7a7 100644 --- a/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee +++ b/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee @@ -36,6 +36,10 @@ describe "ClsiManager", -> "logger-sharelatex": @logger = { log: sinon.stub(), error: sinon.stub(), warn: sinon.stub() } "request": @request = sinon.stub() "./ClsiFormatChecker": @ClsiFormatChecker + "metrics-sharelatex": @Metrics = + Timer: class Timer + done: sinon.stub() + inc: sinon.stub() @project_id = "project-id" @user_id = "user-id" @callback = sinon.stub()