Skip to content

Latest commit

 

History

History
260 lines (202 loc) · 12.7 KB

Changelog.rdoc

File metadata and controls

260 lines (202 loc) · 12.7 KB

Ragios v0.6.3.1

03-07-2015

  • Changed the way jobs are scheduled. At the monitor’s time interval, the monitor’s test are no longer performed instantly, the monitor is now added to a work_queue, a worker checks/pops the queue every 10 seconds and performs the test. This is more efficient, requires less system resources when performing resource intensive tests and provides more control over the jobs that are being performed.

Ragios v0.6.3

01-30-2015

  • All config settings can now be changed with ENV vars see. config.rb for details. All default configurations still remain same.

  • Ragios authentication is disabled by default by can be configured with env var RAGIOS_AUTHENTICATION

  • Ragios authentication auth-timeout default is 900 seconds but can be configured with env var RAGIOS_AUTH_TIMEOUT

  • CouchDB database used by Ragios is “ragios_database” by default but can be configured with env var RAGIOS_DATABASE

  • Default address and port of CouchDB database used by Ragios is “localhost” and “5984” but can be convigured with RAGIOS_COUCHDB_ADDRESS and RAGIOS_COUCHDB_PORT

  • New defaults for Ragios:

By default: Ragios runs in Puma development mode, not daemonized, allows the environment to handle the log stream, doesn’t write logs to file, runs in single process mode. See server.rb for Puma configuration and more details.

  • Adds support for running Ragios in a Docker container see doc for details.

Ragios v0.6.2.1

01-18-2015

  • Added REST API endpoints for retrieving all & for individual events, and deleting events. Also updated ragios-client to support the new API.

  • Added Web Admin UI option to view and delete an event from monitors page

  • changes AuthSession cookie to RagiosAuthSession cookie, because CouchDB uses the same cookie, and this causes problems for CouchDB futon when running Ragios Web Admin and Futon on the same browser on localhost

  • find monitor can no longer return any document that doesn’t have ‘type: “monitor”`

Ragios v0.6.2

12-24-2014

  • Adds a Ragios Web Admin Dashboard for managing and controlling monitors through a web interface.

  • Everything that happens to a monitor is now stored in the database as an event. Every monitor’s creation, starting, stopping, updates, deletion, tests, notifications are now stored as events that can be retrieved and plotted over a datetime range to track the behaviour and performance of a monitor over any time period. These events can be viewed using the new Admin Dashboard.

  • Change in Ragios rubyclient ragios.add() is now changed to ragios.create(), ragios.restart is changed to ragios.start which more accurately reflacts what the method does.

Ragios v0.6.1

08-31-2014

  • Switched from Thin web server to Puma

  • When a monitor’s code raises an exception the monitor goes into an error state, the monitor is stopped and the backtrace of the exception with monitor’s info is written to the log. The prevents Ragios from continously running a defective monitor.

08-25-2014

  • Complete code refactor to improve performance and maintenability

  • Slight API change monitors are now added to Ragios individually as a single JSON object or ruby hash. Monitors are no longer added in an array of multiple monitors.

Example:

monitor = {
  monitor: "My Website",
  url: "http://mysite.com",
  every: "5m",
  contact: "[email protected]",
  via: "email_notifier",
  plugin: "uptime_monitor"
}

ragios.add(monitor)

Add now takes a single monitor hash not an array.

  • By default Ragios can now run with no authentication for Ragios server and CouchDB. To use authentication it has to be enabled. This makes it easy to get started using Ragios with no configuration required and easier to test the system.

  • Ragios now stores all data in a single CouchDB database called ragios_database by default, this can be set to a different database from the config.rb file in the root directory.

  • The result of every test performed by monitors is stored as a time series in the database, this means that the performance of a monitor can be tracked and plotted over a date range.

  • All notifications are stored in the database

Ragios v0.6.0

04-18-2014

  • The test_result is now explicitly passed to the notifier’s failed() and resolved() methods are argument. This is an overall better design and ensures that notifiers report accurate results.

New Specification for notifers

module Ragios
  module Notifier
    class Dummy
      def initialize(monitor); end
      def failed(test_result); end
      def resolved(test_result); end
    end
 end
end

See documentation, Creating Notifiers section for details.

03-29-2014

  • Added support for failure tolerance. A monitor will not send out a notification until it’s number of consecutive failures exceeds it’s failure tolerance number.

Example:

{monitor: "My Website",
  url: "http://mysite.com",
  every: "5m",
  contact: "[email protected]",
  via: "gmail_notifier",
  plugin: "url_monitor",
  fail_tolerance: 4
}

The above example has fail_tolerance of 4, this means that the monitor will not send out a failure notification until it’s test consecutively fails more than 4 times. If the monitor passes it’s test before it consecutively fails more than it’s fail_tolerance then no failure notification message will be sent out.

When there is no fail_tolerance set on a monitor, it defaults to zero failure tolerance, which means that the monitor will send out a failure notification as soon a test fails.

10-22-2013

  • Added support for multiple notifiers per monitor, example below will send an email to the contact and also send out a tweet when the monitor fails.

{monitor: "My Website",
 url: "http://mysite.com",
 every: "5m",
 contact: "[email protected]",
 via: ["gmail_notifier", "twitter_notifier"],
 plugin: "url_monitor" }

Single notifiers still work the same way

10-20-2013

  • Notifications are now sent asynchronously with sucker_punch

10-19-2013

  • Plugins now return a hashmap as their test result, leads to the ability to send more detailed results.

  • Notifiers now respond to a failed and resolved method call, to notify users on test failure and resolution respectively, instead of the notify() and failed() method.

10-18-2013

  • Changed the DSL for defining monitors, now more intuitive, see example below:

{monitor: "My Website",
 url: "http://mysite.com",
 every: "5m",
 contact: "[email protected]",
 via: "gmail_notifier",
 plugin: "url_monitor" }
  • Email Notifiers will notify multiple contacts when an email list is added as value of :contacts example below

{monitor: "My Website",
 url: "http://mysite.com",
 every: "5m",
 contact: ["[email protected]", "[email protected]", "[email protected]", "[email protected]"]
 via: "gmail_notifier",
 plugin: "url_monitor" }

10-13-2013

  • Monitors are now state machines that manage their own plugins, notifiers and state. This simplifies their execution and design.

09-29-2013

  • Schedulers are now a pluggable component of the controller

  • Datastore for Ragios is now pluggable, currently implemented with couchDB but any other datastore could be easily plugged in, inplace of couchDB.

09-21-2013

  • Removed Status Reports - no longer necessary for Ragios v0.6.0

09-08-2013

  • Notifiers are now pluggable components in the system, any ruby class can respond to the right methods can be a notifier.

08-31-2013

  • Added Ragios console - Pry REPL loaded with Ragios environment and configuration - great for development and testing.

08-25-2013

  • Ragios can now run on any PAAS with Rack support like Heroku. Ragios CouchDB store could be located on any server or on a service like Cloudant.

08-11-2013 The following changes were made:

  • Added cookie based authentication for the REST API

  • Updated API for start & stop monitors and status-updates see documentation for details

Ragios v0.5.1 (Ragios Server)

11-30-2011 The following changes were made:

  • Added a database backend for persisting monitors powered by couchDB

  • Added access to Ragios via a HTTP server powered by Sinatra and Thin

  • Added a REST API for accessing Ragios over HTTP

Ragios v0.5.0

This is a rolling release. The following changes were made:

5-17-2011

  • rolling release is complete on v0.5.0. Work begins on v0.5.1

  • Ability to add failure recovery code to monitors. The system supports 2 types of failure recovery code, code to be run by Ragios when the monitored system goes into a failed state, and code to run when the system recovers from failure.

5-9-2011

  • Twitter and Gmail notifiers are now configured in the Ragios/config.rb file.

  • Added a plugin architecture. Developers can now write plugins to monitor different types of systems. All monitoring done by Ragios is now defined in plugins.

Ragios ships with 2 plugins:

* http plugin - monitors http
* url plugin  - montiors urls

Developers can easily write and deploy more plugins to meet their needs.

5-3-2011

  • With code changes in the new system Ragios version 0.5+ now requires Ruby 1.9.2 or above.

Ragios v0.4.1

This is a Rolling release. The following changes were made:

4-7-2011

  • rolling release is complete for v0.4.1. work begins on v0.5.0

2-27-2011

  • Status Reports now displays the percentage of uptime for all active monitors. This is called the Uptime value for each monitor.

For each monitor the uptime value is

@uptime =  (monitor.num_tests_passed.to_f / monitor.total_num_tests.to_f) * 100

2-18-2011:

  • Yeti is born. Yeti is a Web UI for Ragios. It’s a Rails app that runs Ragios as a Rails plugin. More on Yeti here: github.com/obi-a/yeti.

  • In addition to running Ragios as a Unix/Linux top program, Ragios can now run as a Plugin for Ruby on Rails applications. This gives developers the ability to build web UIs for it, and visualize their active monitors from Rails Applications.

2-7-2011:

  • The system admin can now configure Ragios to regularly send out a Status Report on all the active monitors running on the system.

This Status Report includes:

* The number of monitors running on the system
* How long the monitors have been running

Also includes a summary of each active monitor

* how many times the monitor has been tested
* how many tests passed it passed
* how many tests failed
* results of the last test
* date/time the last test was performed etc.

To configure Ragios to send Status Reports

Ragios::Monitor.start monitoring
Ragios::Monitor.update_status({:every => '1d',

:contact => ‘[email protected]’, :via => ‘gmail’})

The above sample means that Ragios will send a Status Report every day ‘1d’ to the email address ‘[email protected]’ via gmail.

  • The Status Report is stored in an ERB template file, this makes it completely customizable by system admins and developers.

2-5-2011:

  • Moved all notification and issue resolved messages to ERB templates in the /lib/ragios/messages folder. The ERB templates can be edited by the system admin to change the format of email messages sent by the Ragios system. The template has access to all the attributes of the Monitor base class (Ragios::Monitors::System class), so it can be edited to include or exclude attributes that appear on messages.

1-29-2011:

  • Ragios::Monitor & Ragios::System now returns a list of all active monitors with their real time stats

Example:

monitors = Ragios::Monitor.start monitoring
monitors.each do |monitor|
      puts "monitor: " + monitor.test_description
      puts "Number of tests failed: " + monitor.num_tests_failed.to_s
      puts "Number of tests passed: " + monitor.num_tests_passed.to_s
      puts "Total number of tests: " + monitor.total_num_tests.to_s
      puts "Creation date: " + monitor.creation_date.to_s
      puts "Last test was performed on " + monitor.time_of_last_test.to_s
  end

1-10-2011: Changes to Ragios URL monitor:

  • Now sets a HTTP-User-Agent as Ragios(Saint-Ruby)

  • Added support to monitor https URLs

  • Added a timeout period if the http connection takes too long to establish.

12-16-2010:

  • Added a Domain Specific language for Ragios and translator for it.

12-15-2010:

  • Added a monitoring object to the system that monitors processes on unix/linux systems and restarts a process when it stops running.

  • Added new methods to the Ragios::Monitors::System that informs the System Admin that an issue has been fixed via email,gmail or twitter.

12-8-2010:

  • Deployment of Ragios is now done by cloning the github repo and switching to the Release branch. No need to download the tarball anymore.

12-6-2010:

  • Removed the concept of Test objects - replaced them with Monitoring Objects that run tests periodically on the system. This makes the system easier to understand and provides a more uniform design structure.

  • Simplified the interface to the system by introducing the Ragios::System object, which means the monitoring system can be activated using the easier to understand code below:

monitoring = [MonitoringObject1.new, MonitoringObject2.new]
Ragios::System.start monitoring