Command beginning timestamps on job logs
Problem to solve
The aim is to understand how long each script line in the CI pipeline jobs takes.
Target audience
-
Delaney, Development Team Lead, https://design.gitlab.com/research/personas#persona-delaney
-
Sasha, Software Developer, https://design.gitlab.com/research/personas#persona-sasha
-
Devon, DevOps Engineer, https://design.gitlab.com/research/personas#persona-devon
-
Sidney, Systems Administrator, https://design.gitlab.com/research/personas#persona-sidney
Further details
Ultimately all projects aim to have faster pipelines, which usually requires specific actions depending of the project itself. In the current structure users get to see the timings of individual jobs, which allows users to see which job took how long and ultimately allows users to focus on improving those individual jobs, but when it comes to debugging which step inside the job takes time it is usually trial and error as the local runs of the steps does not necessarily be a representative of the actual CI performance of the job. Also, currently there is no way to see whether the initial steps runner takes takes long time or the script itself, which for example may lead users to use their own runners if the shared runners' image pulling is the bottleneck of those jobs, which means if this is understood a better allocation of resources seems to be possible, at least would be encouraged.
Currently, there is no way of seeing how long individual commands take on the job logs.
Proposal
A very simple -from user perspective, of course- and intuitive solution would be to include the timestamps of individual errors on command hover, which would basically show when the individual command has started executing. Additionally, showing the execution time in seconds or milliseconds can be an option, especially for the last step of the job to understand how long the last step took, but does not add too much over the timestamps.
Here is a quick and dirty example look, which would appear with hover on the green command instruction:
What does success look like, and how can we measure that?
Ideally, this is a nice-to-have feature I'd say, and the success metric can be decreased time per job, which should translate roughly decrease in costs and increase in user engagement.
Acceptance criteria would be to have the timestamp information for each green-colored instruction on the job logs page on hover.