"Plugins" Posts

A Six-Pronged Rails Performance Philosophy

By Sudara Bullet_white Posted in Plugins Bullet_white Comments Comments

"An ounce of prevention is worth a pound of cure.” ― Benjamin Franklin

Application performance problems can be annoying. With luck, you'll spend an hour or two resolving the problem and get back to your real job: building things.

But what happens when the issues start piling up? What happens when "poor performance" becomes the norm?

When looking at performance issues in aggregate and cross-application, a deeper root cause can appear. This can be tough for a team to identify and even tougher to act upon.

Read More →


Sidekiq and Puppet Monitoring Plugins = 70+ plugins strong!

By Derek Bullet_white Posted in Plugins Bullet_white Comments Comments

With the Sidekiq Monitor Plugin (by Scott Klein of StatusPage.io) and the Puppet Last Run Plugin (by Didip Kerabat of Kongregrate) Scout’s plugin directory count has now passed 70 plugins!

The Sidekiq Monitor Plugin monitors key metrics for Sidekiq, a Ruby message processing library. Didip’s Puppet Last Run Plugin tracks key metrics for the most recent Puppet run on a monitored server.

Have a useful plugin sitting around? Share it! Send a pull request to our scout-plugins repository on Github.


Kestrel in Production at Papertrail

By Derek Bullet_white Posted in Plugins Bullet_white Comments Comments

We’ve added prolific plugin contributor Eric Lindvall’s latest plugins to Scout: Kestrel Overall and Kestrel Queue Monitoring. Kestrel is a simple message queue built from production needs at Twitter. Being the gentleman he is, Eric shared his experiences with Kestrel at Papertrail, a hosted log aggregation service.

Why Kestrel?

As all good message queues should, it provides:

  • transactional reads to prevent losing messages if a worker crashes before finishing processing a message
  • durability to prevent losing messages if a queue server crashes or is stopped after messages have been sent to it
  • “normal” queues (only one client sees a given message) and “fanout queues” (all clients see a given message, which many messaging systems call “topics”)

We picked Kestrel because it has bounded memory usage (it has a configuration setting to specify how many queued messages should reside in RAM, generally defaulting to 128MB), it’s small (I was able to read the entire Scala codebase in a weekend), and running on the JVM (which we have experiencing with) was a plus.

Read More →


An update to the "Simple Process Check" Plugin

By Andre Bullet_white Posted in Plugins Bullet_white Comments Comments

The Simple Process Check plugin takes a comma-delimited list of process names, and alerts you if any of the named processes stop running. It’s an easy way to keep tabs on the essential processes on your server.

What’s New: Track Multiple Processes with Different Arguments

You can also check that a process exists with a certain substring included in its arguments. For example, to check for two instances of node (one with “emailer” in its args, and one with “eventLogger” in its args), set this in process_names: node/emailer,node/eventLogger.

You can mix and match pure process_names and process_name/args.

Here’s the link to the Simple Process Check plugin again.


New Plugin: Simple Process Check

By Andre Bullet_white Posted in Plugins Bullet_white Comments Comments

Simple Process Check is a new plugin in the spirit of the recent Simple Port Check.

Provide a comma-delimited list of process names (names only, no paths). This plugin checks that at least one instance of each named process is running.


  1. You’ll get an email if any of the processes have NO instances running.
  2. You’ll get another email when any of the non-running processes are present again.

Simple Process Check vs. Process Usage

The Process Usage keeps tabs on one specific process name. It tracks the number of instances running, the total memory usage, number of restarts, etc.

Simple Process Check keeps tabs on multiple processes (according to the list of names you provide), but provides less information on each process. You should use Simple Process Check if you have a number of processes to monitor, and primarily need assurance that they all are running.

Try it out

That link again: Simple Process Check. Let us know if you have any questions or feedback.


Monitoring HAProxy

By Derek Bullet_white Posted in Plugins Bullet_white Comments Comments

HAProxy is a rock-solid, high performance TCP/HTTP load balancer. It’s what we use at Scout to proxy traffic to our app servers.

We’ve added a plugin to monitor HAProxy: just specify the URL to your HAProxy stats page and the name of the proxy. You’ll get the request rate, error rate, and proxy status for the specified proxy.

Why monitoring the load balancer is important

The load balancer is one of the best places to narrow down the cause of an outage. If all servers in a proxy aren’t processing requests, it’s often an indication of an outage further down the stack (ex: the database). If it’s isolated to a specific app server, the first place to look might be the downed app server.

The Scout HAProxy plugin gathers its metrics by parsing the output of the HAProxy Status page. It’s one of my favorite open source status pages: the page loads quickly and the color-coded statuses make it easy to focus on problem areas during an incident. The Scout plugin and the HAProxy status page play well together: if the plugin records a dramatic change in the throughput, error rate, or the proxy status, we’ll pull up the HAProxy status page and dig further.

Installation Notes

Like all Scout plugins, installing the HAProxy plugin is just a couple of mouse clicks away. Just click the button in the Scout UI and select the HAProxy Monitoring plugin. Note that the plugin has one dependency: the fastercsv gem must be installed. See the plugin directory entry for more details on the plugin.


A big thanks to Jesse Newland for the initial version of this plugin.


Older posts: 1 2 3 ... 7