1
0
Fork 0
mirror of https://github.com/eosswedenorg/antelope-api-healthcheck synced 2026-06-17 04:50:02 +02:00

src/api: do not send a message in haproxy response (it does not like that).

This commit is contained in:
Henrik Hautakoski 2022-08-12 17:16:01 +02:00
parent ed91320a1d
commit 879d613b46
No known key found for this signature in database
GPG key ID: 608414D93E862CCD
3 changed files with 14 additions and 23 deletions

View file

@ -36,14 +36,13 @@ func (e EosioContract) Call() (agentcheck.Response, string) {
h, err := e.client.GetHealth()
if err != nil {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "Failed to contact api")
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, err.Error()
}
// Check HTTP Status Code
if h.HTTPStatusCode > 299 {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("HTTP %v", h.HTTPStatusCode))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because %v was received from backend"
return resp, fmt.Sprintf(msg, h.HTTPStatusCode)
@ -61,8 +60,7 @@ func (e EosioContract) Call() (agentcheck.Response, string) {
// Check redis
if h.Data.Redis.Status != "OK" {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("Redis: %s", h.Data.Redis.Status))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because Redis reported '%s'"
return resp, fmt.Sprintf(msg, h.Data.Redis.Status)
@ -73,15 +71,13 @@ func (e EosioContract) Call() (agentcheck.Response, string) {
diff := now.Sub(h.Data.Chain.HeadTime).Seconds()
if diff > e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("headblock is %.0f seconds behind", diff))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because head block is lagging %.0f seconds"
return resp, fmt.Sprintf(msg, diff)
} else if diff < -e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("headblock is %.0f into the future", diff))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because head block is %.0f seconds into the future"
return resp, fmt.Sprintf(msg, diff)

View file

@ -39,15 +39,14 @@ func (e EosioV1) Call() (agentcheck.Response, string) {
info, err := eosapi.GetInfo(e.params)
if err != nil {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "Failed to contact api")
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, err.Error()
}
// Check HTTP Status Code
if info.HTTPStatusCode > 299 {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("HTTP %v", info.HTTPStatusCode))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because %v was received from backend"
return resp, fmt.Sprintf(msg, info.HTTPStatusCode)
@ -59,15 +58,13 @@ func (e EosioV1) Call() (agentcheck.Response, string) {
if diff > e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("headblock is %.0f seconds behind", diff))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because head block is lagging %.0f seconds"
return resp, fmt.Sprintf(msg, diff)
} else if diff < -e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("headblock is %.0f into the future", diff))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
msg := "Taking offline because head block is %.0f seconds into the future"
return resp, fmt.Sprintf(msg, diff)

View file

@ -39,13 +39,13 @@ func (e EosioV2) Call() (agentcheck.Response, string) {
health, err := eosapi.GetHealth(e.params)
if err != nil {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "Failed to contact api")
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, err.Error()
}
// Check HTTP Status Code
if health.HTTPStatusCode > 299 {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, fmt.Sprintf("HTTP %v", health.HTTPStatusCode))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
return resp, fmt.Sprintf("Taking offline because %v was received from backend", health.HTTPStatusCode)
}
@ -66,19 +66,17 @@ func (e EosioV2) Call() (agentcheck.Response, string) {
msg := fmt.Sprintf("Failed to get Elasticsearch and/or nodeos " +
"block numbers (es: %d, eos: %d)", es_block, node_block)
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, msg)
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, msg
}
// Check if ES is behind or in the future.
diff := node_block - es_block;
if diff > e.offset {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("Elastic is %d blocks behind", diff))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
return resp, fmt.Sprintf("Taking offline because Elastic is %d blocks behind", diff)
} else if diff < -e.offset {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down,
fmt.Sprintf("Elastic is %d blocks into the future", -1 * diff))
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
return resp, fmt.Sprintf("Taking offline because Elastic is %d blocks into the future", -1 * diff)
}
return agentcheck.NewStatusResponse(agentcheck.Up), "OK"