1
0
Fork 0
mirror of https://github.com/eosswedenorg/antelope-api-healthcheck synced 2026-06-18 05:00:03 +02:00

Merge branch 'master' into devel

This commit is contained in:
Henrik Hautakoski 2020-11-04 13:59:58 +01:00
commit 324356f9f4
4 changed files with 21 additions and 1 deletions

View file

@ -23,7 +23,7 @@ deps:
info-file :
echo PACKAGE_NAME=\"$(PROGRAM_NAME)\" "\n"\
PACKAGE_DESCRIPTION=\"HAproxy healthcheck program for EOSIO API.\" "\n"\
PACKAGE_VERSION=\"0.3.4\" "\n"\
PACKAGE_VERSION=\"0.3.5\" "\n"\
PACKAGE_PREFIX=\"$(PREFIX:/%=%)\" "\n"\
PACKAGE_PROGRAM=\"build/$(PROGRAM_NAME)\" > scripts/info

View file

@ -56,6 +56,9 @@ func GetInfo(params ReqParams) (Info, error) {
resp := r.Response()
body, _ := ioutil.ReadAll(resp.Body)
// Set HTTPStatusCode
info.HTTPStatusCode = resp.StatusCode
// Parse json
err = json.Unmarshal(body, &info)
}
@ -71,6 +74,9 @@ func GetHealth(params ReqParams) (Health, error) {
resp := r.Response()
body, _ := ioutil.ReadAll(resp.Body)
// Set HTTPStatusCode
health.HTTPStatusCode = resp.StatusCode
// Parse json
err = json.Unmarshal(body, &health)
}

View file

@ -8,6 +8,7 @@ type Info struct {
ServerVersion string `json:"server_version"`
HeadBlockNum int64 `json:"head_block_num"`
HeadBlockTime time.Time `json:"head_block_time"`
HTTPStatusCode int
}
// Service struct from /v2/health
@ -22,4 +23,5 @@ type Service struct {
type Health struct {
VersionHash string `json:"version_hash"`
Health []Service `json:"health"`
HTTPStatusCode int
}

View file

@ -22,6 +22,12 @@ func check_api(p eosapi.ReqParams, block_time float64) (haproxy.HealthCheckStatu
return haproxy.HealthCheckFailed, msg
}
// Check HTTP Status Code
if info.HTTPStatusCode > 299 {
return haproxy.HealthCheckDown,
fmt.Sprintf("Taking offline because %v was received from backend", info.HTTPStatusCode)
}
// Validate head block.
now := time.Now().In(time.UTC)
diff := now.Sub(info.HeadBlockTime).Seconds()
@ -48,6 +54,12 @@ func check_api_v2(p eosapi.ReqParams, offset int64) (haproxy.HealthCheckStatus,
return haproxy.HealthCheckFailed, msg
}
// Check HTTP Status Code
if health.HTTPStatusCode > 299 {
return haproxy.HealthCheckDown,
fmt.Sprintf("Taking offline because %v was received from backend", health.HTTPStatusCode)
}
// Fetch elasticsearch and nodeos block numbers from json.
var es_block int64 = 0
var node_block int64 = 0