Health Monitoring

The healthState attribute is used to report the health state of Low CBF Subarray, Controller, Processor and Connector devices.

Health Aggregation

Subarray devices monitor the health of all Processor devices involved in processing their data and all Connector devices. Health values of all these lower-level devices are combined to form a single healthState value for the Subarray.

The Controller device monitors the health of all Subarray devices and combines them to form a singular healthState value summarising the whole Low CBF subsystem.

Note

Processors not in use by any Subarray are not currently monitored.

reporting hierarchy block diagram

Attribute Subscription

Controller Tango device subscribes to changes in healthState attribute of all constituent Subarrays; it uses Tango database to retrieve the list of Subarrays:

UML sequence diagram

Subarray Tango devices subscribes to changes in healthState attribute of all Connector devices and all Processors allocated to the Subarray. The list of Connector Tango devices is retrieved from Tango database. The list of Processors assigned to Subarray is reported by the Allocator.

UML sequence diagram

Processor health

The health of Processor Tango device is determined from FPGA register values. Each monitored FPGA register has an associated instance of RegisterHealthChecker class which determines this register’s contribution to the overall Processor device healthState.

The hybrid (UML-like) diagram below illustrates steps taken when calculating Processor’s health:

  1. ProcessorComponentManager periodically polls FPGA registers

  2. If any of the register values have changed pass this information to LowCbfProcessor

  3. Re-evaluate each individual register health contribution

  4. Update Processor healthState if required

Processor health check diagram

If the NO_HEALTH_ROLLUP environment variable is defined, the processor will not include the health of external devices (switches, processors) in its roll-up. This allows for tests in which switches or procssor devices are not present.