Status Page 2.0
Warning
This is not authoritative documentation. These features are not currently available in Zuul. They may change significantly before final implementation, or may never be fully completed.
The following specification describes the implementation of a new status page in the Zuul UI to improve the user experience.
Motivation
The current status page shows a lot of information about the different pipelines, queues and even the individual queue items and their jobs. This information can become quite overwhelming. Especially for larger tenants with a lot of pipelines and longer (gate) queues the current status page becomes more and more unusable.
For operators, this makes it hard to get a clear picture of what’s going on and for the individual developers it’s hard to find their individual changes (or queues).
Solution Approach
The new implementation of the status page will provide both a “operator-oriented” view and a “developer-oriented” view without mixing both into a single view (which is kind of what the current status view tries to do). Instead of showing all information on a single page, the new approach splits that information into different “scopes”:
Status / pipeline overview
Pipeline details
Individual change
Based on those scopes, the pages that handle those focus only on the relevant information, but don’t show too many details about the other scopes.
Use Cases
The new status page should provide solutions for the following use cases. Some of those are already covered by the current status page, but we list them to ensure that we don’t loose any existing functionality. The ones marked in bold are not (or not fully) covered by the current status page.
As an operator, I want to:
see the number of queue items in each pipeline together with their current state (queued/waiting, running/succeeding, failing)
provide different sorting options to see the most relevant/important pipelines at a glance (at the top) (e.g. sorted by pipeline type or number of queue items) [new]
see the entire list of configured pipelines
be able to hide (filter out) empty pipelines and queues [new]
easily identify failing queue items [improvement]
be able to dequeue or promote a queue item
see the timestamp of the last reconfiguration
see when a reconfiguration is ongoing [new] This requires a backend change as the information when a reconfig is ongoing is not yet available.
see the number of events in the tenant event queues
be able to filter for different attributes like queue name, change, project, branch, … [improvement]
be able to bookmark a filtered status page [improvement]
As a developer, I want to:
easily identify my change in context of it’s pipeline (and queue) [new]
see all of the pipelines my change is currently included in
see the jobs for my change and their state (queued, running, succeeded, failed)
follow a change through multiple pipelines including pre- and post-merge
Find the build results for my change and also access the build logs
Easily identify why a job is not yet running (waiting on job dependency, waiting on node request, …)