Our New Featherweight Agent

Skylight learns how your app is performing by running an agent that instruments each request as it comes in. Built with efficiency in mind, our new Featherweight agent is now almost invisible, making it usable in even the most resource-constrained environments.

Keeping our overhead low is extremely important, because it allows us to collect much richer data. Richer data translates directly into an explorable interface that virtually eliminates the feedback loop, letting you ask questions and get answers as fast as you can move your mouse.

Historically, you've had a tradeoff to make when hunting down performance problems.

If you wanted to get profiler-level detail, you would use a tool like ruby-prof. But these kinds of tools impose enough of a tax on performance that you'd never run them in production.

In contrast, typical always-on tools that you run in production only provide coarse-grained information, which can be difficult to act on.

From the beginning, we built Skylight to bend that curve. We collect and display highly-detailed information, but with low enough overhead that you can leave it always-on in production.

Since we released Skylight 18 months ago, we've continued to collect more and more detail from your apps. At the same time, thanks to the work we've done with Rust, the agent actually uses fewer resources! Over the next year, we'll be rolling out more features that are even more ambitious. The architecture of the Featherweight agent will let us collect profiler-level information with imperceptible new overhead.

To give you an idea of our roadmap, the feature we plan to deliver next is called Bloat Detector. This will give you a Heads Up when one of your endpoints is allocating a large number of objects, and let you drill in and see exactly where those allocations are coming from. Thanks to the low-level nature of the Featherweight agent, we can do this without slowing down your app.

If you're already a Skylight customer, you can update to the newest agent by editing your Gemfile:

gem 'skylight', '~> 0.4.2'

If you're not a Skylight customer, sign up today and the first 30 days are on us. Once you've got this level of detail from your production apps, you'll never want to go back.