New Relic is one of the largest players in the APM (Application Performance Monitoring) industry. The company was founded in 2008 and has quickly grown into a product that thousands of customers rely on every day to deliver insights about their software performance.
The company has made a name for itself with its application performance monitoring capabilities, but it also offers a suite of other tools: Browser, Insights, Infrastructure, Synthetics, and Mobile. The product also includes Plugins for popular technologies like Elasticsearch, NGINX, HAProxy, Amazon Web Services, and MySQL. Many of these plugins are maintained by partners and third-party users, so they are not officially developed or supported by New Relic.
New Relic Mobile is one of the few products on the market tailored to helping mobile developers analyze and improve their performance times. If your business consists of a mobile app, or your mobile app is very important to your bottom line, you should consider trying out New Relic's Mobile monitoring tool.
Although New Relic recently added Infrastructure monitoring to its suite of tools, this capability is relatively new, so we will focus primarily on the APM and Synthetics tools in this review.
- Most well-known APM solution on the market.
- Many different products with different monitoring capabilities, ranging from synthetic monitoring to application performance monitoring. However, each comes priced separately so it can quickly get expensive to use all of the products.
- Many helpful tutorials to walk you through the setup process.
- New Relic's reliance on Apdex scores carries a learning curve and can be misleading and/or meaningless to users that don't take the time to determine what values makes sense for their applications.
- APM pricing depends on many factors, so it may be difficult to accurately estimate or predict how much you're going to spend.
- Many parts of the product require an upgrade to a premium account, or are part of another separate product, so investing in all of the features you'll want can get expensive.
- APM pricing: $9.37 to $200 per host per month (billed annually). Pricing varies depending on the number of hours each host/instance is running, the size of the host/instance, and the total number of hosts/instances.
- Synthetics pricing: $69/month.
- 14-day free trial.
Table of Contents
- Full Review
- Key Features
- Is New Relic the right software for you?
New Relic is a Software as a Service (SaaS) tool that offers a full suite of products to help companies across ~100 countries monitor everything from their applications to their servers. The company's flagship product is application performance monitoring (APM), which delivers insightful performance metrics from your applications, and helps you spot trends in response time and error rates. However, the company also introduced a new infrastructure monitoring product to round out its suite of monitoring tools.
The pricing for all of the products can be prohibitively expensive for smaller companies on a budget; however, some of the features are included in New Relic's Lite offerings for free, including monitors that simply ping your website to check if it is responsive. Setting up a simple Ping monitor in New Relic Insights is as easy as entering a URL and selecting which locations to test, as well as how often to ping the site.
New Relic uses an industry term called the Apdex score, which is designed to measure user satisfaction when it comes to your applications' response times. It basically calculates a ratio of satisfactory to unsatisfactory response times; the "tolerable" value between the two is known as the T value, and is configurable by the user. Some users may like that New Relic uses this concept, while others will find it difficult to understand what this ratio tells them, or how to set the T value accurately.
Below, we will walk through some of the key features of New Relic's main products, and how they may benefit your business.
Application performance monitoring
The APM is the strongest offering in New Relic's suite, and supports 7 languages: Ruby, PHP, Java, .NET, Python, Node.js, and Go. To start monitoring an application in one of these languages, you'll need to install an agent. For this article, we chose to install the Python Agent to monitor a Django application.
New Relic's Python APM agent supports common frameworks like Django, which meant that it was able to automatically pick up transactions like django.contrib.auth.views:logout and measure their response times. To install the Python agent, simply install the newrelic package, run a command to generate a configuration file, and start up your application (in our case, the command was
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program manage.py runserver).
Once the agent is running, it will automatically start to pick up information about functions in your application, record any errors, and report them back to the New Relic app interface. Within minutes, you'll be able to analyze an overview dashboard that shows latency, throughput, and Apdex score, like the one shown above.
You can also edit the visualization type to view metrics as a histogram chart, as shown above.
You can then navigate to a more granular view of your metrics, such as percentage of time spent on each transaction within your app. For example, in the screenshot above, we see that the login process is taking about half of the time, while loading the homepage is much faster.
As shown in the dashboard above, our web application server's Apdex T-value (which determines the latency threshold of satisfactory requests) is 0.5 seconds by default, and 7 seconds for browser monitoring. You have the option to revise these values in your application settings.
New Relic's reliance on Apdex scores is one weakness that we think could use some improvement. The company assumes that its users will take the time to understand what an Apdex score means, and that they will be able to determine what Apdex T-value makes sense for their application. Until the user determines a sensible value, the preconfigured alerts and dashboards that rely on the Apdex T-value will be misleading and/or useless.
One of the most useful aspects of New Relic's APM product is the Service maps feature, which helps you visualize how all of the components of your architecture fit together.
Although our simply Python application doesn't have many dependencies, you can see how this feature would be incredibly useful for teams that work on applications with many moving parts.
You can also navigate to any particular service's dashboard right from the service map. For example, we can examine SQLite metrics from our application to see how our database is performing, broken down by operation.
Another great feature of New Relic APM is that it allows you to specify which transactions are more important to your business. You can prioritize important transactions by marking them as Key Transactions in New Relic APM. For example, if you want to make sure that users are able to log in quickly (or perhaps you recently updated the login process and want to keep a closer eye on it), then you could list the login function as a key transaction and start to monitor it on a closer basis in the APM product.
To observe any particular Key Transaction in even more detail, New Relic APM also offers X-Ray Sessions, which break down the transaction into even further detail to deliver insights about which part of the transaction is lagging the most. Each X-Ray session runs until the desired number of traces is collected. Each trace shows you the slowest components, the average number of calls to that component, the average length of time those components took to execute, and the percentage of time each component took to execute. This tool can effectively help you narrow down which parts of your application could be optimized on the back end.
Setting up a synthetic monitor in New Relic Synthetics is straightforward, but perhaps not as sophisticated as synthetics-focused companies like Pingdom, Catchpoint, or New Relic. However, if you are using New Relic for APM and see some benefit to gathering synthetic monitoring data in the same place, New Relic Synthetics could serve your purposes very well.
Synthetics supports four types of monitors: ping monitor, simple browser, scripted browser, and API test.
For a ping monitor, simply enter the URL you want to ping, and which locations you want to test. New Relic can send synthetic tests from 7 locations in North America, as well as a few monitors across cities in other continents like Asia, South America, Australia, and Europe.
The next steps are to specify the desired check frequency and check interval, and add an optional email address to notify in the event that the check fails. Note that email is the only option; there is no straightforward way to hook up this monitor to notify you via text message or another notification system like PagerDuty.
Once you've set up your synthetic checks, you'll start receiving data about page load times, broken down by the various geographical regions you've selected. You will also see the locations with the slowest results, as well as any failures that occurred across tests. The timeframe is configurable from the last 30 minutes to the past 3 months.
If you navigate to the Results tab of the Synthetics product, you'll see a more detailed breakdown of Network timings, broken down by states and tasks like DNS lookup, connecting, sending, and receiving.
The UI also makes it easy to filter results by testing location. For example, in the screenshot above, we filtered results to only show the slowest location, Dallas, so that we could try to pinpoint the source of the slow network metrics. In this case, it looks like it was due to SSL negotiation.
In addition to the pre-generated dashboards shown earlier in this article, New Relic also has a product called Insights, which you can use to create custom dashboards that display the exact combination of metrics and visualizations you want. You can also specify permissions for each dashboard, by specifying whether or not it should be editable or visible to others in your account.
When viewing any graph in other New Relic tools, such as APM, Browser, or Synthetics, you have the option to add it to a custom dashboard in Insights (excluding histogram visualizations, which are not yet supported in Insights).
You can also add your own custom graphs by specifying metrics and visualization types. In the example above, we are graphing the count of 404 errors from our Python application. Another nice feature is that these graphs include the ability to add descriptive titles and subtitles; you can even customize the y-axis label if you want to make it even clearer.
Synthetics enables you to quickly create custom dashboards that mix graphs from disparate parts of New Relic, such as your application's browser response times, right next to your application's database performance.
Alerts are a critical aspect of any monitoring tool. New Relic enables you to set up alerts to detect when your Key Transactions are experiencing issues. The only downside is that alert thresholds are based on Apdex scores; if you are not already familiar with what an Apdex score means in terms of your application, this may require some initial research and tweaking to get right. You can tweak these thresholds to control your false positive rate, as well as your sensitivity to alerts.
Alerts are configured by using sliding bars to indicate critical and warning thresholds. Aside from basic email and mobile notifications, you can send alerts through channels like Slack, HipChat, PagerDuty, OpsGenie, VictorOps, Campfire, and xMatters. You can also set up custom channels using webhooks.
New Relic enables you to create Notification Groups to organize the way you contact relevant team members when alerts are triggered. This can greatly speed up the process of notifying a whole team via their preferred notification channel(s) when that team's service is experiencing issues.
Is New Relic the right software for you?
New Relic is a full-featured application performance and synthetic monitoring software that, like any complicated product, carries a learning curve.
The company has expanded beyond its flagship APM product to offer an impressive number of capabilitiess (for example, it recently added infrastructure monitoring). However, this can make it difficult to navigate across products and understand how they all work together.
New Relic's APM product is by far the strongest product in its toolset. The agent is easy to set up, and supports many popular languages and frameworks. Best of all, you will start seeing metrics populating a dashboard within minutes. If you need even more detailed visibility into your applications, you can start an X-Ray Session to start troubleshooting and optimizing your functions.
The company's Synthetics monitoring product does not offer as many testing locations as other synthetics-focused companies like Uptrends, Catchpoint, and Pingdom. Therefore, if you are primarily looking for a synthetic monitoring product, we recommend checking out one of those companies instead. However, if you need a robust monitoring solution that primarily shines in APM, but has some room to grow in other areas like synthetic and infrastructure monitoring, New Relic may be a great option for you.