mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
add metrics for latexmk runs and errors
This commit is contained in:
parent
124c91e302
commit
a26f4fc5f6
3 changed files with 25 additions and 6 deletions
|
@ -10,6 +10,7 @@ child_process = require "child_process"
|
||||||
CommandRunner = require(Settings.clsi?.commandRunner or "./CommandRunner")
|
CommandRunner = require(Settings.clsi?.commandRunner or "./CommandRunner")
|
||||||
DraftModeManager = require "./DraftModeManager"
|
DraftModeManager = require "./DraftModeManager"
|
||||||
fs = require("fs")
|
fs = require("fs")
|
||||||
|
os = require("os")
|
||||||
|
|
||||||
module.exports = CompileManager =
|
module.exports = CompileManager =
|
||||||
doCompile: (request, callback = (error, outputFiles) ->) ->
|
doCompile: (request, callback = (error, outputFiles) ->) ->
|
||||||
|
@ -38,10 +39,17 @@ module.exports = CompileManager =
|
||||||
compiler: request.compiler
|
compiler: request.compiler
|
||||||
timeout: request.timeout
|
timeout: request.timeout
|
||||||
image: request.imageName
|
image: request.imageName
|
||||||
}, (error) ->
|
}, (error, output, stats) ->
|
||||||
return callback(error) if error?
|
return callback(error) if error?
|
||||||
logger.log project_id: request.project_id, time_taken: Date.now() - timer.start, "done compile"
|
Metrics.inc("compiles")
|
||||||
timer.done()
|
for metric_key, metric_value of stats or {}
|
||||||
|
Metrics.count(metric_key, metric_value)
|
||||||
|
loadavg = os.loadavg?()
|
||||||
|
Metrics.gauge("load-avg", loadavg[0]) if loadavg?
|
||||||
|
ts = timer.done()
|
||||||
|
logger.log {project_id: request.project_id, time_taken: ts, stats:stats, loadavg:loadavg}, "done compile"
|
||||||
|
if stats?["latex-runs"] > 0
|
||||||
|
Metrics.timing("run-compile-per-pass", ts / stats["latex-runs"])
|
||||||
|
|
||||||
OutputFileFinder.findOutputFiles request.resources, compileDir, (error, outputFiles) ->
|
OutputFileFinder.findOutputFiles request.resources, compileDir, (error, outputFiles) ->
|
||||||
return callback(error) if error?
|
return callback(error) if error?
|
||||||
|
|
|
@ -27,9 +27,20 @@ module.exports = LatexRunner =
|
||||||
else
|
else
|
||||||
return callback new Error("unknown compiler: #{compiler}")
|
return callback new Error("unknown compiler: #{compiler}")
|
||||||
|
|
||||||
CommandRunner.run project_id, command, directory, image, timeout, callback
|
CommandRunner.run project_id, command, directory, image, timeout, (error, output) ->
|
||||||
|
return callback(error) if error?
|
||||||
|
runs = output?.stderr?.match(/^Run number \d+ of .*latex/mg)?.length or 0
|
||||||
|
failed = if output?.stdout?.match(/^Latexmk: Errors/m)? then 1 else 0
|
||||||
|
# counters from latexmk output
|
||||||
|
stats = {}
|
||||||
|
stats["latexmk-errors"] = failed
|
||||||
|
stats["latex-runs"] = runs
|
||||||
|
stats["latex-runs-with-errors"] = if failed then runs else 0
|
||||||
|
stats["latex-runs-#{runs}"] = 1
|
||||||
|
stats["latex-runs-with-errors-#{runs}"] = if failed then 1 else 0
|
||||||
|
callback error, output, stats
|
||||||
|
|
||||||
_latexmkBaseCommand: [ "latexmk", "-cd", "-f", "-jobname=output", "-auxdir=$COMPILE_DIR", "-outdir=$COMPILE_DIR"]
|
_latexmkBaseCommand: ["latexmk", "-cd", "-f", "-jobname=output", "-auxdir=$COMPILE_DIR", "-outdir=$COMPILE_DIR"]
|
||||||
|
|
||||||
_pdflatexCommand: (mainFile) ->
|
_pdflatexCommand: (mainFile) ->
|
||||||
LatexRunner._latexmkBaseCommand.concat [
|
LatexRunner._latexmkBaseCommand.concat [
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
"request": "~2.21.0",
|
"request": "~2.21.0",
|
||||||
"logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.0.0",
|
"logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.0.0",
|
||||||
"settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0",
|
"settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0",
|
||||||
"metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.3.0",
|
"metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.5.0",
|
||||||
"sequelize": "^2.1.3",
|
"sequelize": "^2.1.3",
|
||||||
"wrench": "~1.5.4",
|
"wrench": "~1.5.4",
|
||||||
"smoke-test-sharelatex": "git+https://github.com/sharelatex/smoke-test-sharelatex.git#v0.2.0",
|
"smoke-test-sharelatex": "git+https://github.com/sharelatex/smoke-test-sharelatex.git#v0.2.0",
|
||||||
|
|
Loading…
Reference in a new issue