############################### HealthState Aggregation Matrix ############################### This page summarizes the effective aggregation rules for CSP.LMC Controller and Subarray health evaluation, plus the expected CSP ``healthInfo`` entry generated during evaluation. Notes ===== - ``healthInfo`` shown here refers to the CSP device entry (for example ``mid-csp/control/0`` or ``mid-csp/subarray/01``). - Subsystem-forwarded ``healthInfo`` entries are merged asynchronously and are not part of these deterministic aggregation rules. Controller ========== .. list-table:: :header-rows: 1 * - Condition - Aggregated ``HealthState`` - Expected CSP ``healthInfo`` entry * - Forced fault flag set in model (``component_fault``) - ``FAILED`` - ``'{"mid-csp/control/0": ["Command failed on CBF"]}'`` * - Forced disabled flag set in model (``is_disabled``) - ``UNKNOWN`` - ``'{"mid-csp/control/0": ["Controller is administratively disabled"]}'`` * - No critical CBF component detected (no ``weight > 0`` sample) - ``FAILED`` - ``'{"mid-csp/control/0": ["No CBF component device detected!"]}'`` * - Critical controller component state in ``FAULT``/``UNKNOWN``/``DISABLE`` - ``FAILED`` - ``'{"mid-csp/control/0": ["The State of low-cbf/control/0 is FAULT"]}'`` (optionally with an additional health message in the same array) * - Critical controller component health ``DEGRADED`` (state healthy) - ``DEGRADED`` - ``'{"mid-csp/control/0": ["The HealthState of low-cbf/control/0 is DEGRADED"]}'`` * - Non-critical component in ``ONLINE``/``ENGINEERING`` with ``health != OK`` or state ``FAULT``/``UNKNOWN`` - at least ``DEGRADED`` - ``'{"mid-csp/control/0": ["The HealthState of low-pss/control/0 is DEGRADED"]}'`` * - Non-critical component in admin mode outside ``ONLINE``/``ENGINEERING`` - ignored for aggregation - ``'{}'`` (or unchanged if other contributors already populated it) Subarray ======== .. list-table:: :header-rows: 1 * - Condition - Aggregated ``HealthState`` - Expected CSP ``healthInfo`` entry * - Forced fault flag set in model (``component_fault``) - ``FAILED`` - ``'{"mid-csp/subarray/01": ["Subarray command failed"]}'`` * - Forced disabled flag set in model (``is_disabled``) - ``UNKNOWN`` - ``'{"mid-csp/subarray/01": ["Subarray is administratively disabled"]}'`` * - No critical CBF component detected after filtering (no ``weight > 0`` sample) - ``FAILED`` - ``'{"mid-csp/subarray/01": ["No CBF component device detected!"]}'`` * - Critical component state in ``FAULT``/``UNKNOWN``/``DISABLE`` - ``FAILED`` - ``'{"mid-csp/subarray/01": ["The State of low-cbf/subarray/01 is FAULT"]}'`` * - Critical component health ``DEGRADED`` (state healthy) - ``DEGRADED`` - ``'{"mid-csp/subarray/01": ["The HealthState of low-cbf/subarray/01 is DEGRADED"]}'`` * - Non-critical component in ``ONLINE``/``ENGINEERING`` with ``health != OK`` or state ``FAULT``/``UNKNOWN`` - at least ``DEGRADED`` - ``'{"mid-csp/subarray/01": ["The State of low-pst/beam/03 is UNKNOWN"]}'`` * - Non-critical component in admin mode outside ``ONLINE``/``ENGINEERING`` - ignored for aggregation - ``'{}'`` (or unchanged if other contributors already populated it) * - Unassigned PST beam - ignored for aggregation - ``'{}'`` (or unchanged if other contributors already populated it)