APM: My experiences of Application Performance Monitoring using New Relic vs dynaTrace

As an architect, one of my most critical activity is to regularly monitor my Java based web application’s health during business hours; identify performance bottlenecks and suggest remedial measures. Basically keep the engine humming sweetly without any hiccups. My application is monitored using dynaTrace. dynaTrace has been my trusted partner along with whom I have fought numerous performance related skirmishes and I have come to like it a lot. Recently my organization decided to do an enterprise wide APM roll out of the new kid on the block ‘New Relic‘. The aim of this blog post is to share with all my experiences and observations around the two APM tools, their design philosophies and their differences. My observations are solely in the context of web application performance monitoring, pure Java application monitoring is a completely different ball game.

Detailed Transaction View

So here’s the first point of differentiation. dynaTrace monitors and provides detailed trace for each and every transaction. New Relic samples and reports detailed traces for a few representative transactions.

This is a key design philosophy difference between the two APM tools. dynaTrace provides the performance engineer with individual transaction visibility. This is a great feature for application developers who want to understand what went wrong for a specific transaction. My support teams use the trace information to determine application code issues. The feature is something my team heavily depends on. Today in production we do not need any independent application logging to be enabled. dynaTrace provides all the information we need. I am not saying that APMs should necessarily provide this feature, but it’s a nice to have. If the scope of APM is limited to IT operations team, then what New Relic provides is adequate; however if the potential end user is an application developer, then dynaTrace’s detailed view is worth it’s weight in gold.

Plugins

The next point I would love to dive into is the concept of ‘plugins’. An application or a platform is a sum of many parts. It includes multiple software products. Both allow end users to create custom product related plugin. Here’s what dynaTrace supports and here’s what New Relic supports. Both depend on open sourced implementation, however i find dynaTrace plugins to be better integrated with the product vis-a-vis the New Relic ones which are grouped together under the New Relic plugins tab.

Transaction Visualization

The end user is interested in getting a pictorial depiction of how an HTTP web request flows through the various components, how time does the request spend in each component. This assists in determining normal or abnormal behavior within the application and helps identify the bottleneck area swiftly. Both the tools provide such a view. dynaTrace calls it ‘Transaction Flow’; New Relic calls it ‘Service Maps’.

Here’s how dynaTrace’s Transaction Flow looks visually.

dynaTrace Transaction Flow
dynaTrace Transaction Flow

This is how New Relic’s Service Maps looks visually.

New Relic Service Maps
New Relic Service Maps

There are two things which I like in dynaTrace’s depiction. It shows the time spent and % contribution against each component. Secondly it lists all dynaTrace monitored components. New Relic lists applications, external services and databases. In a typical web application, web server is an important part of the transaction. New Relic does not depict it in its map.

Data Storage location

dynaTrace offers you an on premise data storage option. This provides you to ability to decide how much data you want to store and for how long. New Relic provides a purely cloud storage option and it’s data storage policy to my knowledge is a standard. No variation allowed. Because the storage location is on cloud, the application team has to be careful around allowing request parameter, query parameter(http or database) binding. Potentially PII/PHI data might be exposed. So some turn off the monitoring or others scrub and push data in cloud. Either way it introduces inefficiencies in monitoring performance especially if the issue is data specific.

Query Language

New Relic provides a feature called New Relic Query Language(NRQL). This allows the end user the ability to put custom information/attributes and query that stored information. This is something new and dynaTrace does not appear to have an equivalent. This is basically moving from performance monitoring into the reporting/analytics domain, so it brings the question. Do I need my APM  tool to provide this or I am better off pushing the data into an analytics/reporting engine which is more suited to handle such activities.

Browser Behavior Monitoring

Update(27-Dec-15) both the APM tools provide insights into client side browser response time behavior. New Relic provides a largely aggregated view and highlights some specific slow performing transactions. dynaTrace provides a more transaction level view, however I would have loved if it would have provided more specifics like this JavaScript method is taking a long time or this portion of page rendition is slow.

To summarize, if you want to know how your application is performing, New Relic is adequate. On the other hand you need to determine why the application is slow you need dynaTrace.

So what makes New Relic a compelling offer? It is it’s pricing. dynaTrace is way too expensive as compared to New Relic. Well all good things in life come at a price.

That’s all from my desk at the moment.

Advertisements

One thought on “APM: My experiences of Application Performance Monitoring using New Relic vs dynaTrace

  1. Vinay, I’m in the same boat as you in multiple ways. Let’s get in touch sometime to compare notes and learn from each other. Just to wet your appetite I’m using Splunk for data analytics for dynaTrace. I can send dT Business Transactions data which includes splittings and PurePath/Visit details to Splunk. My company has also made a decision to start using NewRelic. my email is tfaqir@gmail.com. Please reach out to me sometime.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s