appdynamics_dynatrace

Enterprise Application Performance Monitoring: A practical comparison between AppDynamics and Dynatrace

If you were to pick two tools that would appear on most enterprise APM (Application Performance Monitoring) evaluation shortlists it would be AppDynamics and Dynatrace.

Both didn’t become leaders in APM overnight but did so through different journeys, despite having similar foundations in Java diagnostics. Dynatrace started more as a pre-production performance tool in 2005 for developers and QA testers, while AppDynamics was founded in 2008 with production use cases focusing more towards operations and application support teams. Today, pretty much both of them have expanded into each other’s territories covering nearly all performance monitoring use cases an enterprise could want.

In the following post we will uncover the truth behind “Newspeak” (Or marketing speak) and help you understand what each tool offers, and which one best suits you.

Table of contents

  1. Application Performance Monitoring
  2. Features
  3. How to Solve the Errors You Find
  4. Installation and Ease of Deployment
  5. Dashboards and Ease of Use
  6. Ecosystem Integration and Plug-ins
  7. Pricing

1. Application Performance Monitoring

If you want to monitor how your application performs and behaves in production, you have 3 common ways to get an inside view:

  1. Sift through terabytes of log files. Logs can save every event that occurs inside an application, whether it’s a specific transaction, server request or an error message from the code itself. Finding your way around these long text files is usually a long and tiring task, and this the main use case for log management tools and solutions like Splunk and ELK (Elasticsearch-Logstash-Kibana).
  2. Send out custom metrics to dashboards with Graphite and Grafana.
  3. Use an agent based tool or an APM to monitor the app performance. Tools are either agent-based or agentless and can provide different perspectives of performance. Gartner defines APM as five core components on which we’ll base our comparison in this post.

Before drilling-down into both AppDynamics and Dynatrace it’s important to understand the history behind each of the product sets as both vendors have evolved through several acquisitions and years of organic growth.

Dynatrace:

AppDynamics:

appdynamics-chart

AppDynamics and Dynatrace are head-to-head competing over the users:

dynatrace-appdynamics-google-trends

View full report in Google Trends

For the benefit of this comparison we’ve decided to take on the core on-premise APM offerings from AppDynamics and Dynatrace using Gartner’s five dimensions. Dynatrace’s APM is also featured in a separate SaaS product called Ruxit which was not covered in this post.

If you’re interested in more APM tools, this post is part of our tooling comparison series, in which we covered AppDynamics vs New Relic, and also 15 useful tools for production environments.

2. Features

2.1. End User Experience Monitoring

The first dimension of APM is End User Experience Monitoring (EUEM). It’s a term used to describe the multiple approaches to monitor what an end user might be experiencing.

Dynatrace: The company divides its EUEM capabilities into 3 products: “User Experience Management”, “Synthetic Monitoring” and “Data Center RUM (Real User Monitoring)”. Don’t be scared of the names, they are meant to sound explosive and expansive while they simply monitor the user experience from different perspectives.

The first tool, “User Experience Management” offers a browser-based JavaScript injection and SDK approach for mobile apps that captures metrics related to user requests and sessions, across different browsers and devices. For example, you can search for specific user actions in order to get a history of their performance / how long did they take to execute.

The “Synthetic Monitoring” service displays stats from different locations around the world. It’s also helpful for simulating test executions, comparing performance across problematic behavior patterns, monitoring host availability and third party services or even simulating high volume traffic.

“Data Center RUM” is the last solution which offers an agentless approach to end user monitoring by sniffing incoming HTTP requests (and other protocols) so it can piece together the latency of end user requests without needing to explicitly instrument web pages or native mobile apps.

To sum up: JS injection / SDKs, simulating visitors from different locations and network activity.

The Dynatrace User Experience Management Dashboard
The Dynatrace User Experience Management Dashboard

AppDynamics: The “End-User Monitoring” category also expands into 3 different products: “Browser Real-User”, “Browser Synthetic” and “Mobile Real-Time” monitoring. In simple terms, you’ll be able to monitor user experience and interactions and benchmark your performance from specific regions.

“Browser Real-User” is a JavaScript injection approach like Dynatrace that allows you to capture the experience of end users from the browser. You’ll be able to reproduce your users’ journey inside the app, see individual transactions, and identify performance issues.

“Browser Synthetic” will monitor the availability of your app 24/7 and will report its latency around the world. Similarly to Dynatrace, it simulates traffic from browsers to assess the actual end-user experience. You can also retest conditions in order to eliminate erroneous results, or confirm them.

“Mobile Real-Time” is all about native mobile apps, offering the same measurements and options, only across mobile apps and devices. It allows to triage the steps the user took before the app crashed, view latency across services as well as errors so you’ll be able to identify and troubleshoot issues. Instrumentation is done via standard SDKs for iOS and Android.

The AppDynamics Real User Monitoring Dashboard
The AppDynamics Real User Monitoring Dashboard

Bottom line: Dynatrace has breadth and depth in this area through their various acquisitions of Gomez, Keynote, Adlex and organic growth but their products are less modern and unified than AppDynamics. For example, there is no single-pane-of-glass across User Experience Management, Synthetic Monitoring and DC RUM whereas with AppDynamics their products are less mature but easier to use and navigate.

2.2. Runtime Application Architecture Discovery Modelling

This is perhaps the coolest dimension of APM where you get a live topology map of how end user requests traverse the many application run-time environments. For example, in a microservices architecture, a single user transaction could touch up to several hundred different components and servers, with each hop potentially contributing latency. With topology maps, you should be able to understand where the latency is spent for the application.

Dynatrace:

The Dynatrace topology map
The Dynatrace topology map

AppDynamics:

The AppDynamics topology map
The AppDynamics topology map

Bottom line: As you can see, both Dynatrace and AppDynamics have similar application architecture modeling capabilities.

2.3. User-Defined Transaction Profiling

Dynatrace: Captures all user requests with limited stack traces (that include only the topmost elements). These profiles are known as “PurePaths” which visualize the journey of every request. Transaction profiling has always been a strength of Dynatrace, and they were one of the first vendors to trace transactions across heterogeneous run-time environments (e.g. hybrid JVM and CLR architectures). Dynatrace provides multiple drill-down options from a given PurePath so it’s possible to slice and dice data from different angles.

The Dynatrace transaction dashboard
The Dynatrace transaction dashboard

AppDynamics: Captures business transaction anomalies with complete stack traces. Similar in a lot of respect to Dynatrace but perhaps more intuitive without the need to frequently drill-down/rotate views. The rest of the available information is automatically bubbled up to you, so it’s visually easier to understand and act on.

The AppDynamics transaction dashboard

The AppDynamics transaction dashboard

Bottom line: While on the outside both vendors successfully profile business transactions, they do so in very different ways. Both solutions capture the response time of every transaction execution across distributed environments.

Dynatrace has designed its agents to capture limited stack traces for every transaction execution, whereas AppDynamics has opted for the anomaly diagnostic approach, meaning that more complete stack traces is only captured when a performance baseline or threshold has been breached. Each approach has its pros and cons depending on your monitoring use cases and requirements.

2.4. Component Deep-Dive Monitoring

Dynatrace: Captures stack traces and performance metrics for Java, Scala (if you’re using Play framework with Scala, you’re out of luck), .NET, PHP, Node.js, C/C++, JavaScript, iOS and Android applications. Using a combination of byte code instrumentation and thread sampling it’s possible to get stack trace data with method names individual user requests (as shown below). As previously mentioned, the stack trace data that Dynatrace provides is less complete than what AppDynamics provides. This is due to the fact that Dynatrace collects stack trace data for every single transaction execution, therefore the use of instrumentation needs to be lighter so that overhead is controlled in production.

The look and feel of Dynatrace is very similar to that of an IDE so navigating stack traces and metrics is more user-driven, meaning you can pretty much customize whatever view you want using the dashlets inside Dynatrace.

The Dynatrace analysis dashboard

The Dynatrace analysis dashboard

AppDynamics: Captures stack traces and performance metrics for Java, Scala, .NET, PHP, Node.js, Python, C/C++, iOS and Android. The first difference you’ll notice is that the AppDynamics data is laid out in a more progressive/intuitive way, it also displays less data on screen at any given time. Instead of right clicking on data you can use the left-hand side navigation to switch contexts. Stack traces are richer than what Dynatrace provides but the tradeoff is that you only get this data for anomalies.

The AppDynamics analysis dashboard

The AppDynamics analysis dashboard

Bottom line: Honors are fairly even for both vendors in this category. Both tools were built to provide stack traces/metrics and this has become a core competency and differentiator against some of the other older vendors in APM like IBM, HP, CA and Microsoft.

You’ll find similar levels of code diagnostics for the most common platforms (Java/.NET) with both tools but it’s worth checking in advance if you’re running on other programming languages like PHP, Node.JS and Python as stack trace data and metrics will vary.

2.5. Analytics

Dynatrace: New in Dynatrace 6.3 is the PureLytics feature. The PureLytics stream is optimized to send data in realtime into Elasticsearch for analysis, including user visits and actions, with Kibana’s dashboard on top.

AppDynamics: AppDynamics has another product called “Log Analytics”, a new capability that indexes and analyzes log files, similarly to Splunk and ELK. It collects structured and unstructured data, displays application issues and present errors that occur in real-time. You can search through these errors and create custom alerts or dashboards, to understand how errors impact application performance.

The AppDynamics Log Management Dashboard

The AppDynamics Log Management Dashboard

Bottom line: AppDynamics provides log management features.

3. How to Solve the Errors You Find

While both Dynatrace and AppDynamics offer you performance monitoring features, they don’t offer granular support when it comes down to runtime errors or exceptions when your application breaks. You’ll be able to identify performance issues, understand how long it takes for a business transaction, page or request to load or even experience what your users are experiencing, but the lowest level of granularity you’ll get to in production is the class and method names of where latency is spent.

Many teams who use an APM tool also choose to add OverOps to their monitoring stack. With both tools combined, you’ll be able to identify errors, and view the source code related to the issue with the exact variable state at the moment it happened.

OverOps analyzes exceptions and log errors in production, and overlays the variable information from the moment of error over the actual source code of each method in the event’s stack trace. This will give you the ability to analyze the exception or log error as if you were there when it happened.

Bottom line: Whether you’re using an APM tool or not, the only way to get down to the real root cause of each error is to get its full source, stack and state. If you’re a Java or Scala developer, you should give OverOps a try.

Takipi’s Error Analysis DashboardOverOps’s Error Analysis Dashboard – See a live demo

4. Installation and Ease of Deployment

Dynatrace: We were actually quite impressed with the installation process, which is completely self explanatory. The company offers several installers for Windows, Linux and Mac OS, that contain everything – agent included. You can also run it all in a preconfigured Docker container.

After the installation you’ll be asked to connect the agent with the server, and you’ll be presented with video guides for each environment, if you’ll need assistance.

In large scale environments you will have to install multiple components so that Dynatrace can scale. For example, Dynatrace agents communicate with collectors which then communicate with the central Dynatrace server. You’ll need to add more collector servers as the number of agents increases over-time.

Dynatrace architecture

Dynatrace architecture

AppDynamics: After signing up to the service, you are presented with an installation screen that has 4 steps and no further information. We looked for a download kit or instructions, but couldn’t find them. It turns out that AppDynamics needs some time to set up your environment, and you can’t start using it straight away. Although it makes sense, this was not explained on the main screen, and it took over an hour until we got our welcome email and full dashboard.

The AppDynamics architecture is simpler than Dynatrace to deploy as it only requires agents and a central management server known as the controller. AppDynamics collects and transmits much less data than Dynatrace so it doesn’t require additional collector servers to scale. Although it requires an additional agent per machine for infrastructure metrics.

AppDynamics architecture

AppDynamics architecture

Bottom line: Both tools are relatively simple to get up and running. Due to the differences in data collection and transmission, AppDynamics is slightly easier and cheaper to scale for larger environments.

5. Dashboards and Ease of Use

Dynatrace: The company offers 2 dashboards: a local desktop client (that feels like a weird version of Windows 2000), and a web dashboard.

The web dashboard displays high level information, that includes user experience and satisfaction, your app channels (web or mobile) and the list of processes currently running.

If you’ll find an issue or error and would like to analyze it or get more information about it, you’ll have to switch to the desktop dashboard.

AppDynamics: The good news are that AppDynamic are no longer using a Flash based dashboard! The somewhat bad news are that the company still requires Flash support, since some parts of the dashboard still need it to tun. You have a full, detailed web based dashboard that offers an overview, and an option to drill down into the information you want.



Bottom line: Dynatrace 2-dashboards-setup could be a hassle for some, and it feels a bit outdated, especially if we need to switch between the two if we want to get more in-depth information about different scenarios. AppDynamics has a unified UI across all products/features but still has elements of Flash present.

6. Ecosystem Integration and Plug-ins

Dynatrace: The Dynatrace plug-ins page is displayed by categories, including ecosystem (Docker and SharePoint), Big Data (Splunk and Apache Cassandra), Notification (JIRA, PagerDuty) and many more. However, we’re not sure if it’s the lack of design or the relatively short list, but the library feels pretty basic to us.

AppDynamics: The company has an open platform for developers, allowing them to add their own plug-ins to the Exchange marketplace. The marketplace currently contains 140 plug-ins, and you can even send requests for the plug-ins you need and can’t find.

Bottom line: We are always in favor of community based plug-ins that keep on growing thanks to the community.

7. Pricing

Both companies offer a valuation period to try out the pro version, followed by a downgrade to the free-and-lite version. If you want to know how much the pro version will actually cost, you’ll have to work hard in order to find it out.

Dynatrace: Price is influenced by a number of factors, such as number of application servers, web servers, user sessions and other factors. You will have to talk with the sales team in order to get a proper quote, as pricing is not available on the Dynatrace website. The average deal size from other sources states is $10,000 for a yearly subscription.

AppDynamics: The company’s free plan offers limited agent units per product module and limited data retention. Pro pricing is published on the AppDynamics website and starts at $3,600 per unit per year (e.g. JVM/OS Instance/Processes). If you’re not from the US, a different pricing page loads up without the exact pricing details.

Bottom line: Both companies offer a free plan, but both differ when it comes to pricing transparency. AppDynamics publishes pricing, Dynatrace does not. However, both vendors have multiple products which are priced using different metrics so it’s inherently complex to price for both unless you speak to someone in sales.

Who Should You Choose?

Both tools have been around for quite some time, although it feels like AppDynamics are the more relevant, up-to-date choice while Dynatrace is the old and “legacy” option. But we know that we can’t judge an APM tool by its cover (or website, in this case).

Each company offers a wide range of analytics and analysis tools, so that you’ll be able to understand what your users are experiencing and of course, monitor your systems. So if you’re looking for a cut-through definitive decision, you’re out of luck.

AppDynamics and Dynatrace offer a variety of features, some that might be ideal for you and some that might seem redundant. We encourage you to use the free trial with both companies in order to get a better sense of what you’ll be dealing with and see which tool works better with your stack.

I write about Java, Scala and everything in between. Lover of gadgets, apps, technology and tea.
  • Andreas Grabner

    Great comparison! I am from Dynatrace and I have to say thank you for that post. I think the key thing you highlighted is that everyone can make up their own mind by simply testing both solutions. In fact – there is more than Dynatrace and AppD in the market.

    There is not a whole lot that I want to add to your post. We obviously have our perspective on some of the points you raised, e.g: we do capture all exceptions for you including the full stack trace. We also capture full stack trace information for slow requests as we combine our instrumentation (we call it Sensors) with what we call “Auto Sensors” (which is basically thread sampling).
    The PureLytics stream out to ElasticSearch has been introduced in 6.3 (you listed 6.2). What we had for a longer time is what we called Real Time Data Feed where we stream out data using Protobuf to an HTTP Endpoint. This was often used to stream our data to Splunk or other BI Tools
    Also thanks for giving our first install and setup experience such good ratings. We invested a lot in making that easier -> seems it is paying off 🙂

    I hope you didnt offend many Java Developers with your statement that our Rich Client App looks like Win200 🙂 -> it is what most Java Devs deal with every day as it is based on the very popular Ecilpse platform.

    Overall I have to say you did a good job. Also with attracting a lot of readers that look at these tools and now knowing they should also looking into your tool as an add-on -> good marketing (Newspeak) 🙂

    Cheers

    • Henn Idan

      Hey Andreas, thanks for the comment and the insights 🙂 It’s great to receive a comment from the creators of the tools we’re covering on the blog. I’ve updated the version number for PureLytics in the post, good catch!

  • Otis Gospodnetić

    Another +1 for a very informative post. Well done – shared with our team!

    I do want to point out one thing, though:
    “Bottom line: Currently AppDynamics is the only APM solution that also provides log management features.”

    That’s actually not true. Sematext has a solution, and I think it was actually the first one, that has both APM and Log Management. One can use them together or separately. Both are available in the Cloud and for On Premises deployment. The Log Management piece is called Logsene and exposes the Elasticsearch API, so one can use all kinds of log shippers to get the data in and use any ES client library or app to get the data out. This also means people can point their own Grafana or Kibana to Logsene if they don’t want to use Logsene’s own UI or the Kibana that is integrated into Logsene itself.
    SPM: http://sematext.com/spm
    Logsene: http://sematext.com/logsene
    Have a look. Again, really good writeup – thanks!

    • Henn Idan

      Hey Otis, thanks for the comment and input. Glad to hear that you’ve shared it with your team! Nice catch about the APM + logging combo, I’ve updated the post following your feedback.

    • Stephen Burton

      Oits – Sematext has no End User Experience Management capabilities so its technically not APM, especially given that latency can be significant between the device/client and the data center servers. Hate to nit pick but lots of vendors claim APM capabilities (like Splunk) and end up confusing buyers.

  • Rafi Katanasho

    Always important to ask 2 questions on any analysis:
    1. Intent
    2. Content

    Intent
    On the face of it this is positioned as an independent analysis, part of a broader tooling comparison series. There is also a clear vested interest here in positioning Takipi capabilities with the broader APM space as evident in the blog section ‘How to Solve the Error you Find?’. This is both fair and expected as long as it can be done objectively.

    Content
    – Nice work on providing the history and background on both companies.

    – EUEM – One correction: Dynatrace DOES have a ‘modern’ web single view that unifies all the EUEM data. Also in addition to the depth and breadth Dynatrace have a much more mature out-of-box purpose built EUEM analytics.

    – Run-time Application Discover – You have used a screenshot from a customer website with referencing the source ( https://kweo.com/application-performance-management-distributed-real-time-data-processing/ ). This customer also did their own evaluation of Dynatrace, AppDynamics, New Relic and CA. I encourage all your reader to read this detailed analysis. Also while there transaction flow diagrams may look the same, there are a lot of differences (too many to mention here).

    – User-defined transaction profiling – Andreas already corrected you on the misinformation. Oddly enough this sounds like language directly from the other vendor mis-information. The truth is that Dynatrace is still the only vendor that can do cross-tier or distributed transaction profiling in high load production environments with low overhead (see the Kweo blog above).

    – Analytics – Dynatrace have purpose built analytics. If customers choose to leverage this high fidelity data along side other data sources then they can leverage the tool of their choice (Splunk, Sumo, ELK, etc..).

    – How to Solve Errors – Correction – Dynatrace provider reporting and analysis on ALL Exceptions and Errors (be it front end or back end Java etc..) with the ability to decompile the Java code. Tapiki, from the marketing material, provides additional context on state and variable. I encourage customer to try this for themselves and test the added value in Java/Scala environments.

    The reality is that Tapiki can ADD a lot more value for AppDynamics customers than Dynatrace AppMon customers.

    There are more to cover here but ultimately I agree with your conclusion as you sum it up well.

    “We encourage you to use the free trial with both companies in order to get a better sense of what you’ll be dealing with and see which tool works better with your stack.”

  • Graham Parsons

    Good post and I’ll disclose now that I am a Sales Engineer with Dynatrace.

    As Andreas has pointed out, there is a factual inaccuracy in that Dynatrace captures a full stack trace for every request into the monitored system; this stack trace is combined with monitoring of the processes the request runs through and the operating systems that host these processes.

    This “gap free” approach is a main ethos of our company.

    So, what’s the value?

    As the article states, other tools like AppDynamics look for anomalies; the trouble is what variance equals an anomaly? I have seen on the AppDynamics web site that you set a percentage of users that must be affected by slow response times or errors before its server side ‘snapshot’ kicks in and the default seems to be 10%; so 9% of users not being able to ‘buy’ is not considered an anomaly if this setting is used.

    So, a main difference between the approaches is that Dyantrace supplies the root cause (whether it is code, database, network, process or operating system, or a combination of these) for EVERY problem – whether it occurs once, affects a small percentage of users or a larger percentage. Other snapshot and sample approaches only provide the root cause when a larger percentage of users are affected.

    I guess it depends how important each user is to a company and what percentage of users being negatively impacted is ‘acceptable’ before the problem should be fixed (which of course requires the root cause to be identified).

    • Stephen Burton

      Graham – full stack trace with timing for each class and method? I’m not so sure. Read your auto-sensors documentation https://community.dynatrace.com/community/display/DOCDT63/Auto+Sensor as that seems to contradict your claims around this. Auto-sensors are their to supplement partial call stacks to make it look like they are complete…

      I would also read up on the AppD documentation with regards to your view on anomaly detection.

      • Graham Parsons

        Hi Stephen,

        It is basically a difference in ethos, approach and technological implementation; Dynatrace believes that gaps in the data will lead to problems that cannot be troubleshooted and therefore impact the business and cost time and money to analyse. What’s the point of an APM tool that leaves you with questions?

        I am lucky enough to have worked on a few client engagements where they are upgrading from other APM tools to Dynatrace and the key reason that is cited again and again is that the other tools told them a problem was occurring but didn’t provide the root cause detail they required to fix the problem.

        Therefore all of our tools take a gap-free approach and most analysts credit this with being the key reason why we are the leader in terms of Gartner Magic Quadrant , market share and, of course, we are profitable and private therefore have no distractions with lenders breathing down our necks, trying to look good for a promised IPO, doing deals that don’t make sense to report better figures to the markets, etc.

        The auto sensors allow us to capture everything that executes for more than a sub-millisecond into our PurePaths (end-to-end trace), capture every PurePath at forensic level of detail and yet have a negligible effect on latency or the servers hosting our agents. Other approaches admit they add latency and use resources when they are capturing more detail and that is why they do not run in this mode all the time or for more than a brief period of time.

        The fact that we capture a PurePath for every transaction means that our users can troubleshoot any problem – whether it occurs intermittently, affects a low percentage of users or is a major problem.

        A question I put to many of our clients is: what percentage of users not being able to transact is acceptable to your business? All snapshot or sample based tools by their nature ‘kick in’ and try and capture root cause information when a threshold is breached. The rules of IT means there will be problem patterns, or problems affecting a low percentage of users, that will not trigger the snapshot/sample approach.

        To summarise, the value to a client of the unique Dynatrace approach is that no matter whether it is a tester pressing a button in pre-production, testing tools spotting problems, a user or group of users in production experiencing an issue, the Dynatrace approach will capture the full-end-to-end trace for every transaction and therefore the root cause for any and every problem is always available.

    • http://eyeonquality.com Dave Guimbellot

      actually appd uses Standard of Deviation from the mean to define the anomalies in latency.

  • Khoi Thinh

    Sorry to ask this question: What’s the advantages of Dynatrace/AppDynamics over “Application Insights” of Azure?

  • Henry F.

    I noticed it is rarely mentioned that Dynatrace uses a so-called “native” Java agent technology, which IMO has quite a few notable benefits compared to “normal” Java agents (e.g. agents that are written in Java).

    An important one being that the agent will not directly compete with the monitored application when it comes to memory allocation as it is not allocating heap space for its own purpose. It should be paramount for a dynamically loaded agent to behave as passive as possible from an application perspective so in the case of my company this has influenced our choice at the time we compared the products.

    In fact, we had a real application where we could show that activating a Java agent completely threw off the GC on a highly tuned application whereas the “native” Agent did not have any measurable impact – this is with comparable levels of instrumentation.

    I should add that I am by no way affiliated to any of the products and have been using both in the past.

  • https://www.itcentralstation.com/ Danielle Felder

    Great article. Another way to determine which APM tool is best for you is by reading user feedback. Your readers might find real user reviews for AppDynamics, Dynatrace and all the other major APM solutions on IT Central Station to be helpful. As an example, this user writes, “We evaluated almost all other similar products, but AppDynamics is the best fit as an APM solution.” You can see the rest of his review here: https://www.itcentralstation.com/product_reviews/appdynamics-apm-review-38924-by-anuparn-padalia?tid=c218-sbc-18