Updated Date: 11/04/2026
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 runThe 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=valueFor example, to run the ISO image status check with a specific component parameter:
h-engine run S00014 -p component=cc_isoEach script produces structured JSON output.
Every script returns structured JSON. The contract has two parts.
{
"heuristic": {
"id": "C00101",
"name": "ETCD Cluster Health",
"description": "Checks ETCD member health and quorum",
"path": "./controller/C00101_etcd_health.pyh",
"tags": ["controller", "etcd", "health"]
}
}{
"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
runResultiserror
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. |