Spotlight: Server and application monitoring with Scout

scout-server-monitoring.png

Scout monitors your server and application infrastructure and alerts you when something goes wrong. Scout’s plugin system provides metrics for Rails applications, Apache, MySQL, MongoDB, Redis, Memcached, and more. Pusher powers Scout’s real-time charts, providing live metrics from any number of your servers. We’ve chatted with founder Andre Lewis, who told us a bit more \[…\]

Introduction

Scout monitors your server and application infrastructure and alerts you when something goes wrong. Scout’s plugin system provides metrics for Rails applications, Apache, MySQL, MongoDB, Redis, Memcached, and more. Pusher powers Scout’s real-time charts, providing live metrics from any number of your servers. We’ve chatted with founder Andre Lewis, who told us a bit more about how Scout works.

What does your app do, and what problems does it solve for your users?

Scout is stress-free server and application monitoring. Scout takes metrics from all the important parts of your infrastructure — MySQL, Memcached, HaProxy, disk usage, Phusion Passenger, Rails, and many more — and alerts you via email or SMS if something goes wrong. Need data not provided by one of Scout’s 60+ plugins? Roll your own Scout plugins in Ruby.

What functionality is powered by Pusher?

Pusher powers Scout’s realtime charts. Realtime charts are a special “burst mode,” intended for brief debugging or troubleshooting sessions when you need maximum visibility into your infrastructure.

How does this new functionality improve the user experience for your users?

Realtime provides up-to-the-second metrics from any number of servers – previously, this just wasn’t possible. Before realtime charts, the closest you could get (with or without Scout) was to open a bunch of terminal windows, arrange them on your monitor, run ‘top’ in each, and try to keep an eye on everything. Realtime gives you a much broader selection of metrics, presents them all on one web page, and provides it all through a simple web-based UI.

Have you got any technical tips or code that could help other Pusherinos?

We needed to ensure that only members of the originating Scout account have access to realtime data as it flows through Pusher, but we didn’t want the extra complexity of private channels. Here’s how we handle security:

  • when a Scout user starts a realtime session, we generate a GUID on our server, which acts as a key for the realtime session
  • the GUID is sent to the Scout agent, which uses the GUID to feed events to Pusher
  • the GUID is also sent to the user’s browser. If the user sends the realtime chart link to other Scout users in the same account, (say via IM or campfire), those users also get the realtime session GUID
Tech Stack