Project

what

0.01
Repository is archived
No commit activity in last 3 years
No release in over 3 years
What uses WEBrick to serve a JSON object representing the state of services running on a machine. It currently includes modules for monitoring Unicorn workers, checking for the existence of files and processes, and combining the output of other What servers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0.16.0
>= 0
>= 1.1.2
 Project Readme

What? A simple server monitoring tool.

What is a modular, easily-extensible server monitoring tool which is still in the early stages of development.

What do I install?

$ gem install what

What does it do?

Right now, the example config file monitors Unicorn workers. Observe:

$ what -c example/what.yml >/dev/null 2>&1 &
[1] 2392
$ curl localhost:9428
{"unicorn":{"details":[{"cpu_time":"0:00.02","pid":"11023"},{"cpu_time":"0:00.02","pid":"11022"}],"health":"ok","workers":2},"health":"ok"}
$ sudo /etc/init.d/unicorn stop
$ curl localhost:9428
{"unicorn":{"details":[],"health":"alert","workers":0},"health":"alert"}

When the health value of any module is set to "alert" instead of "ok", the HTTP request returns 503 instead of 200. This means What can easily be used in conjunction with monitoring tools like Pingdom.

Writing monitoring modules is easy: the only requirement is that they implement a health method, which returns 'ok', 'warning', or 'alert'. They can also implement a details method, which returns the hash that's included in the HTTP response. See the included What::Modules::Base and What::Modules::Unicorn classes for the implementation details.