Skip to content

eosswedenorg/antelope-api-healthcheck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Antelope API Healthcheck for HAProxy

Test Report

This program implements Antelope healthcheck for HAProxy over TCP.

Compiling

You will need go-lang version 1.16 or later to compile the source.

compile with compile.sh script

$ ./compile.sh

Execute ./compile.sh --help to see all available flags to crosscompile for different systems/architectures.

Package

run ./package.sh to generate package. Debian (.deb) and FreeBSD are supported.

TCP Protocol

The protocol is simple and has 4 rules.

  1. Data is transmitted in packets encoded in ascii and ends with newline \n.
  2. There are two types of packages: Request and Response. Each Request has exactly one Response.
  3. Each parameter inside a Request is separated by |
  4. Each response contains exactly one status code (see below)

Request

The following parameters are supported in a request and are ordered from first to last below:

# Name Required Description
1 api Yes Type of API to check against,v1 = standard, v2 = Hyperion, atomic = atomicassets
2 url Yes (port default 80) http url to the api.http(s)://<ip-or-domain>(:<port>)
3 num_blocks No (default 10) Number of blocks the api can drift before reported down
4 host No (default from url) Value to send in the HTTP Host Header to the API

Response

The api can respond with exactly one status code. See HAproxy documentation for more information

code Description
up Api is healthy
down Api is not healthy
fail The program failed to read the status from the api.
maint Api is set in maintenance mode (not used)
ready Api is ready again after being in maint state (not used)
stopped Api has been stopped manually (not used)

Author

Henrik Hautakoski - henrik@eossweden.org