actions-metrics: Do our best not to fail the whole event processing on no API creds (#2459)
This commit is contained in:
parent
02d9add322
commit
a608abd124
|
|
@ -136,12 +136,27 @@ func (reader *EventReader) ProcessWorkflowJobEvent(ctx context.Context, event in
|
||||||
// job_conclusion -> (neutral, success, skipped, cancelled, timed_out, action_required, failure)
|
// job_conclusion -> (neutral, success, skipped, cancelled, timed_out, action_required, failure)
|
||||||
githubWorkflowJobConclusionsTotal.With(extraLabel("job_conclusion", *e.WorkflowJob.Conclusion, labels)).Inc()
|
githubWorkflowJobConclusionsTotal.With(extraLabel("job_conclusion", *e.WorkflowJob.Conclusion, labels)).Inc()
|
||||||
|
|
||||||
|
var (
|
||||||
|
exitCode = "na"
|
||||||
|
runTimeSeconds *float64
|
||||||
|
)
|
||||||
|
|
||||||
|
// We need to do our best not to fail the whole event processing
|
||||||
|
// when the user provided no GitHub API credentials.
|
||||||
|
// See https://github.com/actions/actions-runner-controller/issues/2424
|
||||||
|
if reader.GitHubClient != nil {
|
||||||
parseResult, err := reader.fetchAndParseWorkflowJobLogs(ctx, e)
|
parseResult, err := reader.fetchAndParseWorkflowJobLogs(ctx, e)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err, "reading workflow job log")
|
log.Error(err, "reading workflow job log")
|
||||||
return
|
return
|
||||||
} else {
|
}
|
||||||
log.Info("reading workflow_job logs", keysAndValues...)
|
|
||||||
|
exitCode = parseResult.ExitCode
|
||||||
|
|
||||||
|
s := parseResult.RunTime.Seconds()
|
||||||
|
runTimeSeconds = &s
|
||||||
|
|
||||||
|
log.WithValues(keysAndValues...).Info("reading workflow_job logs", "exit_code", exitCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if *e.WorkflowJob.Conclusion == "failure" {
|
if *e.WorkflowJob.Conclusion == "failure" {
|
||||||
|
|
@ -167,18 +182,20 @@ func (reader *EventReader) ProcessWorkflowJobEvent(ctx context.Context, event in
|
||||||
}
|
}
|
||||||
if *conclusion == "timed_out" {
|
if *conclusion == "timed_out" {
|
||||||
failedStep = fmt.Sprint(i)
|
failedStep = fmt.Sprint(i)
|
||||||
parseResult.ExitCode = "timed_out"
|
exitCode = "timed_out"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
githubWorkflowJobFailuresTotal.With(
|
githubWorkflowJobFailuresTotal.With(
|
||||||
extraLabel("failed_step", failedStep,
|
extraLabel("failed_step", failedStep,
|
||||||
extraLabel("exit_code", parseResult.ExitCode, labels),
|
extraLabel("exit_code", exitCode, labels),
|
||||||
),
|
),
|
||||||
).Inc()
|
).Inc()
|
||||||
}
|
}
|
||||||
|
|
||||||
githubWorkflowJobRunDurationSeconds.With(extraLabel("job_conclusion", *e.WorkflowJob.Conclusion, labels)).Observe(parseResult.RunTime.Seconds())
|
if runTimeSeconds != nil {
|
||||||
|
githubWorkflowJobRunDurationSeconds.With(extraLabel("job_conclusion", *e.WorkflowJob.Conclusion, labels)).Observe(*runTimeSeconds)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue