Rails plugin to setup application monitoring
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app/controllers
config
generators/snapmon_config
lib
recipes
test
.gitignore
MIT-LICENSE
README.rdoc
Rakefile
VERSION
init.rb
install.rb
snapmon.gemspec
uninstall.rb

README.rdoc

SnapMon

The snapmon plugin makes it easy to make sure your application is being monitored. When you install the plugin, it will ask you a series of questions on who should be notified when your app goes down. It will then setup a snapmon.yml file in /config. You can further customize your monitoring from there.

Install

As a plugin

Run the following in the command line in your projects root directory:

script/plugin install git://github.com/ryanstout/snapmon.git

The script will then walk you through setting up a snapmon.conf file, which will contain settings on who to notify when your application goes down.

If you use capistrano, it will automatically update the settings in snapmon.yml whenever you deploy. If not you can run:

rake snapmon:setup

As a gem:

Place the following in your environment.rb file:

config.gem 'snapmon'

Then run:

rake gems:install
script/generate snapmon_config

Capistrano

For gem users to automatically push your config settings add the following to your deploy.rb

require 'snapmon/recipes'

Each time you deploy (using Capistrano), your configuration will be updated on snapmon.com

Usage

See config/snapmon.yml for details on configuring monitors.

Enable/Disable

If you are scheduling maintenance, you can disable the monitors for a time. Simply run:

cap snapmon:disable
cap snapmon:enable

You can also use rake if you are not using capistrano

Why A Plugin/Gem?

Basically all this plugin does is setup your monitors on Snapmon.com from within a config file. You may ask why not just go to the site and enter the config there. The main benefit is that you can keep all of your data in your code base. This lets anyone working on the project manage what should trigger an alert and who the alerts should go to.

Having everything in the repository is nice, I would compare it to using a gem like whenever to manage cron jobs. If its not in the repository, when something changes you will forget to update it.

Also, the plugin/gem makes it really easy to get new projects monitored.

Copyright © 2010 Ryan Stout, released under the MIT license