Rorschach (pronounced roar-shock, like the ink blot tests or the Watchmen character) is a simple alerting tool that uses Graphite for event data. Rorschach takes Graphite metrics and sends out notifications based on pre-defined warning and critical thresholds. Notifications can (currently) be sent to Campfire, PagerDuty, and via email.
It's rough around the edges. I wrote this in an evening, so things might be out of place, wonky, or just wrong. Expect improvements to follow shortly.
- Ruby >= 1.9.2
- PostgreSQL
- Redis
Rorschach uses PostgreSQL to store check data. Sidekiq is used for scheduling checks in the background, and uses Redis for its backend storage.
Rorschach uses the following environment variables for configuration:
GRAPHITE_URL
- Graphite server URLGRAPHITE_AUTH
- Basic HTTP auth credentials (optional)CAMPFIRE_TOKEN
- Campfire API tokenCAMPFIRE_ACCOUNT
- Campfire account nameCAMPFIRE_ROOM
- The room to which notifications will be sentPAGERDUTY_API_KEY
- PagerDuty API key
Rorschach is designed to be easily deployed to Heroku. Nonetheless, deployment to your preferred provider should be as simple as any other Ruby application.
heroku create -s cedar
heroku addons:add heroku-postgresql:dev
heroku pg:promote HEROKU_POSTGRESQL_DEV_NAME
heroku addons:add redistogo
heroku config:set GRAPHITE_URL=[...]
heroku config:set GRAPHITE_AUTH=[...]
heroku config:set CAMPFIRE_ACCOUNT=[...]
heroku config:set CAMPFIRE_ROOM=[...]
heroku config:set CAMPFIRE_TOKEN=[...]
heroku config:set PAGERDUTY_API_KEY=[...]
git push heroku master
heroku run rake db:migrate
heroku scale web=1
heroku scale worker=1
- Allow checks to be paused
- Actually send to PagerDuty
- Customize per-check handlers