5. piw-sense

The piw-sense application is an alternative monitor for the piw-master script that uses the Raspberry Pi Sense HAT as its user interface. Upon startup it will request the status of all build slaves currently known to the master, and will then continually update its display as the slaves progress through builds. The Sense HAT’s joystick can be used to navigate information about current builds, and kill builds slaves that are having issues, or terminate the master itself.

5.1. Synopsis

usage: piw-sense [-h] [--version] [-c FILE] [--status-queue ADDR]
                   [--control-queue ADDR] [-r DEGREES]

5.2. Description

-h, --help

show this help message and exit

--version

show program’s version number and exit

-c FILE, --configuration FILE

Specify a configuration file to load

--status-queue ADDR

The address of the queue used to report status to monitors (default: ipc:///tmp/piw-status)

--control-queue ADDR

The address of the queue a monitor can use to control the master (default: ipc:///tmp/piw-control)

-r DEGREES, --rotate DEGREES

The rotation of the HAT in degrees; must be 0 (the default), 90, 180, or 270

5.3. Usage

The Sense monitor can be started on the same machine as the master after the piw-master script has been started. After initialization it will request the current status of all build slaves from the master.

5.3.1. Layout

The top three (normally blue) rows of the display are used for some important statistics:

  • The top row represents the ping time from the master, or more specifically the time since the last message was received. This will continually increase (changing white), and reset with each message received. If 30 seconds elapse without any messages being received, this row will pulse red until another message is received, resetting the count.
  • The second row represents available disk space for the output directory on the master. White pixels represent remaining space, and the scale is simply percentage (all blue = 0%, all white = 100%).
  • The third row represents the number of pending builds on the master. The scale is one white pixel = 8 builds in the queue (with partial shades representing <8 builds).

The remaining rows represent all build slaves. Each pixel represents a single build slave, working vertically then horizontally. Build slaves are sorted first by ABI, then by label (as in piw-monitor).

  • A gray pixel indicates an idle build slave.
  • A green pixel indicates an active build.
  • A blue pixel indicates an active file transfer after a successful build.
  • A purple pixel indicates a build slave cleaning up after a build.
  • A yellow pixel indicates an active build that’s been running for more than 15 minutes; not necessarily a problem but longer than average.
  • A red pixel indicates a build slave that’s either timed out or been terminated; it should disappear from the display within a few seconds.