1
0
Fork 0
mirror of https://github.com/eosswedenorg/antelope-api-healthcheck synced 2026-07-04 12:03:43 +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() h, err := e.client.GetHealth()
if err != nil { if err != nil {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "Failed to contact api") resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, err.Error() return resp, err.Error()
} }
// Check HTTP Status Code // Check HTTP Status Code
if h.HTTPStatusCode > 299 { if h.HTTPStatusCode > 299 {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("HTTP %v", h.HTTPStatusCode))
msg := "Taking offline because %v was received from backend" msg := "Taking offline because %v was received from backend"
return resp, fmt.Sprintf(msg, h.HTTPStatusCode) return resp, fmt.Sprintf(msg, h.HTTPStatusCode)
@ -61,8 +60,7 @@ func (e EosioContract) Call() (agentcheck.Response, string) {
// Check redis // Check redis
if h.Data.Redis.Status != "OK" { if h.Data.Redis.Status != "OK" {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("Redis: %s", h.Data.Redis.Status))
msg := "Taking offline because Redis reported '%s'" msg := "Taking offline because Redis reported '%s'"
return resp, fmt.Sprintf(msg, h.Data.Redis.Status) 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() diff := now.Sub(h.Data.Chain.HeadTime).Seconds()
if diff > e.block_time { if diff > e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("headblock is %.0f seconds behind", diff))
msg := "Taking offline because head block is lagging %.0f seconds" msg := "Taking offline because head block is lagging %.0f seconds"
return resp, fmt.Sprintf(msg, diff) return resp, fmt.Sprintf(msg, diff)
} else if diff < -e.block_time { } else if diff < -e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("headblock is %.0f into the future", diff))
msg := "Taking offline because head block is %.0f seconds into the future" msg := "Taking offline because head block is %.0f seconds into the future"
return resp, fmt.Sprintf(msg, diff) 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) info, err := eosapi.GetInfo(e.params)
if err != nil { if err != nil {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "Failed to contact api") resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, err.Error() return resp, err.Error()
} }
// Check HTTP Status Code // Check HTTP Status Code
if info.HTTPStatusCode > 299 { if info.HTTPStatusCode > 299 {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("HTTP %v", info.HTTPStatusCode))
msg := "Taking offline because %v was received from backend" msg := "Taking offline because %v was received from backend"
return resp, fmt.Sprintf(msg, info.HTTPStatusCode) return resp, fmt.Sprintf(msg, info.HTTPStatusCode)
@ -59,15 +58,13 @@ func (e EosioV1) Call() (agentcheck.Response, string) {
if diff > e.block_time { if diff > e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("headblock is %.0f seconds behind", diff))
msg := "Taking offline because head block is lagging %.0f seconds" msg := "Taking offline because head block is lagging %.0f seconds"
return resp, fmt.Sprintf(msg, diff) return resp, fmt.Sprintf(msg, diff)
} else if diff < -e.block_time { } else if diff < -e.block_time {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("headblock is %.0f into the future", diff))
msg := "Taking offline because head block is %.0f seconds into the future" msg := "Taking offline because head block is %.0f seconds into the future"
return resp, fmt.Sprintf(msg, diff) 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) health, err := eosapi.GetHealth(e.params)
if err != nil { if err != nil {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "Failed to contact api") resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, err.Error() return resp, err.Error()
} }
// Check HTTP Status Code // Check HTTP Status Code
if health.HTTPStatusCode > 299 { 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) 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 " + msg := fmt.Sprintf("Failed to get Elasticsearch and/or nodeos " +
"block numbers (es: %d, eos: %d)", es_block, node_block) "block numbers (es: %d, eos: %d)", es_block, node_block)
resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, msg) resp := agentcheck.NewStatusMessageResponse(agentcheck.Failed, "")
return resp, msg return resp, msg
} }
// Check if ES is behind or in the future. // Check if ES is behind or in the future.
diff := node_block - es_block; diff := node_block - es_block;
if diff > e.offset { if diff > e.offset {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("Elastic is %d blocks behind", diff))
return resp, fmt.Sprintf("Taking offline because Elastic is %d blocks behind", diff) return resp, fmt.Sprintf("Taking offline because Elastic is %d blocks behind", diff)
} else if diff < -e.offset { } else if diff < -e.offset {
resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, resp := agentcheck.NewStatusMessageResponse(agentcheck.Down, "")
fmt.Sprintf("Elastic is %d blocks into the future", -1 * diff))
return resp, fmt.Sprintf("Taking offline because Elastic is %d blocks into the future", -1 * diff) return resp, fmt.Sprintf("Taking offline because Elastic is %d blocks into the future", -1 * diff)
} }
return agentcheck.NewStatusResponse(agentcheck.Up), "OK" return agentcheck.NewStatusResponse(agentcheck.Up), "OK"