LLVM Buildbot Monitor ===================== This is to be left running on a server or desktop as monitoring for your buildbots. It purely reports the status of the builds. If you want hardware monitoring, look elsewhere. It supports Buildbot (as used by LLVM) . It does not support LLVM Green Dragon (https://green.lab.llvm.org/green/). Currently we have one monitor running at http://llvm.validation.linaro.org/. Bookmark this if you have a need to check bot status at a glance. JSON Format ----------- The JSON file describes the bots we want to monitor and which master/build service they connect to. The base structure is a list of masters, which has a few properties and a list of builder groups, which in turn also have some properties and a list of bots (which in Buildbot terms are actually called "Builders" but we ended up calling them bots here). Master properties: "name": Name of the master, which will appear as the section title. "base_url": The base URL of the master, which will be used to make API calls. For example for LLVM this might be "https://lab.llvm.org/buildbot". "builder_url": The part of the URL that refers to the list of builders. Will be added to base_url when making API calls. "build_url": Part of the URL that refers to the list of builds. Added to base_url when making API calls. "ignore" : Set to "true" to hide the master from the page. "builders": [ ...a list of builder groups as detailed below... ] Builder group properties: "name": Name of this group. "fast bots", "self-hosting", etc. Used as the section title. "ignore" : Set to "true" to hide this builder group from the page. "bots": [ ...a list of bots as decribed below... ] Bot properties: "name": The exact name of the buildbot. This will be used to build URLs for API calls. "ignore": Set to "true" to ignore the status of this bot. Notes on bots: * Bots may be repeated across builder groups if they fall into multiple categories (this does not slow down the monitor as results are cached). * The same bot name on 2 different masters refers to 2 different bots. Note that "ignore" has two different behaviours: * On masters and builder groups, it omits the entire section from the output. * On bots it shows the bot but ignores their status. Meaning that an ignored bot failing does not make the overall page status failed. HTML Page --------- The script will generate an HTML page. This page is separated into blocks: * Masters which contain... * Builder Groups which contain... * Bots The date is printed at the top of the page so you know when the results were generated. Bots that are offline or partially fail to read via the API will show up with a message along the lines of " is offline!". The page should still update correctly for the rest of the bots. Each listed bot has these columns: * "Buildbot": This shows the name and a link to the master's web interface for the bot. * "Status": The status of the last finished build. PASS or FAIL (currently cancelled is also treated as a failure). * "T Since": The time since the last build finished. This is useful for spotting bots that have gotten disconnected. If this time is greater than 24 hours, it will be shown in red. * "Duration": The length of the last build. * "Latest": The build number of the last finished build, which itself will be a link to the results page for that build. * "Failing steps": The failed build steps, if it was a failed build. * "Build In Progress": This will be "Yes" if there is a build currently running, and the text will link to the build. Or "No" if there is not. If we cannot determine this, it will be left blank and you should check the builder's status page instead. * "1st Failing": The number of the first failed build, if the bot fails for several builds. * "Failing Since": The time since the first failed build finished. This is useful for spotting bots that fail for a long time. Note: "finished" here refers to the build ending be that by success, cancellation or failure.