Today we are officially open-sourcing Watchman, a web service that remotely monitors the health of HTTP(S) endpoints. We built Watchman to add to Cloud 66's monitoring features and to gain insights into website performance and availability.
What is Watchman?
Watchman is a self-hosted web service that checks the health of an HTTP(S) endpoint remotely. It is intended to run as a light, multi-instance service in different geographical locations to provide a full picture of an endpoint's health and accessibility.
Watchman can easily be deployed as a "serverless" function (via AWS Lambda or GCP Cloud Run) for full geographical distribution, access to high quality network and cost effective monitoring.
Why do I need Watchman?
Watchman is a handy tool for developers to make sure that code changes will not affect performance or availability of your applications. It helps identify issues before new code is pushed to production, by testing all the changes while still in the development environment.
Watchman can help you avoid unnecessary downtime, make better optimisation decisions and catch potential issues before the code is handed over to your Ops team. Additionally it sends you alerts whenever your site is unavailable.
How do I use Watchman?
Watchman is a single executable and can run on Linux, Mac, Windows or any other platform where you can compile it (it's written in Go, so it's pretty portable). Once running, it will accept check requests and return the check results. To learn more about Watchman check out the Watchman repository.
We currently use Watchman to help us monitor the health of our own HTTP(S) endpoints. In the future, Watchman will add support for Cloud 66 features like ActiveProtect, a tool that protects against denial of service and brute-force attacks and notifies you if important config files (such as
/etc/hosts) are modified. In the meantime, please check it out and feel free to PR!