Health API
This API can be used for measuring node health.
To get an HTTP status code response that indicates the node’s health, make a GET request to /ext/health. If the node is healthy, it will return a 200 status code. If you want more in-depth information about a node’s health, use the methods below.
Format
This API uses the json 2.0 RPC format. For more information on making JSON RPC calls, see here.
Endpoint
/ext/health
Methods
health.health
The node runs a set of health checks every 30 seconds, including a health check for each chain. This method returns the last set of health check results.
Signature
health.health() -> {
checks: []{
checkName: {
message: JSON,
error: JSON,
timestamp: string,
duration: int,
contiguousFailures: int,
timeOfFirstFailure: int
}
},
healthy: bool
}
healthy is true if the node if all health checks are passing.
checks is a list of health check responses.
- A check response may include a
messagewith additional context. - A check response may include an
errordescribing why the check failed. timestampis the timestamp of the last health check.durationis the execution duration of the last health check, in nanoseconds.contiguousFailuresis the number of times in a row this check failed.timeOfFirstFailureis the time this check first failed.
More information on these measurements can be found in the documentation for the go-sundheit library.
Example Call
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"health.health"
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/health
Example Response
In this example response, the C-Chain’s health check is failing.
{
"jsonrpc": "2.0",
"result": {
"checks": {
"C": {
"message": null,
"error": {
"message": "example error message"
},
"timestamp": "2020-10-14T14:04:20.57759662Z",
"duration": 465253,
"contiguousFailures": 50,
"timeOfFirstFailure": "2020-10-14T13:16:10.576435413Z"
},
"P": {
"message": {
"percentConnected": 0.9967694992864075
},
"timestamp": "2020-10-14T14:04:08.668743851Z",
"duration": 433363830,
"contiguousFailures": 0,
"timeOfFirstFailure": null
},
"X": {
"timestamp": "2020-10-14T14:04:20.3962705Z",
"duration": 1853,
"contiguousFailures": 0,
"timeOfFirstFailure": null
},
"chains.default.bootstrapped": {
"timestamp": "2020-10-14T14:04:04.238623814Z",
"duration": 8075,
"contiguousFailures": 0,
"timeOfFirstFailure": null
},
"network.validators.heartbeat": {
"message": {
"heartbeat": 1602684245
},
"timestamp": "2020-10-14T14:04:05.610007874Z",
"duration": 6124,
"contiguousFailures": 0,
"timeOfFirstFailure": null
}
},
"healthy": false
},
"id": 1
}