Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A simple alerting tool using Graphite for event data.
Ruby JavaScript CoffeeScript
branch: master

bump

latest commit a94308b413
@danryan authored
Failed to load latest commit information.
app
config
db
doc
lib refactor scheduling to allow one-off events
log
public
script
spec
vendor
.gitignore
.rspec
Gemfile
Gemfile.lock
Procfile
README.md
Rakefile
config.ru

README.md

Rorschach

Overview

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.

Caveats

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.

Dependencies

  • 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.

Configuration

Rorschach uses the following environment variables for configuration:

  • GRAPHITE_URL - Graphite server URL
  • GRAPHITE_AUTH - Basic HTTP auth credentials (optional)
  • CAMPFIRE_TOKEN - Campfire API token
  • CAMPFIRE_ACCOUNT - Campfire account name
  • CAMPFIRE_ROOM - The room to which notifications will be sent
  • PAGERDUTY_API_KEY - PagerDuty API key

Deployment

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

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

TODO

  • Allow checks to be paused
  • Actually send to PagerDuty
  • Customize per-check handlers
Something went wrong with that request. Please try again.