mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 22:23:42 +01:00
Merge pull request #29076 from overleaf/em-metrics-compile-passes
Add number of passes to compile metrics GitOrigin-RevId: b9a6b6691f2feb7f376cd1bb94c81ecb7c3bc580
This commit is contained in:
@@ -40,6 +40,8 @@ const KNOWN_LATEXMK_RULES = new Set([
|
|||||||
'xelatex',
|
'xelatex',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
const LATEX_PASSES_RULES = new Set(['latex', 'lualatex', 'xelatex', 'pdflatex'])
|
||||||
|
|
||||||
function getCompileName(projectId, userId) {
|
function getCompileName(projectId, userId) {
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
return `${projectId}-${userId}`
|
return `${projectId}-${userId}`
|
||||||
@@ -735,6 +737,35 @@ function _emitMetrics(request, status, stats, timings) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const runs = stats.latexmk?.['latexmk-rule-times']
|
||||||
|
let passes = 0
|
||||||
|
if (runs != null) {
|
||||||
|
let cumulativeRuleTimeMs = 0
|
||||||
|
for (const run of runs) {
|
||||||
|
if (LATEX_PASSES_RULES.has(run.rule)) {
|
||||||
|
passes += 1
|
||||||
|
}
|
||||||
|
|
||||||
|
const rule = KNOWN_LATEXMK_RULES.has(run.rule) ? run.rule : 'other'
|
||||||
|
ClsiMetrics.latexmkRuleDurationSeconds.observe(
|
||||||
|
{
|
||||||
|
group: request.compileGroup,
|
||||||
|
rule,
|
||||||
|
},
|
||||||
|
run.time_ms / 1000
|
||||||
|
)
|
||||||
|
cumulativeRuleTimeMs += run.time_ms
|
||||||
|
}
|
||||||
|
|
||||||
|
const totalTimeMs = stats.latexmk?.['latexmk-time']?.total
|
||||||
|
if (totalTimeMs != null) {
|
||||||
|
ClsiMetrics.latexmkRuleDurationSeconds.observe(
|
||||||
|
{ group: request.compileGroup, rule: 'overhead' },
|
||||||
|
(totalTimeMs - cumulativeRuleTimeMs) / 1000
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ClsiMetrics.compilesTotal.inc({
|
ClsiMetrics.compilesTotal.inc({
|
||||||
status,
|
status,
|
||||||
engine: request.compiler,
|
engine: request.compiler,
|
||||||
@@ -743,6 +774,7 @@ function _emitMetrics(request, status, stats, timings) {
|
|||||||
group: request.compileGroup,
|
group: request.compileGroup,
|
||||||
draft: request.draft ? 'true' : 'false',
|
draft: request.draft ? 'true' : 'false',
|
||||||
stop_on_first_error: request.stopOnFirstError ? 'true' : 'false',
|
stop_on_first_error: request.stopOnFirstError ? 'true' : 'false',
|
||||||
|
passes,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (timings.sync != null) {
|
if (timings.sync != null) {
|
||||||
@@ -763,6 +795,7 @@ function _emitMetrics(request, status, stats, timings) {
|
|||||||
engine: request.compiler,
|
engine: request.compiler,
|
||||||
compile: request.metricsOpts.compile,
|
compile: request.metricsOpts.compile,
|
||||||
group: request.compileGroup,
|
group: request.compileGroup,
|
||||||
|
passes: passes === 0 ? 'none' : passes === 1 ? 'single' : 'multiple',
|
||||||
},
|
},
|
||||||
timings.compile / 1000
|
timings.compile / 1000
|
||||||
)
|
)
|
||||||
@@ -781,20 +814,6 @@ function _emitMetrics(request, status, stats, timings) {
|
|||||||
if (timings.compileE2E != null) {
|
if (timings.compileE2E != null) {
|
||||||
ClsiMetrics.e2eCompileDurationSeconds.observe(timings.compileE2E / 1000)
|
ClsiMetrics.e2eCompileDurationSeconds.observe(timings.compileE2E / 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
const runs = stats.latexmk?.['latexmk-rule-times']
|
|
||||||
if (runs != null) {
|
|
||||||
for (const run of runs) {
|
|
||||||
const rule = KNOWN_LATEXMK_RULES.has(run.rule) ? run.rule : 'other'
|
|
||||||
ClsiMetrics.latexmkRuleDurationSeconds.observe(
|
|
||||||
{
|
|
||||||
group: request.compileGroup,
|
|
||||||
rule,
|
|
||||||
},
|
|
||||||
run.time_ms / 1000
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ const compilesTotal = new prom.Counter({
|
|||||||
'image',
|
'image',
|
||||||
'draft',
|
'draft',
|
||||||
'stop_on_first_error',
|
'stop_on_first_error',
|
||||||
|
'passes',
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ const compileDurationSeconds = new prom.Histogram({
|
|||||||
name: 'clsi_compile_duration_seconds',
|
name: 'clsi_compile_duration_seconds',
|
||||||
help: 'Duration of the latexmkrc invocation',
|
help: 'Duration of the latexmkrc invocation',
|
||||||
buckets: COMPILE_TIME_BUCKETS,
|
buckets: COMPILE_TIME_BUCKETS,
|
||||||
labelNames: ['status', 'engine', 'compile', 'group'],
|
labelNames: ['status', 'engine', 'compile', 'group', 'passes'],
|
||||||
})
|
})
|
||||||
|
|
||||||
const e2eCompileDurationSeconds = new prom.Histogram({
|
const e2eCompileDurationSeconds = new prom.Histogram({
|
||||||
|
|||||||
Reference in New Issue
Block a user