Inspeqtor monitors your application infrastructure. It gathers and verifies key metrics from all the moving parts in your application and alerts you when something looks wrong. It understands the application deployment workflow so it won't bother you during a deploy.
What it does:
- Monitor init.d-, systemd-, upstart-, runit- or launchd-managed services
- Monitor process memory and CPU usage
- Monitor daemon-specific metrics (e.g. redis, memcached, mysql, nginx...)
- Monitor and alert based on host CPU, load, swap and disk usage
- Alert or restart a process if a rule threshold is breached
- Alert if a process disappears or changes PID
- Signal deploy start/stop to silence alerts during deploy
What it doesn't:
- monitor or control arbitrary processes, services must be init-managed
- have any runtime dependencies at all, not even libc.
If you've used monit
before, Inspeqtor will look familiar. Same
high-level goals but in a modern package.
Inspeqtor is feature complete, reliable and (mostly?) bug-free. This repo does not see a lot of code changes because of this, not because it is unmaintained.
See the Inspeqtor wiki for complete documentation.
Linux 3.0+. It will run on OS X. FreeBSD is untested. It uses about 5-10MB of RAM at runtime.
GPLv3.
See the Development wiki page for details on how to get the source code and build Inspeqtor locally.
Inspeqtor is written by Mike Perham of Contributed Systems. We build awesome open source-based infrastructure to help you build awesome apps.
We also develop Sidekiq and sell Sidekiq Pro, the best Ruby background job processing system.
Hack around: Run code in docker:
docker run -it -v $(pwd):/go/src/github.com/mperham/inspeqtor golang:1.10.3 bash
Install deps:
go get github.com/jteeuwen/go-bindata/...
go get github.com/goccmack/gocc/...
cd src/github.com/goccmack/gocc/
git checkout 0e2cfc030005b281b2e5a2de04fa7fe1d5063722
cd /go
go get github.com/goccmack/gocc/...
cd src/github.com/mperham/inspeqtor/
make assets
GOOS=linux GOARCH=amd64 go build -o inspeqtor cmd/main.go
Yes, we need to checkout old version of code to match go version, sigh