refine statistics collection

This commit is contained in:
Robin Olsen
2026-03-24 12:31:15 +01:00
parent 638d2dd670
commit fc10321430
4 changed files with 139 additions and 56 deletions

View File

@@ -44,10 +44,11 @@ func (s *FileMetricsStore) Append(ctx context.Context, taskName string, run mode
}
metrics := models.TaskMetricsFile{
ID: bson.NewObjectID(),
ParticipantID: s.participantID,
TaskName: taskName,
Runs: []models.TaskRunMetrics{},
MetricsVersion: models.CurrentMetricsVersion,
ID: bson.NewObjectID(),
ParticipantID: s.participantID,
TaskName: taskName,
Runs: []models.TaskRunMetrics{},
}
if err := readMetrics(&metrics, s.path); err != nil {
@@ -57,6 +58,12 @@ func (s *FileMetricsStore) Append(ctx context.Context, taskName string, run mode
if metrics.TaskName == "" {
metrics.TaskName = taskName
}
if metrics.MetricsVersion == 0 {
metrics.MetricsVersion = models.CurrentMetricsVersion
}
if run.MetricsVersion == 0 {
run.MetricsVersion = models.CurrentMetricsVersion
}
run.RunID = len(metrics.Runs) + 1
metrics.Runs = append(metrics.Runs, run)

View File

@@ -39,12 +39,27 @@ func buildTaskStatsSummary(runs []models.TaskRunMetrics) models.TaskStatsSummary
summary.IncompleteRuns++
}
switch run.RunOutcome {
case models.RunOutcomeInfraError:
summary.InfraFailures++
case models.RunOutcomeUserQuit:
summary.UserQuits++
}
// Validation
summary.ValidationAttempts += run.ValidationAttempts
summary.ValidationManualAttempts += run.ValidationManualAttempts
summary.ValidationAutoRefreshes += run.ValidationAutoRefreshes
summary.ValidationRefreshes += run.ValidationRefreshes
summary.ValidationSuccesses += run.ValidationSuccesses
summary.ValidationFailures += run.ValidationFailures
summary.ValidationChecksPassed += run.ValidationChecksPassed
summary.ValidationChecksFailed += run.ValidationChecksFailed
if run.AttemptsToFirstSuccess > 0 {
summary.RunsWithFirstSuccess++
summary.TotalAttemptsToFirstSuccess += run.AttemptsToFirstSuccess
summary.TotalTimeToFirstSuccessMs += run.TimeToFirstSuccessMs
}
// Questionnaire
if run.QuestionnaireCompleted {