Cloud Tools: Ruby-Based Cloud Monitoring with Scout

by Sergey BushikApril 20, 2012
This blog post focuses on Scout Monitoring—a service for managing server and application performance, as well as analyzing cloud needs.

Scout pros, cons, and recommended use

Scout is a hosted monitoring service for managing server and application performance. The Ruby-based solution enables tracking of server resources and the ability to alert its users via e-mail, SMS, or RSS. It combines a flexible plug-in system with a hosted service. From a user perspective, there is a single component—the Scout Agent, which is a small Ruby program distributed as a Ruby gem. A cron job runs the Scout agent every few minutes, while it collects performance metrics from your system. Those metrics are then sent back to via a secure HTTP. The agent neither opens up ports, nor accepts any incoming connections. It communicates outwardly and only over regular HTTP port 80. On the server side, Scout is built on a pretty standard open-source stack: Ruby, MySQL, RRDtool, Apache, and Linux. The Scout’s server side component is a traditional web application. This is where users create their accounts, view alerts, configure trigger thresholds, browse graphs, etc.


The solution provides you with the following benefits:

  • Scout Monitoring offers a number of advantages for businesses, as well as allows developers to build their own modules to customize monitoring arrangements and track specific metrics. Scout can monitor CPU load, disk usage, MySQL performance and slow queries, I/O stats on any number of devices, Apache status, NGINX, EC2 Cloudwatch, and more.
  • The service can be extended by additional Ruby plug-ins, such as those already available for monitoring Ruby on Rails, Phusion Passenger, and others.
  • Scout’s open-source component stack—very robust and mature—provides with competitive prices, enough to cover licensing costs.
  • Finally, the tool features separating the data collection mechanism (Sinatra) from an end-user site (Rails). can be updated with zero interference to data collection. From an operational standpoint, this means that all updates can be pushed without affecting business-critical data collection mechanisms.


The challenges a user faces when monitoring a cloud include observing multiple hosts or the necessity to gain Ruby skills in case one encounters Ruby applications. There are also mandatory requirements for hosted monitoring. In particular, the executional environment (Ruby), which is required to be installed on any system node a user wishes to monitor. However, specific to Scout, it has not been much of a problem, because Ruby is increasingly commonplace, and many Linux distributions already have Ruby installed. If Ruby is not already installed, it is just an “apt-get” or a “yum install” away.

Recommended use

Scout application is designed for companies that need to monitor and analyze multiple performance metrics of mostly Ruby applications and servers.


Further reading

The post was written by Sergey Bushik and Katherine Vasilega.