New Relic Engineering: 2013 in Review

It’s been a big year for New Relic. And as the year draws to a close, we as an engineering organization would like to take some time to reflect upon some of our proudest achievements, biggest accomplishments, and the stuff that just makes us smile.

Alerting

This year we spent a lot of time and energy improving the mechanisms by which our customers can be alerted. The project included two major thrusts.

On the frontend, our design and UI engineers spent a lot of time obsessing over the design of the interface, and the overall experience for our customers. We felt that it was critical to allow our users to be alerted about only the things that they cared about, only when they cared about them.

It was also critical that they be able to apply a single policy to multiple — in some cases thousands — of applications and servers in their infrastructure, while still giving them the fine-grained control necessary to pay close attention to their most critical components. In the end, we think we came up with an incredible design that strikes just the right balance.

While the design and UI engineers were spending their days sweating over these improvements, we were also hard at work on the backend preparing to migrate our customers over from the old alerting mechanism to the new one. This was no easy feat. All told we moved every customer but 500 very large accounts (400K in total) from the old alerting mechanism to the new one.

Not only does such a move mean that those customers immediately had access to this great new feature, but also that they’ll receive continual improvements and alerts on new conditions as we add in functionality. This sort of move touched almost every part of our architecture, from our collectors on up to the UI.

Rubicon

We have also been hard at work building Rubicon, an exciting new way for our customers to gather and visualize valuable business data. Rubicon relies on a novel approach to database architecture that will allow us to gather and visualize data about what a user’s software says about their business.

Imagine being able to tell what everyone on your site has in their shopping cart in real time. Rubicon can do that. Imagine being able to tell what page most of your users leave from. Rubicon can do that.

In many ways Rubicon is the development that we are the most eager to share with you, though it’s currently only in beta. But we are hard at work putting the finishing touches on it and can’t wait until it has the enormous impact that we know it will.

FutureStack

Selfishly, I think that FutureStack13, our first-ever user conference, was the highlight of the year. It was fantastic for those of us who build New Relic to get to meet with all of the people who are so excited about both our product and the visibility into software that it offers our customers.

We’re a bunch of really excited people who have a lot of fun developing something that we’re super-passionate about. And we ourselves use New Relic every day to gain insight into how we’re doing. It was amazing to be in a sea of people who were just as excited about it as we are. If you came this year thanks. And if you didn’t, there’s always FutureStack14!

New Relic for node.js

Our node.js team (hi Forrest!) released an agent for instrumenting applications written using Node. That sentence alone belies the incredible amount of effort that has gone into such a feat. Actually, we might call this one of the top achievements of 2012 and 2013, since Forrest has been hard at work, experimenting with different approaches to implementing an async transaction tracer for almost two years. At times he looked something like a mad scientist, whipping up and throwing away different schemes in a quixotic quest to finally tame the windmill that is node.js.

In the end the node.js team delivered a Node module that we believe is so dead-simple to use, you’ll never even realize the amount of effort that went into it. And as more and more applications move to Node as a way to solve their scaling challenges, we are proud to say that we’re ready to help engineers gain visibility into their code in production.

Platform

This year we also released the New Relic Platform, which allows our customers to create and share plugins that provide in-depth, real-time insight into the performance of each component in their application’s stack. This means that you can have visibility into your application’s cloud services, databases, caching, networking, and a lot more — all in one place.

We were excited about our customer’s newfound ability to create and share with each other instrumentation for common architectural components that we otherwise wouldn’t have the time to instrument for them. But we had no idea how popular it would ultimately be. Within the first 24 hours we were collecting more than 500 million metrics per day from over 3,000 deployed plugins. Many high-fives were had that day, believe me.

Mobile Improvements

Mobile development is, at its heart, a much different animal than web development. If you don’t believe us, go ask any mobile developer how the two are different. Go ahead, we’ll be here tomorrow when they’re done explaining it to you.

Since the mobile development cycle has such a different process, it also requires a very different toolbox. And our mobile team has been hard at work to fill this toolbox with a uniquely useful toolset. Late this year we were happy to release Interaction Timelines and Mobile App Version Comparison for our customers developing the next generation of mobile applications.

Mobile App Version Comparison allows our customers to visualize the performance of different versions of the app, something web developers don’t have to concern themselves with, as they’re always running the same release. Being able to see the performance of these different versions means that our mobile customers will be able to track performance regressions as they release new versions of their applications. This helps them verify the incremental improvement of their app over time.

Interaction Timelines provide code-level tracing in mobile apps, visualizing different execution threads, networking, blocking methods, and CPU/memory usage in a multitrack timeline, allowing our customers a much fuller picture into the performance of their app on at the device level. Also, Interaction Timelines marks the first time we’ve released a UI built with D3.js, which we are super-excited about. Look for more D3 in 2014, as we think it will offer us some amazing possibilities in our visualizations.

Looking Forward to a Bright 2014

We want to thank all our customers, who allow us to work on some of the most challenging and rewarding tools out there. Thank you for following along on our blog, dropping by to chat at conferences, and above all developing the applications we’re happy to support. It was amazing to see so many projects come to fruition in 2013, and we’re looking forward to bringing even more to the table in the coming year.

jlepper@newrelic.com'

View posts by .

Interested in writing for New Relic Blog? Send us a pitch!