A 5-point Rails app performance audit

By Derek Bullet_white Comments Comments

Before we talk performance, lets talk entropy. Entropy usually refers to the idea that everything in the universe eventually moves from order to disorder, and entropy is the measurement of that change.

Like entropy, the performance of a Rails app will trend toward disorder. An N+1 database query here, a forgotten pagination implementation there, a missing index here, etc. This performance debt builds over time, and suddenly...we've got a slow app.

slow sloth

Where do you start knocking down this performance debt? Surely, not everything is slow, right? Let's perform a Rails performance audit.

In 10 minutes or less, you'll have a good idea of where your app stands and where to focus your efforts by following this 5-point performance audit. At each step of the audit, I'll work through the analysis on a real production app so you can see an audit applied.

Read More →

 

DataDog vs. Scout: which is right for you?

By Derek Bullet_white Comments Comments

You're probably confused where DataDog and Scout overlap. You're not alone! They've each offered similar products since their inception, and come on, they both have dogs in their logos!

Here's a timeline to clear things up:

  • Both Scout (2009) and DataDog (2010) started around the same time and focused on system-level monitoring (server resource usage, custom metrics via StatsD, etc).
  • In late 2015, Scout launched a dedicated Application Performance Management (APM) product. DataDog launched their own flavor of APM nine months later.
  • In the summer of 2017, Scout's original server monitoring product was acquired by Pingdom, becoming Pingdom Server Monitor. Scout now focuses on application monitoring.

DataDog offers both infrastructure and application monitoring. Scout offers a focused APM product, so their offerings overlap on application monitoring.

Read More →

 

New Relic vs. Scout: which is right for you?

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

There's no type of monitoring tool that can get to the heart of a performance problem faster than Application Performance Management (APM).

If you're making this decision, you may be choosing between New Relic and Scout. There are cases where New Relic is a better fit, clear cases where Scout fits like a glove, and some murky situations as well. Where do you fall?

Below, I'll summarize the factors to consider when choosing your best APM product.

Read More →

 

Visualizing Rails logs With Jupyter Notebook

By Derek Bullet_white Comments Comments

cover

Your Rails app appears to be humming along just fine. But then, out of the blue, one of your most important customers emails your support team: "the site is loading slowly - is something up"?

You frantically browse around the site, but everything seems fine. You double-check the charts: things look normal. Is the customer trying to trick you? Is monitoring broken?

In this post, I'll show how to slice-and-dice your Rails application log to uncover performance issues on the edges. With your new super powers, you'll be able to find that needle in the haystack.

Read More →

 

ActiveRecord: biting the hand that feeds you

By Derek Bullet_white Comments Comments

Richard Schneeman (better known as Schneems) recently wrote about how he reduced his database server load by 80%...with one simple trick. In the Hacker News discussion that followed, much of the debate was on the merits of using an ORM like ActiveRecord...or not:

hn

In every case I can think of, writing raw SQL is likely to execute queries faster than using ActiveRecord. So, why don't I just write raw conn.exec('SELECT * FROM users') everywhere?

Read More →

 

Finding fast (but expensive) database queries

By Derek Bullet_white Comments Comments

A database is a shared resource for a Rails application. A single misbehaving query hitting your database can slow down unrelated queries throughout your system.

When we began running our own database monitoring against our apps, we discovered several expensive queries that weren't apparent when viewing individual web endpoints and backgrounds jobs.

Read More →

 

Older posts: 1 ... 4 5 6 7 8 ... 68