Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Inspeqtor is not a unique snowflake, there are other packages that do similar things. Why did I build Inspeqtor if these things already exist?
Inspeqtor is influenced by monit but is designed for application engineers. I used Monit for the last 5 years to monitor server applications and it's the only thing that does what I want in an efficient, reliable package but has several shortcomings:
- Does not understand the concept of a "deploy" where things are changing so it sends a lot of email for normal changes, leading to alert fatigue
- Running several operations in a row can arbitrarily fail:
monit: action failed -- Other action already in progress -- please try again later
- Wants to start/stop daemons itself and spams you with email every time. The init system should start/stop your daemons.
- A lot of unnecessary features which aren't useful for application engineers
Collectd is designed to collect machine and process metrics and pipe them to a central aggregator, it was not designed to monitor metrics. Rules were added well after the project started and are written in a weird "pseudo-XML" format:
<Threshold> <Host "hostname"> <Type "cpu"> Instance "idle" FailureMin 10 </Type> </Host> </Threshold>
The same rule in Inspeqtor:
check host if cpu:idle < 10% then alert
I hope Inspeqtor's rules are simple to configure and easy to read by comparison.
God, Bluepill, Eye, Supervisord
All of these tools require a Ruby or Python stack. This adds complexity and more moving parts which can fail. Inspeqtor is a single, standalone binary.