ci-health

ci-health-tests

This repo contains code to calculate metrics about the performance of CI systems based on Prow.

Definitions

Status

This status is updated every 3 hours. The average values are calculated with data from the previous 7 days since the execution time.

kubevirt/kubevirt

avg-merge-queue-length avg-time-to-merge avg-retests-to-merge merged-prs-with-no-retest

Latest execution data

Latest weeks data

Failures per SIG against last code push for merged PRs

These badges display the number of failures per SIG against merged PRs from the last 7 days.

Each of these failures contribute to the number of retests that occur in CI and delay the time to merge for PRs.

sig-compute-retests sig-storage-retests sig-network-retests sig-operator-retests sig-ci-retests sig-monitoring-retests

Quarantined Tests Per SIG

These badges display the number of tests that are currently quarantined per SIG.

More details on these tests can be found here

quarantine-compute quarantine-storage quarantine-network quarantine-monitoring quarantine-total

Top failed lanes:

failedjob1

failedjob2

failedjob3

failedjob4

failedjob5

failedjob6

failedjob7

failedjob8

failedjob9

failedjob10

The links to each of these failed jobs can be found in the latest execution data under the SIGRetests section

Historical data evolution

These plots will be updated every week.

Commands

The tool has two different commands:

Local execution

You can execute the tool locally to grab the stats of a specific repo that uses Prow, these are the requirements:

stats command

A generic stats command execution from the repo’s root looks like:

$ go run ./cmd/stats --gh-token /path/to/token --source <org/repo> --path /path/to/output/dir --data-days <days-to-query>

where:

You can check all the available options with:

$ go run ./cmd/stats --help

So, for instance, if you have stored the path of your GitHub token file in a GITHUB_TOKEN environment variable, a query for the last 7 days of kubevirt/kubevirt can look like:

$ go run ./cmd/stats --gh-token ${GITHUB_TOKEN} --source kubevirt/kubevirt --path /tmp/ci-health --data-days 7

batch command

batch executions are done in two modes:

A generic fetch batch command execution from the repo’s root looks like:

$ go run ./cmd/batch --gh-token /path/to/token --source <org/repo> --path $(pwd)/output --mode fetch --target-metric merged-prs --start-date 2020-05-19

where:

You can check all the available options with:

$ go run ./cmd/batch --help

To generate plots you should execute:

$ go run ./cmd/batch --gh-token /path/to/token --source <org/repo> --path $(pwd)/output --mode plot --target-metric merged-prs --start-date 2020-05-19

Plot mode requires data previously generated by fetch mode.

html-report command

A command that generates HTML reports of test case failures per SIG. To create a report for SIG Compute failures:

go run ./cmd/html-report --sig compute --results-path ./output/kubevirt/kubevirt/results.json --path /tmp/

This should create a HTML report called sig-compute-failure-report.html under /tmp/.