tallyman − health state collector for docker containers


tallyman [−dq] [−h NAME] [−s HOST:PORT] [−v JSON] [−−connection−timeout=SECONDS] [−−debug] [−−execution−timeout=SECONDS] [−−hostname=NAME] [−−quiet] [−−server=HOST:PORT] [−−value=JSON] SRVID COMMAND ARGS...

tallyman −? | −−help | −V | −−version


Runs COMMAND with ARGS and sends its return code, standard output and error to the remote data collector. Exits with the exit status of COMMAND.

The program must be configured to run periodically via the HEALTHCHECK CMD statement in the Dockerfile.

It is supposed that each container is responsible for certain service. Each service is assigned a name. Multiple containers can run the same service (for example you can have several database containers).

Containers are configured to run tallyman as their HEALTHCHECK command. The SRVID argument supplies the name of the service the container is responsible for. The COMMAND and optional additional arguments supply the name of the actual health-checking program and its command line arguments. Tallyman will run this command, collect its standard error and standard output, pack them along with the program exit code in a JSON packet, and send this packet to the predefined address using HTTP POST request. It will then exit with the same code as the health-checking program it ran. To the container, the effect of running tallyman is the same as if it ran the health-checking program itself: error code, standard error and standard output are all preserved. On the other hand, they are copied to the collector listening on the predefined address outside the container.

The data collector program stevedore(8) must be listening at HOST:PORT. See its manual for details.

In the absense of the −s option, tallyman will send statistics to the container’s default gateway, port 8990.

The program attempts to be as transparent as it is reasonable. It will display diagnostic messages on the standard error if it is unable to connect to the collector or if the communication with it does not succeed, or if the COMMAND terminates on signal. If it terminates with a non-zero exit status a diagnostic message to this effect will be displayed only if the program did not print any messages to the standard error on its own.


−d, −−debug

Increase debug verbosity.

−h, −−hostname=NAME

Set this server hostname. By default it is determined automatically.

−q, −−quiet

By default, tallyman would transparently pass COMMAND’s stdout and stderr to the corresponding streams. A single −q option suppresses reproducing the stdout. Two −q options suppress both stdout and stderr.

−s, −−server=HOST:PORT

Address and port of the data collector. Default is GW:8990, where GW is the default gateway of the container.

−v, −−value=JSON

Add JSON object to each report.


Set timeout for initial connection to the collector. Default is 5 seconds.


Set COMMAND execution timeout. Default is 5 seconds.

−?, −−help

Display short help text and exit.

−V, −−version

Display program version and licensing information and exit.




Sergey Poznyakoff


Report bugs to <gray@gnu.org>.


Copyright © 2018−2019 Sergey Poznyakoff
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Manpage server at Ulysses.gnu.org.ua.

Powered by mansrv 1.0