Using the Analysis UI

See an overview of your CI Statistics then dig deep into individual workflows, jobs, and runs.

When you first select a repo in CI Analytics, you will see the Overview screen which contains charts and tables to give you a high-level view of the state of your CI system. The charts show the aggregate Average Daily Jobs per Hour, Total CI Time, and Wait Time per day over the selected time period. You can adjust the time period using the selector just below the first chart on the left.

The bottom half of the dashboard shows aggregate statistics for each of your CI workflows over the selected time period. The columns are as follows:



Name of the workflow, a link to the yaml file on GitHub defining the workflow, and a link to view all of the runs for that workflow.

Run history

Chart for the last 60 runs of the workflow. Hover over a bar in the chart to see details

Failure Rate

How often the workflow failed during the selected time period.

P50 Duration

Average (50th percentile) duration of the workflow during the selected time period. This shows the time of the typical run.

P95 Duration

95th percentile duration of the workflow during the selected time period. This shows the time of the outlier runs that took longer than usual.

Total Duration

Total amount of time these runs took all together, often correlated with your server costs.

Total Runs

Total number of runs performed (both successful and failed) during the selected time period.

Filtering and sorting your data

Your data in CI Analytics is aggregated in the following hierarchy - Workflow -> Jobs -> Steps. At each level of the data hierarchy, you see an aggregation of the underlying runs that match your selected filter. At any time, you can dive into the underlying data by selecting View runs which will show the Runs View for that dataset. The set of runs that are being aggregated and presented can be filtered by the following criteria: By Date Work can be filtered by common ranges: 7 days, 14 days, 30 days, 3 months, 6 months, and any custom date range. Date filters can be applied in the date selector in the nav bar or by hovering over a data point in the chart and selecting Zoom In By Branch Type


Shows work with any branch filtering


Work that is performed against your main or master branch.


Work that is performed by a merge queue service (including trunk merge and GitHub's MergeQueue)

pull request

Work attributable to the testing of a pull request


Work attributable to the testing of a PR created by Dependabot


Work attributable to the testing of a PR created by Renovsate

By Conclusion The conclusions filter allows you to look exclusively at work based on its reported termination state: success, failure, canceled, time out, skipped, etc... If you are trying to understand the performance of your CI tasks, you will likely want to filter by success. Failures can occur at any time, but the success path is a more reliable view of the expected runtime of your system. By Name You can filter your data by name (workflow, job, step) in the search box at the bottom-right of the chart view.

Exploring your data by Workflow / Job / Step

From the Analytics Overview, you can dive into the hierarchy of your CI data. At each level of the hierarchy, you will see aggregated performance information and can dive deeper into the contents. The top of the view shows a chart of aggregate statistics for the filtered data set. You can customize this view to bucketize this data by week/day/hour as applicable. Hovering over points in the chart will show details for that time slice. If you click on one of the data buckets or points on the graph, you can Zoom into that period of data or view the underlying runs.

Tags: Aggregation at the job level for GitHub workflows will implicitly shard against the 'runs-on' field of the GitHub workflow. For example, if a job was running onubuntu-latest and later switched to a different runner set - a unique row will be created for each distinct runs-on match. When there is a name collision with different underlying tags, the unique tag will be surfaced in the view. This makes it possible, for example, to compare a runner's impact on your system's performance.

Runs View

The Runs View allows you to explore the underlying data from an aggregated view. Each row represented a single execution, including its Start time, run time, waiting time, and conclusion. Where available, the rows will include the Pull Request associated with this work, the commit it ran against, links to the associated logs, and the specific machine that the job ran on.

Last updated