RSS
 

Archive for April, 2011

Developing Ragios Version 0.5+

13 Apr

I have started testing design ideas for Ragios version 0.5+. Ragios started as a fun way to play with Linux servers and hack the Ruby language. Since then I started using Ragios to monitor web services for my business. Ragios is still very much in alpha stage but its slowly getting somewhere* and I am really enjoying the journey.

Below are some design goals for version 0.5+

Goals

  • Create a plugin architecture, so that all monitors (example HTTP, DNS,process monitors) are added as plugins. This will allow developers to easily write customized plugins. OR easily install plugins written by other developers.
  • Create a simple http server for Ragios that responds to REST requests. This will enable other apps to communicate with Ragios via REST. Example a Rails, Sinatra or javascript app could provide a Web User Interface for Ragios via REST. The datafeed from Ragios could be fed to a webpage, blog, widget or mobile app via REST.
  • Add ability to persist Ragios information and real-time statistics to a database. This will allow service performance monitoring overtime. It will also enable better control of monitors.

 
I have started working on the first goal. In the new design all monitors are plugins. These plugins are simple ruby classes that can monitor URLs, system processes, Mail servers etc.

I hope to keep the same simple syntax for Ragios

    monitoring  =  { :monitor => 'url',
                   :every => '5m',
                   :test => 'video datafeed test',
                   :url => 'http://www.datafeed.com/resources/videos/1',
                   :contact => 'admin@mail.com',
                   :via => 'gmail',
                   :notify_interval => '6h'
 
                  },
                  {:monitor =>'http',
                   :every => '30s',
                   :test => 'Http connection to client A website',
                   :domain => 'www.clientA.com',
                   :contact => 'admin@mysite.com',
                   :via => 'twitter',
                   :notify_interval => '6h'
                  }
 
  Ragios::Monitor.start monitoring

Below is a Gist I created to test design ideas for the new plugin system. I will be updating the Gist as I code in real time. The end result will be the bare bones design for the new system. After I get a workable design I will update the Github Repo here.

 
 
Premium Wordpress Plugin