scout_api gem released: query your time series data

By Derek Bullet_white Posted in Features Bullet_white Comments Comments

When it comes to understanding the health of our infastructure, nothing is more valuable than time series data:

  • How much has our web traffic increased over the past year?
  • How has our average request time changed since adding caching?
  • What’s our peak database query volume this week?

...and I want to view it in different ways:

  • Summarized – A single value
  • Raw – An array of data points
  • Visually – A sparkline chart

I’m happy to announce version 1.0 of the scout_api Ruby gem. scout_api lets you query your time series data stored on Scout in a fun, intuitive way. While it took a while to release this, we think you’ll be happy with the end result.

If you’ve used Rails and ActiveRecord, the code will look very familiar. If you haven’t, I don’t think that will be problem. You’ll see how readable it is below.

Lets cut to the examples.

Read More →

 

3 Developer-Centric Takeaways from Ben Franklin

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

Before a recent plane trip, I checked out the Autobiography of Benjamin Franklin from the library. Franklin might have the greatest list of accomplishments in American history. I was curious to learn how he did it. Three developer-centric takeaways:

The Socratic Method

Like developers, Franklin loved a spirited debate. In his early teens, he found another “Bookish Lad” who also enjoyed an argument. They exchanged several letters over the “Propriety of educating the Female sex in Learning” and Franklin’s father happened to find them. His father noted that while he had the upper hand in spelling and punctuation, he fell woefully short in style. He dropped his previous abrupt approach and picked up the “modest diffidence” of the Socratic method. Words like “certainly” or “undoubtedly” were replaced by “I conceive” or “it appears to me”. Franklin quotes a line from Alexander Pope:

Men should be taught as if you taught them not,
And things unknown proposed as things forgot,

Franklin spent his life persuading people. He credits the modest approach as a big reason for his successes.

For us developers: yes, that blog post on “Why SOMETHING sucks” may get attention, but it’s probably not going to build anything constructive or result in relationships with people you’d actually enjoy working with.

The place for open source

If Github (and the Internet, electricity, Linux, etc) were around in Ben’s time, he’d have some prolific public projects. One of the many amazing things about Franklin is that he didn’t patent his inventions:

This doesn’t mean he didn’t like building wealth. In fact, he wrote a book about that. He knew when to give it away and when to charge for it.

There’s more than typesetting

For Franklin, all takeaways seem to lead here: he showed the kind of impact you can make with a keen sense of balance. Out of any job I’ve held, being a developer lends itself the most to an unbalanced life. You can always make your application better looking, more featured, faster, leaner, etc. You can code and deploy from almost anywhere at any time. Before long, you can begin to measure your worth solely by code.

Franklin made his living as a printer, but his focus on improving himself outside of his typesetting skills is what made him so influential.

Read More →

 

Three New Tools in my Mac Toolbox

By Andre Bullet_white Posted in Development Bullet_white Comments Comments

It’s always satisfying to find tools that make your workflow smoother. Here are three that I started using recently:


iTerm2 is a Terminal replacement with a ton of features. The three that make the most difference in my workflow are search, mouseless copy, and tabs which you can tear away into their own windows and easily recombine. I haven’t gotten into some of the other features yet, like a hotkey-driven HUD-like terminal, Expose for your tabs, and autocomplete. The few that I am using make the switch worth it. And, the price is right (free).

Kaleidoscope is a very well-implemented diff tool. Kaleidoscope isn’t free, but it’s worth paying for: it starts up quickly, looks great, and integrates seamlessly with git.

Mouse Locator highlights your mouse pointer after it’s been still for a period of time. The use case for me: when I have multiple command line windows open (especially on a multi-monitor setup), I frequently lose the pointer in the dark windows. Mouse Locator solves that. I set the trigger delay time to about 1 minute (so it activates the first time you move the mouse after a minute of inactivity), and a very short display time (it fades out immediately). Once you set it up, you never have to think about it again. Mouse Locator is also free.

Your Recommendations?

Word-of-mouth from like-minded users is a great way to discover new Mac tools. Got one you really like? Let us know in the comments!

Related Posts

 

JMX Monitoring

By Derek Bullet_white Posted in Plugins Bullet_white Comments Comments

JMX Monitoring

One of the features Java Management Extensions provides is the ability to add instrumentation to an application. While this makes collecting metrics straightforward, it doesn’t address storage for these metrics. Enter David Dossot’s JMX Monitoring Scout Plugin.

Read More →

 

The Only Two Business Metrics That Matter

By Andre Bullet_white Posted in Business Bullet_white Comments Comments

How do you spot a successful business? It’s easiest to think in terms of size: Google, Starbucks, and Berkshire Hathaway are successful.

If you’re a small business and fixate on size alone, you’ll drive yourself crazy. I will never run a Starbucks-scale company, nor do I want to. But do I want a successful company? Definitely!

Here are the two business metrics that matter at Scout:

  1. Income per employee
  2. Employee happiness

Read More →

 

Detect and Fix HAProxy+Apache+Passenger Queue Backlogs

By Derek Bullet_white Posted in Development, HowTo Bullet_white Comments Comments

To inspire hard work, some young men hang a poster on their wall that includes: (1) an exotic sports car (2) a scantly clad lady and (3) a beach house. My inspirational poster would be much less attractive: a friendly butler who offers time-honored wisdom (with an accent because people with accents are smarter) and absolutely loves running errands for me.

I don’t like running errands because I don’t like waiting in lines. My nightmare: having to pickup groceries during a busy weekend afternoon. There are 3 queues at the grocery store that can cause a delay:

  • Finding a parking spot
  • Getting a shopping cart
  • Checking out

Modern web apps face the same queuing issues serving web requests under heavy traffic. For example, a web request served by Scout passes through several queues:

web_queues

That’s Apache (for SSL processing) to HAProxy on the load balancer, then Apache to Passenger to the Rails app on a web server.

A request can get stuck in any of those five spots. The worst part about queues? Time in queue is easy to miss. Most of the time, people look at the application log when they suspect a slowdown. However, a slowdown in any of the four earlier queues won’t show up in your application log. Just looking at your application and database activity for slowdowns is like recording the time it takes to get your groceries from the time you grab the first item on the shelf till you start waiting to checkout: you’re leaving out the time it takes to find a parking spot, get a cart, and checkout.

Now, before you start worrying about queues, take a deep breath. First, each of these systems are super reliable. For the most part, they just work. Second, it’s much more likely your application logic is the cause of a performance issue than a queuing problem. Look there first.

Third (and most importantly), each of these systems handles queues in remarkably similar ways. Understanding some basic queuing concepts will go a long way. Let’s take a look at some basics and then specific examples for Apache, HAProxy, and Passenger.

Read More →

 

Older posts: 1 ... 17 18 19 20 21 ... 51