add timing information from /usr/bin/time

This commit is contained in:
Brian Gough 2016-05-09 16:00:24 +01:00
parent ebcf9a75ae
commit 3eebca4c01
2 changed files with 12 additions and 6 deletions

View file

@ -43,17 +43,19 @@ module.exports = CompileManager =
compiler: request.compiler compiler: request.compiler
timeout: request.timeout timeout: request.timeout
image: request.imageName image: request.imageName
}, (error, output, stats) -> }, (error, output, stats, timings) ->
return callback(error) if error? return callback(error) if error?
Metrics.inc("compiles-succeeded") Metrics.inc("compiles-succeeded")
for metric_key, metric_value of stats or {} for metric_key, metric_value of stats or {}
Metrics.count(metric_key, metric_value) Metrics.count(metric_key, metric_value)
for metric_key, metric_value of timings or {}
Metrics.timing(metric_key, metric_value)
loadavg = os.loadavg?() loadavg = os.loadavg?()
Metrics.gauge("load-avg", loadavg[0]) if loadavg? Metrics.gauge("load-avg", loadavg[0]) if loadavg?
ts = timer.done() ts = timer.done()
logger.log {project_id: request.project_id, time_taken: ts, stats:stats, loadavg:loadavg}, "done compile" logger.log {project_id: request.project_id, time_taken: ts, stats:stats, timings:timings, loadavg:loadavg}, "done compile"
if stats?["latex-runs"] > 0 if stats?["latex-runs"] > 0 and timings?["cpu-time"] > 0
Metrics.timing("run-compile-per-pass", ts / stats["latex-runs"]) Metrics.timing("run-compile-per-pass", timings["cpu-time"] / 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?

View file

@ -41,9 +41,13 @@ module.exports = LatexRunner =
stats["latex-runs-with-errors"] = if failed then runs else 0 stats["latex-runs-with-errors"] = if failed then runs else 0
stats["latex-runs-#{runs}"] = 1 stats["latex-runs-#{runs}"] = 1
stats["latex-runs-with-errors-#{runs}"] = if failed then 1 else 0 stats["latex-runs-with-errors-#{runs}"] = if failed then 1 else 0
callback error, output, stats # timing information from /usr/bin/time
timings = {}
timings["cpu-percent"] = output?.stderr?.match(/Percent of CPU this job got: (\d+)/m)?[1] or 0
timings["cpu-time"] = output?.stderr?.match(/User time.*: (\d+.\d+)/m)?[1] or 0
callback error, output, stats, timings
_latexmkBaseCommand: ["latexmk", "-cd", "-f", "-jobname=output", "-auxdir=$COMPILE_DIR", "-outdir=$COMPILE_DIR"] _latexmkBaseCommand: ["/usr/bin/time", "-v", "latexmk", "-cd", "-f", "-jobname=output", "-auxdir=$COMPILE_DIR", "-outdir=$COMPILE_DIR"]
_pdflatexCommand: (mainFile) -> _pdflatexCommand: (mainFile) ->
LatexRunner._latexmkBaseCommand.concat [ LatexRunner._latexmkBaseCommand.concat [