It would be useful to have a small library of commonly used health checks. In the scope of this issue, an HTTP check should be implemented (e.g. calling an http.Client HTTP method and return it's result). Optimally, the implementation should respect the context.Context value that is being passed to each health check function (e.g., by using the Deadline from the context to pass it as a paramter of http.Client (or pass the entire context if there is a way to do that).
A few constraints to keep things clean and simple:
The check should be added to the checks module that you can find in the development branch.
As with all health check functions of this library, the check implementation should support accepting and forwarding context.Context that is being passed to each health check function.
If the health check requires external external modules or other dependencies, the check should be implemented as a separate Go module(similarly how it is done for the tests, that require dependencies to other packages as well). This is required to avoid that when people import the base library, they also need to import all dependencies of all provided checks.
The check should have a README.md in its root directory that describes how to use it and maybe what to look out for.
You should provide a test that checks at least the happy path. If a docker container is required to properly test the check, the docker container can be added to the docker-compose.yaml file in the checks base package.
Should you have questions or require help, please join our discord chat room.
It would be useful to have a small library of commonly used health checks. In the scope of this issue, an HTTP check should be implemented (e.g. calling an
http.Client
HTTP method and return it's result). Optimally, the implementation should respect thecontext.Context
value that is being passed to each health check function (e.g., by using theDeadline
from the context to pass it as a paramter ofhttp.Client
(or pass the entire context if there is a way to do that).A few constraints to keep things clean and simple:
development
branch.context.Context
that is being passed to each health check function.Should you have questions or require help, please join our discord chat room.