Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A tiny, nimble & hackable system monitoring framework
JavaScript Ruby CSS HTML
branch: master
Failed to load latest commit information.
initializers correction for start - since its not really a restart operation, log …
lib fix failing test - worker now starts running after 10s, make worker g…
log switching to puma server
spec revert to activesupport 3 for now fix issue with incorrect timestamps
tmp/pids
.travis.yml added support for ruby 2.2.0
Changelog.rdoc updated for ragios v0.6.3.1
Dockerfile adds support for running ragios in a docker container
Gemfile upgraded to Puma 2.10.2 fixes issue with scheduler not running when p…
Gemfile.lock upgraded to Puma 2.10.2 fixes issue with scheduler not running when p…
LICENSE Ragios is now licensed under the MIT license
README.md update for 0.6.3 release
Rakefile deleted unnecessary test files, added automated unit and integration …
TODO.rdoc Update TODO.rdoc
VERSION updated for ragios v0.6.3.1
config.rb CouchDB address & port can be configured from env vars with default s…
config.ru handle errors loading ragios app on puma, also handle errors from dif…
ragios updates to defaults
server.rb adds support for running ragios in a docker container

README.md

Ragios (Saint Ruby)

Build Status

Ragios can be used to monitor any type of system including websites, servers, system services and web applications.

Sample usage to monitor a website for uptime in Ruby code:

monitor = {
  monitor: "My Website",
  url: "http://mysite.com",
  every: "5m",
  contact: "admin@mail.com",
  via: "email_notifier",
  plugin: "uptime_monitor"
}

ragios.add(monitor)

The above example adds a monitor to Ragios, the monitor uses an "uptime_monitor" plugin to monitor the website "http://mysite.com" for uptime. This monitor runs tests on the website every 5 minutes, if it detects the website is down, it sends an alert email to "admin@mail.com" via an email notifier.

Features:

A small and minimal extensible design:

  • Users can add, update, start, stop, restart and delete monitors in simple Ruby code. See details

  • Plugins

    • Ragios relies on plugins to perform tests on different types of systems. The plugins are plain old ruby objects, any test that could be performed in ruby code could be performed by Ragios. Developers can create plugins to meet their specific needs.
  • Notifications & Notifiers

    • Notifications are sent out when a test fails and when the test passes again.
    • Notification messages are generated from ERB templates which developers can easily customize.
    • Multiple email addresses could be added to a monitor, so that when a test fails it notifies all the email addresses simultaneously.
    • Ragios relies on Notifiers to send out notifications. The notifiers are pluggable plain old ruby objects. Any type of notification that could be implemented in Ruby code can be sent by Ragios, notifications by email, SMS, twitter etc. Developers can create notifiers to meet their specific needs.
    • Ragios ships with a Gmail Notifier that sends notifications via gmail, Amazon SES notifier that sends notifications via Amazon Simple Email Service, and a twitter notifier that tweets notifications on twitter.
    • Multiple notifiers could be added to one monitor, so when a test fails it could send out notifications via all the notifiers simultaneously. Example a monitor could be setup to send notifications via email, SMS and twitter simultaneously.
  • REST API is available for interacting with Ragios.

  • Ragios includes a Ruby client library that makes it easy to interact with Ragios directly with ruby code.

  • A Ragios instance running on a remote server can be controlled from anywhere using the Ruby client library or the REST API.

I'm doing this just for fun and educational purposes.

Documentation:

License:

MIT License.

Copyright (c) 2014 Obi Akubue, obi-akubue.org

Something went wrong with that request. Please try again.