Manual Chapter : Run Pre-upgrade Health Checks and JSON Contract Reference

Run Pre-upgrade Health Checks and JSON Contract Reference

Before you start an F5OS upgrade, run the Platform Health Assessment Suite to detect platform issues that could cause the upgrade to fail or cause an extended outage. The suite checks for conditions such as degraded ETCD clusters, network connectivity problems, expired certificates, and memory leaks.

  • You must be an authenticated administrator.
  • You must run the checks from the active controller. Scripts do not run on the standby controller.
  • The Health Engine must be available on the system.

To run all registered health check scripts, use the following command:

h-engine run

The Engine dispatches all scripts in parallel, enforces timeouts, and aggregates results.

To run a single health check, specify the script ID:

h-engine run <ID>

You can also pass parameters to a script using the -p flag:

h-engine run <ID> -p key=value

For example, to run the ISO image status check with a specific component parameter:

h-engine run S00014 -p component=cc_iso

Each script produces structured JSON output.

Every script returns structured JSON. The contract has two parts.

json
{
  "heuristic": {
    "id": "C00101",
    "name": "ETCD Cluster Health",
    "description": "Checks ETCD member health and quorum",
    "path": "./controller/C00101_etcd_health.pyh",
    "tags": ["controller", "etcd", "health"]
  }
}

json
{
  "result": {
    "runResult": "passed | failed | error | inconclusive",
    "startTime": "<ISO-8601>",
    "duration": 0.0,
    "iteration": 1,
    "results": [
      {
        "message": "<human-readable finding>",
        "severity": "info | notice | warning | error | critical",
        "value": "<raw value>",
        "data": { "<evidence-key>": "<evidence-value>" }
      }
    ],
    "actions": [
      {
        "action": "GENERATE_ALARM | CLEAR_ALARM | GENERATE_EVENT | RESTART_SERVICE",
        "severity": "critical",
        "data": { "alarm-id": "<id>", "service": "<name-if-restart>" }
      }
    ]
  }
}

The key fields to review are:

Exactly one of the following values:

Value Meaning
passed All checks completed successfully with no issues found
failed One or more checks detected an issue
error The script could not complete its checks
inconclusive The script completed but could not determine a definitive result

Treat error as unsafe until verified manually.

Individual findings produced by the script, each with a severity level ranging from info to critical. Each entry includes:

Field Description
message A human-readable description of the finding
severity One of: info, notice, warning, error, critical
value The raw value observed
data Key-value pairs providing evidence for the finding

Recommendations the Engine surfaces, such as raising or clearing alarms. The Engine does not perform these actions itself. Supported actions:

Action Description
GENERATE_ALARM Raises an alarm
CLEAR_ALARM Clears a previously raised alarm
GENERATE_EVENT Generates a platform event
RESTART_SERVICE Recommends restarting a specific service

Script execution results are persisted in the Health Engine’s cache directory and included in QKView. You can use QKView to share results with F5 Support for further analysis.

Each script execution produces the following log entries in the Health Engine’s internal log:

  • START: Records the script ID and execution context
  • COMPLETE: Records the runResult, duration, and highest severity
  • ERROR (if applicable): Records the error message when runResult is error

Log entries use structured JSON format. Scripts do not write directly to syslog.

Each check can produce results at the following severity levels:

Severity Description
critical A condition that is likely to cause upgrade failure. Resolve before proceeding.
error The check could not complete. Treat as unsafe until verified manually.
warning A condition that may cause issues during the upgrade. Review before proceeding.
notice An informational finding worth noting but unlikely to block the upgrade.
info General status information. No action required.