mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 17:19:37 +02: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',
|
||||
])
|
||||
|
||||
const LATEX_PASSES_RULES = new Set(['latex', 'lualatex', 'xelatex', 'pdflatex'])
|
||||
|
||||
function getCompileName(projectId, userId) {
|
||||
if (userId != null) {
|
||||
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({
|
||||
status,
|
||||
engine: request.compiler,
|
||||
@@ -743,6 +774,7 @@ function _emitMetrics(request, status, stats, timings) {
|
||||
group: request.compileGroup,
|
||||
draft: request.draft ? 'true' : 'false',
|
||||
stop_on_first_error: request.stopOnFirstError ? 'true' : 'false',
|
||||
passes,
|
||||
})
|
||||
|
||||
if (timings.sync != null) {
|
||||
@@ -763,6 +795,7 @@ function _emitMetrics(request, status, stats, timings) {
|
||||
engine: request.compiler,
|
||||
compile: request.metricsOpts.compile,
|
||||
group: request.compileGroup,
|
||||
passes: passes === 0 ? 'none' : passes === 1 ? 'single' : 'multiple',
|
||||
},
|
||||
timings.compile / 1000
|
||||
)
|
||||
@@ -781,20 +814,6 @@ function _emitMetrics(request, status, stats, timings) {
|
||||
if (timings.compileE2E != null) {
|
||||
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 = {
|
||||
|
||||
@@ -16,6 +16,7 @@ const compilesTotal = new prom.Counter({
|
||||
'image',
|
||||
'draft',
|
||||
'stop_on_first_error',
|
||||
'passes',
|
||||
],
|
||||
})
|
||||
|
||||
@@ -23,7 +24,7 @@ const compileDurationSeconds = new prom.Histogram({
|
||||
name: 'clsi_compile_duration_seconds',
|
||||
help: 'Duration of the latexmkrc invocation',
|
||||
buckets: COMPILE_TIME_BUCKETS,
|
||||
labelNames: ['status', 'engine', 'compile', 'group'],
|
||||
labelNames: ['status', 'engine', 'compile', 'group', 'passes'],
|
||||
})
|
||||
|
||||
const e2eCompileDurationSeconds = new prom.Histogram({
|
||||
|
||||
Reference in New Issue
Block a user