Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
103 lines (68 sloc) 4.15 KB


There are plenty of site monitoring tools out there, but we were looking for something a little different. A way to determine, at a glance, the health of all of our servers. That's where Owl comes in.


Everything is relative. Owl shows you how your sites are responding compared to how they've been responding in the past.

Owl is filled with lots of pretty colors. The chosen colors conform to Western traditions: green is good, yellow is a warning, red is bad. A site is considered to be responding normally when it's response time is within an acceptable percentage of the average response time for the last hour. So, let's say your site has been responding in an average of 500ms in the last hour. If it suddenly responds in 2000ms instead it will turn a bright yellow. The are lots of gradations between yellow and green and you can use this to get an idea of how your sites are responding. When you are setting up a watch (see Terminology below) you can influence when you see these colors – to a degree. See Adding a Watch under Usage below.


Owl centers around the concept of a “watch.” A watch is one webpage that you want to monitor. Multiple watches roll up under a “site.” For example you might have two watches:

These could both live under a site named “” so that you easily monitor just certain groups of servers instead of all of them at once.


Owl is comprised of two parts: the front-facing website and a backend process called Mouse that constantly requests all the watches you have defined. The response times, status codes, etc. are saved to a database and used to compile the info for the front-facing site.

If you enable alerts so that you can be notified if a watch does not response as expected, you will also run Delayed Job in the background to send you these alerts.


The Owl frontend is a Ruby on Rails website. Before you start it you will need to build the database and seed it with data. Copy config/database_sample.yml to config/database.yml and change the development/production settings to suit your environment. Next, run a couple of rake tasks to prepare the database:

rake db:migrate
rake db:seed

You can now start the frontend:


Now browse to Owl and start adding sites and watches: localhost:3000 You are now viewing the Dashboard.


Mouse is the backend process that requests your pages and records their responses. To start mouse:

lib/mouse/bin/mouse -i 30

This tells Mouse to start crawling your watches every 30 seconds (you can call Mouse with -h to see available options).

Adding a Site

Just click the large “Add Group” button at the bottom of the page.

Adding a Watch

In each Site you'll see an “Add URL” button. Click that to add a watch. Once you have created a watch you can click on its name and edit it or configure alerts.

If you want to set an absolute limit at which a site's response time is really considered bad, set the Warning Time attribute a number of milliseconds. If the site responds slower than this then it will blink on the Dashboard page, regardless of what color it is.

If the content on a page does not match the regular expression you enter in the Content Match field, the site will be considered down and turn red. Likewise if the Expected Response does match it will be considered down. If the request to your server times out it will be considered down.

To add alerts for a watch, you need to create it first and then edit it by clicking on the name in your dashboard.


Owl currently supports alerts via Twitter and Instant Message. You will need to start Delayed Job so that it can pull messages off the job queue and send them to you. See lib/mouse/alerts for the job classes. These are configured in the job files themselves so simply modify them to use your own Twitter and IM account connection info.

SMS and Email notifications are stubbed out but have not been built as of this writing.

Extended vs. Compact View

The compact view is the original intention of Owl: being able to tell at a glance what state your servers are in.

Jump to Line
Something went wrong with that request. Please try again.