David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 1 | LLVM Buildbot Monitor |
| 2 | ===================== |
Renato Golin | 94cc104 | 2016-04-26 11:02:23 +0100 | [diff] [blame] | 3 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 4 | This is to be left running on a server or desktop as monitoring for your buildbots. |
| 5 | It purely reports the status of the builds. If you want hardware monitoring, look |
| 6 | elsewhere. |
Renato Golin | 94cc104 | 2016-04-26 11:02:23 +0100 | [diff] [blame] | 7 | |
David Spickett | 2742055 | 2023-11-23 12:55:23 +0000 | [diff] [blame^] | 8 | It supports Buildbot (as used by LLVM) . It does not support LLVM Green Dragon |
| 9 | (https://green.lab.llvm.org/green/). |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 10 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 11 | Currently we have one monitor running at http://llvm.validation.linaro.org/. |
| 12 | Bookmark this if you have a need to check bot status at a glance. |
| 13 | |
| 14 | JSON Format |
| 15 | ----------- |
| 16 | |
| 17 | The JSON file describes the bots we want to monitor and which master/build service |
| 18 | they connect to. |
| 19 | |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 20 | The base structure is a list of masters, which has a few properties and a list |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 21 | of builder groups, which in turn also have some properties and a list of bots |
| 22 | (which in Buildbot terms are actually called "Builders" but we ended up calling |
| 23 | them bots here). |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 24 | |
| 25 | Master properties: |
| 26 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 27 | "name": Name of the master, which will appear as the section title. |
| 28 | "base_url": The base URL of the master, which will be used to make API calls. |
| 29 | For example for LLVM this might be "https://lab.llvm.org/buildbot". |
| 30 | "builder_url": The part of the URL that refers to the list of builders. |
| 31 | Will be added to base_url when making API calls. |
| 32 | "build_url": Part of the URL that refers to the list of builds. Added to base_url |
| 33 | when making API calls. |
| 34 | "ignore" : Set to "true" to hide the master from the page. |
| 35 | "builders": [ ...a list of builder groups as detailed below... ] |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 36 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 37 | Builder group properties: |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 38 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 39 | "name": Name of this group. "fast bots", "self-hosting", etc. Used as the section title. |
| 40 | "ignore" : Set to "true" to hide this builder group from the page. |
| 41 | "bots": [ ...a list of bots as decribed below... ] |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 42 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 43 | Bot properties: |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 44 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 45 | "name": The exact name of the buildbot. This will be used to build URLs for API calls. |
| 46 | "ignore": Set to "true" to ignore the status of this bot. |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 47 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 48 | Notes on bots: |
| 49 | * Bots may be repeated across builder groups if they fall into multiple categories |
| 50 | (this does not slow down the monitor as results are cached). |
| 51 | * The same bot name on 2 different masters refers to 2 different bots. |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 52 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 53 | Note that "ignore" has two different behaviours: |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 54 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 55 | * On masters and builder groups, it omits the entire section from the output. |
| 56 | * On bots it shows the bot but ignores their status. Meaning that an ignored bot failing |
| 57 | does not make the overall page status failed. |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 58 | |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 59 | HTML Page |
| 60 | --------- |
| 61 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 62 | The script will generate an HTML page. This page is separated into blocks: |
| 63 | * Masters which contain... |
| 64 | * Builder Groups which contain... |
| 65 | * Bots |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 66 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 67 | The date is printed at the top of the page so you know when the results were generated. |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 68 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 69 | Bots that are offline or partially fail to read via the API will show up with a message |
| 70 | along the lines of "<bot name> is offline!". The page should still update correctly |
| 71 | for the rest of the bots. |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 72 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 73 | Each listed bot has these columns: |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 74 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 75 | * "Buildbot": This shows the name and a link to the master's web interface for the bot. |
| 76 | * "Status": The status of the last finished build. PASS or FAIL (currently cancelled |
| 77 | is also treated as a failure). |
| 78 | * "T Since": The time since the last build finished. This is useful for spotting bots |
| 79 | that have gotten disconnected. If this time is greater than 24 hours, it will be shown |
| 80 | in red. |
| 81 | * "Duration": The length of the last build. |
Antoine Moynault | 0cbe02e | 2023-06-21 08:13:57 +0000 | [diff] [blame] | 82 | * "Latest": The build number of the last finished build, which itself will be a link |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 83 | to the results page for that build. |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 84 | * "Failing steps": The failed build steps, if it was a failed build. |
David Spickett | f850243 | 2023-07-07 15:52:26 +0100 | [diff] [blame] | 85 | * "Build In Progress": This will be "Yes" if there is a build currently running, and |
| 86 | the text will link to the build. Or "No" if there is not. If we cannot determine this, |
| 87 | it will be left blank and you should check the builder's status page instead. |
Antoine Moynault | 0cbe02e | 2023-06-21 08:13:57 +0000 | [diff] [blame] | 88 | * "1st Failing": The number of the first failed build, if the bot fails for several |
| 89 | builds. |
| 90 | * "Failing Since": The time since the first failed build finished. This is useful for |
| 91 | spotting bots that fail for a long time. |
Renato Golin | 662105b | 2016-06-10 12:47:43 +0100 | [diff] [blame] | 92 | |
David Spickett | d90e09a | 2022-10-26 11:56:07 +0100 | [diff] [blame] | 93 | Note: "finished" here refers to the build ending be that by success, cancellation or |
| 94 | failure. |