7 min read

New Relic - Explained

New Relic - Explained

Everyone hates slow websites

Have you ever visited a website that was slow?  I'm sure you have. And it's probably one of the most frustrating things in the world. We live in a fast-paced society where we expect things to happen quickly.

What if I told you that there was a way to fix slow websites? That's where New Relic comes in.

New Relic provides application monitoring, alerting and much more. We'll dive into the benefits of using New Relic in this post.

A little history for deployments

The Internet used to be a place with one server, but now there are hundreds and thousands of them! Knowing how many servers exist has become important because if something goes wrong on this network then it can usually get fixed in software instead of having hardware problems or downtime.

With the introduction of cloud technologies like Amazon Web Services, Google Cloud Platform, Microsoft Azure, a few things changed in modern infrastructure.

  • Easier than before but more complicated
  • The Internet expanded
  • Cloud Adoption

For the image above, it's expect for a software engineer to completely understand what is going on. For Engineering management, you should at least be familiar with the basics of the architectures.

This is why monitoring and alerting is more important than ever. There are more moving pieces we need to track.

One Server -> Multiple Servers

The one-app-one server paradigm was once a thing of beauty, but now it's just inconvenient. Most major apps run as distributed systems with many servers in tow which makes troubleshooting easier than ever before—but not all problems can be solved by simply turning it off and back on.

Developers today don't need to worry about buying physical hardware, getting storage space, setting up a data center and then supporting the software on those servers.

An old server room in the 2000s

Now they need to be familiar with tools like Docker, Kubernetes, clusters, virtual machines, pods, gateways, and much more. There is a reason why organizations value engineers who have their cloud certs. Working in the cloud is only easy if you know what you are doing.

The Internet Changed

The internet has grown exponentially in recent years, with 2 billion people loading Facebook every hour. Twitter has about 180 million users looking constantly posting and responding to content.

Don't forget to follow me @KingCaleb3

The more people using a service, means that there are now more potential problems to handle and fix on the servers - especially when you take into account all those who want something at once! How do tech organization support these changes?

The answer lies in observability software.

Basics - Monitoring and Alerting

Building and launching your app is the fun stage. You are thinking of MVP, designs and how you will get your users to love your product.

AFTER you launch your app, the fun part begins. Monitoring your app is only the beginning; there's also making sure it continues working and operates efficiently.

When we mentioned monitoring and alerting we are referring to the tools software engineers use to review their application performance. There are two distinctive pieces when referring to what we can monitor.

  • Infrastructure Monitoring
  • Application Monitoring

Infrastructure monitoring

Is keeping an eye on any metrics that relate to non-application data. I like to think of this as the hardware piece associated to your application. Like the horsepower of a car or size of engine. Remember we are working with multiple servers.

There are a few metrics you want to keep an eye on to make sure everything is running smoothly:

  • CPU – how much processing your server is doing as a function of its total processing power (e.g. 3 out of 4 CPUs)
  • RAM - how much memory your server is using (e.g. 3GB/4GB memory)
  • Disk - how much storage your server is using (e.g. 450GB/500GB stored)
  • IO - how fast your server is reading and writing things from memory and disk

Application monitoring

Application monitoring is all about the app itself. Think of things like gmail or jasper.ai, where you are logging in via internet and using an application.

Monitoring your app is only the first step in ensuring that it’s always available and running smoothly. These are the things to consider when reviewing application performance:

  • Request performance: how quickly are your API endpoints responding?
  • Error monitoring: are you getting HTTP errors on your requests? Is your code erroring out? If so, what kinds of errors? When are they happening?
  • Frontend load times: how quickly is your app loading? Are interactions from your users quick?

How New Relic works

New Relic APM collects and stores metrics and data from web-based and other associated applications within the enterprise.

New Relic receives data over the network and then processes and analyzes it. Users view the data through a dashboard-type interface.

Imagine you're a Developer, and your application is slow. You open up New Relic to see what's going on with performance; after looking at some charts of load times over time ( historical data).

It becomes clear that there are certain pages which take much longer than others: maybe those administrative sections can be moved onto another server if necessary so they don't affect customer experience

Developers love Dashboards

As a engineer, I loved New Relic because I can debug multiple servers in a manageable fashion. By creating and viewing dashboards engineers can see visualizations that can show spikes, errors, load times and much more.

If an app like Forbes.com is having issues, we can be notified way before any of our users are aware.

Being Proactive vs Reactive

With the rise in popularity of observability tools, it's easy to see why so many developers are taking advantage.

These apps not only help you identify problems but also figure out what caused them and how best fix your issue without too much hassle or downtime for users!

The logs these pieces process provide valuable information when trying solve issues like startup delays due an unexpected error message displayed on boot-up - which can happen if monitorings systems aren't properly hooked up with storage providers (or vice versa).

Benefits of New Relic

  1. Software as a service (SaaS)— There is no installation required for New Relic. It can be accessed from anywhere and at any time.
  2. Simpler and easy to use.
  3. Availability monitoring — you will have access to a nice report which will visually show you when any downtime has occurred.
  4. Customer Error Recording — New Relic will record customer errors for you and gives you a nice graph. You can also see the stack trace for each error.
  5. Transaction tracking — you will be able to see where your application is spending most of its time.
  6. External Service Call recording — whenever you make calls to other services from within you app (e.g. an HTTP request to an API like Twitter), New Relic will monitor these as external calls. Often these external services can significantly degrade the performance of your app, especially if you make these calls in-process. New Relic can show which of your external calls are slowest, which ones you call the most and which respond the slowest on average.
  7. Scalability and Capacity analysis — you can tell straight away how well your app is scaling, you can do load tests and instantly see if you application can handle the load. You can observe your application response time trends as your user base grows and predict when you’ll need to add capacity.

New Relic competitors

New Relic competitors include AppDynamics, Datadog, Dynatrace, SignalFx and Splunk Technology.

An APM tool can be part of the IT toolset for years, so evaluate each prospective tool carefully -- compare features, benefits and costs -- prior to a final decision.

New Relic vs Splunk

New Relic and Splunk Enterprise both provide businesses with insights into what events are occurring in their applications.

New Relic is focused on application monitoring to help monitor user behavior in web based, mobile, or desktop applications.

Splunk Enterprise is a Security Information and Event Management tool that manages data and provides businesses with event logs and alerts.

Notably, many businesses use both New Relic and Splunk Enterprise, and they have native integrations with each other. New Relic can take in data from applications and feed it to Splunk Enterprise to generate reports, alerts, and logs.

It can be confusing but in my experience enterprise organizations will have both, whereas smaller orgs might lean on New Relic for their monitoring needs.

Final Thoughts

We use New Relic at Forbes, USAA and WebPT and I have to say I really enjoy the tool. Especially now that they have browser monitoring.

If you are an engineering leader looking to monitor your application performance I would recommend New Relic over Splunk, ELK, AppDynamics. Those other tools can work in tandem with New Relic but I've found myself using New Relic over other things.

Would highly recommend any engineer working with APIs or web-apps to get familiar with something like New Relic.

Thanks for reading.