Custom Plugin Changes

By Andre Bullet_white Comments Comments

We’ve made some changes to Scout’s custom plugins. The “creating a plugin” documentation is updated, but here are the highlights:

To create a custom plugin, place a .rb file on your server

Place my_plugin.rb in Scout’s data directory on your server. By default, the .scout/ directory is in the home directory of whatever user is running Scout.

To get you started, here is the simplest possible plugin:

class SimplePlugin < Scout::Plugin
  def build_report

When does the new plugin run?

The plugin will run the next time the Scout agent runs. If you’re actively developing your plugin, use test mode (scout test myplugin.rb) so you can see changes to your plugin immediately.

How to install your custom plugin on multiple servers

When you want to install your custom plugin on multiple servers, there are two options:

  • Option #1: you can just copy my_plugin.rb to your other servers. Simple, low overhead, and flexible.
  • Option #2: send us the code. We’ll sign it with our private key and place it your own private plugin directory. From then on, you can click-to-install it just like any other plugin, but it will only be available to you.

The second option is great if you’re bringing lots of servers online, or you’re using our cloud monitoring. When a new cloud instance checks in, it can start using one of these plugins immediately, without you having to copy the plugin file to the new server.

What about existing custom plugins?

If you’ve been with Scout for a while, you may already have some custom plugins. These plugins will continue to work exactly has they did – you don’t need to do anything.

Questions / Feedback?

Just drop us an email! We’re happy to clarify, or help you get started writing a custom plugin of your own. Also check out the creating a plugin documentation for more details.


Behind our financial dashboard

By Derek Bullet_white Posted in Business Bullet_white Comments Comments

We started Scout to make monitoring server infrastructure easier. With our heads deep in code, it took us a while to realize that monitoring our business was just as important. Here’s a look at the financial dashboard we created (as you’ll guess, the data isn’t real):

Financial Dashboard

Key Components

  • Activity by Day – This shows signups, cancellations, and subscription changes for the past two weeks.
  • Activity by Week – This is similar to the daily activity table but provides a weekly rollup of the data. It adds the projected monthly revenue and revenue change.
  • Paying Activity by Month – This rolls up data by month, adding in churn, average revenue per-account, and lifetime value. It also forecasts the next month’s activity.

Read More →


When you are not the smartest programmer in the room

By Derek Bullet_white Posted in Development, Business Bullet_white Comments Comments

Most of the freshman engineering students at my college took two computer science courses together. These were the hardest classes I would take during college (my colleague was a TA for these courses so he deserves partial blame).

The experience for Sam Epstein, a friend of mine, was decidedly different. A project that might take me a week to finish (poorly) would take Sam a couple of hours. This was a seminal moment in my life: while I knew there were smarter people than myself, I thought I could out-work my way to the top. In programming this wasn’t the case. I’d never be Sam Epstein. Not only would I not be Sam, I was pretty average compared to my peers.

Read More →


A round of bite-sized updates

By Derek Bullet_white Posted in Features Bullet_white Comments Comments

We’ve pushed up a round of small updates to Scout. The details:

Updating Saved Charts

You can now update a previously saved chart in Scout. For example, if you’ve saved a chart that displays your web traffic, but you add a new web server, just add the new web server to the chart and click the “save” button.

Last 7 days of slow transactions

From the plugin detail page you can view the most recent slow Rails Requests / MySQL queries. Now, you can paginate through the past week’s slow transactions as well. Just click the “more” button.

Provisioned cloud servers placed group

When you use Scout’s cloud functionality to automatically monitor provisioned servers, new servers are now placed in the same group as the original cloud instance. This makes it easier to identify these new servers within Scout.

For example, if you have a server in Scout that is placed in a “Database Slave” group and you have a new server checkin with the same server key, it will also be placed in the “Database Slave” group.

More on groups and cloud monitoring:

BirdDog (Scout for the iPhone) updates

Shawn Veader has released version 1.1 of BirdDog, a Scout application for the iPhone. You can grab the latest release from the App Store.


Understanding Disk I/O - when should you be worried?

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

Our co-author today is Christian Paredes, Senior System Administrator at Blue Box Group, a Ruby on Rails-focused web host that specializes in providing the operations expertise required to keep powerful apps running at peak performance. Christian keeps Blue Box Group’s internal infrastructure in top-shape and provides tier 3 customer support. He also volunteers for LOPSA, a guild for system administrators. We’re pleased to have him share some of his expertise on disk I/O.

If you’re old enough to remember floppy drives, you’ve heard the symptoms of a disk I/O bottleneck. For example, while Oregon Trail loaded the next scene, you’d hear the drive grinding away, reading data from the disk. The CPU would sit idle during this time, twiddling its fingers waiting for data. If that floppy drive was faster, you’d be running the Columbia River rapids by now.

It’s more difficult to detect an I/O bottleneck if the disk isn’t on your desktop. I’ll look at four important disk I/O questions for web apps:

  • Do you have an I/O bottleneck?
  • What impacts I/O performance?
  • What’s the best path to fixing an I/O bottleneck?
  • How do you monitor disk I/O?

A banana slug vs. an F-18 Hornet

Disk I/O encompasses the input/output operations on a physical disk. If you’re reading data from a file on a disk, the processor needs to wait for the file to be read (the same goes for writing).

The killer when working with a disk? Access time. This is the time required for a computer to process a data request from the processor and then retrieve the required data from the storage device. Since hard disks are mechanical, you need to wait for the disk to rotate to the required disk sector.

Disk latency is around 13ms, but it depends on the quality and rotational speed of the hard drive. RAM latency is around 83 nanoseconds. How big is the difference? If RAM was an F-18 Hornet with a max speed of 1,190 mph (more than 1.5x the speed of sound), disk access speed is a banana slug with a top speed of 0.007 mph.

This is why caching data in memory is so important for performance – the difference in latency between RAM and a hard drive is enormous*.

Do you have an I/O bottleneck?

Read More →


How much slower is Disk vs. RAM latency?

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

It takes longer to access data stored on your hard disk vs. RAM. But how big is the difference? It’s really big.

How can you tell if you your web application is being impacted by slow disk access? What impacts I/O performance? What’s the best path to fixing the bottleneck? How do you monitor it? On Thursday, Christian Paredes of Blue Box Group joins us to talk about disk i/o.

UPDATED: Christian’s article has been published:

Understanding Disk I/O – when should you be worried?

Subscribe to our RSS feed or follow us on Twitter for more.


Older posts: 1 ... 35 36 37 38 39 ... 67