buildanalyzer

command
v4.1.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

README

Build Analyzer

A tool for analyzing the failure causes of builds in a cluster.

How to build

$ go build .

Basic Usage

This tool takes a json file input containing an ObjectList of builds, such as retrieved via:

$ oc get builds --all-namespaces -o json > builds.json

The file is passed with the -f argument:

$ buildanalyzer -f builds.json

By default it will dump some analysis about the number of builds in each state, including success and failure. It will also dump some information about the different reasons for failure and the number of builds that failed with each reason.

The tool will filter the list of builds to determine which builds are "interesting" and only perform analysis on those builds. See the flags section for details on how the "interesting" builds are determined.

Optional Flags

  • --trigger-time accepts a time formatted such as 2017-01-02T15:04:05+00:00. This time is used to divide builds into "pre-upgrade" and "post-upgrade". Builds before this time are used to check if a particular BuildConfig ever succeeded previously. Builds after this time are inspected for failure. Builds which failed after this time and succeeded at least once before this time, are treated as "interesting" and subject to analysis by the tool. If no time is provided, all builds are considered "interesting" (subject to other flag settings).

  • --image-change-only will only consider builds "interesting" if they were triggered by an imagechange. The intent is to limit the analysis to builds kicked off by an imagestream update/import as might occur during a cluster upgrade. Builds prior to the trigger-time (if any) are still used to determine if the BuildConfig ever succeeded, regardless of their trigger cause. Defaults to true.

  • --start-time accepts a time formatted such as 2017-01-02T15:04:05+00:00. Builds before this time will be ignored/filtered, including for purposes of determining if a particular BuildConfig ever succeeded.

  • --push-times will dump how long each "interesting" and successful build took to push. Defaults to false.

  • --test-clone will attempt to git clone the git source url for any "interesting" build which failed while fetching source. Builds for which the clone is successful will be reported (as this indicates the fetch source failure was not due to an inaccessible repository, so the failure should be investigated more thoroughly). Defaults to false.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL