Most Application Performance Management (APM) tools became really good at detecting failing or very slow transaction, and giving you system monitoring and code level metrics to identify root cause within minutes. While Dynatrace AppMon & UEM has been doing this for years, we took it to the next level by automatically detecting common architectural, performance and scalability patterns for every single transaction and user interaction with your application. For more details check out my blog on Automatic Problem Detection.

In my recent Performance Clinic on “What is Dynatrace AppMon & UEM and How to Get Started” I demonstrated these and other new capabilities which are now available for all of our Dynatrace AppMon & UEM Free-Trial Users. I suggest you watch my video and then get your license here!

For your web apps we automatically detect common performance patterns on client-side, network, server as well as 3rd party and CDNs for every single user on your site.
For your web apps we automatically detect common performance patterns on client-side, network, server as well as 3rd party and CDNs for every single user on your site.

 

Full-Stack developers get visibility from the browser all the way into the backend including waterfalls, method level as well as infrastructure monitoring data.
Full-Stack developers get visibility from the browser all the way into the backend including waterfalls, method level as well as infrastructure monitoring data.
In more complex multi-tier or micro-service environments validate your architecture and find bottlenecks through the new customizable Transaction Flow.
In more complex multi-tier or micro-service environments validate your architecture and find bottlenecks through the new customizable Transaction Flow.

 

The automatic pattern detection makes everyone an architect, performance and scalability expert. Optimize your transactions based on the automated findings
The automatic pattern detection makes everyone an architect, performance and scalability expert. Optimize your transactions based on the automated findings

From bug fixing to continuous innovation & optimization

What I love most about these new capabilities is they get applied to ALL transactions (slow, fast, heavily used, etc). Why is this exciting? Because it gives your DevOps and Feature Teams a prioritized list of “optimization options” to continuously improve your current implementation.

When this is automated into your delivery pipeline with a closed feedback loop you can reap the following benefits as highlighted in my performance clinic:

  • Level-up engineers by constantly showing them new patterns as soon as they are introduced so that these problems can be eliminated early or avoided from the beginning
  • Eliminate technical debt by addressing architectural issues introduced with refactoring, 3rd party frameworks, or migration projects
  • Lower application resource usage (CPU, Memory, Disk, Network) by improving heavily-used features that show optimization potential
  • Reduce business debt by removing those features that hardly anybody uses
  • Cut operational costs because your resource-optimized software runs more efficiently in your data center, private or public cloud
  • … and many more
Stop bad code and feature changes early and learn from your end users to optimize those features that give them value.
Stop bad code and feature changes early and learn from your end users to optimize those features that give them value.

At the end of my What is Dynatrace and How to Get Started Performance Clinic I showed how to instrument Alfresco – a content management system that runs on Tomcat. Within the first five minutes I received optimization recommendations on an N+1 Database Query problem. I suggest you watch the video or follow these steps:

Five minutes to your first optimization suggestion

It starts by requesting your personal license. You will receive an email with an activation link which then brings you to the Dynatrace Free Trial Community page where you can download the software.

If you have your own application follow the steps in my video tutorials on installing Dynatrace for Java, .NET, PHP or Node.js applications. If you have a Mobile Native app check out this video tutorial.

Once you have your app up and running with an injected Dynatrace agent make sure to execute some load by either manually drive some load or execute your test suite. With the new capabilities in Dynatrace 6.5 I start analyzing my app through the Dynatrace Web Interface. You can get there through https://YOURDTSERVER:9911. Login with admin/admin. If you analyze a web application, and you have real-user traffic on the system, you will see end-user experience data and you can start your analysis here:

For web applications you will end up on the Business Analysis view. Dig right in and learn more about your end users.
For web applications you will end up on the Business Analysis view. Dig right in and learn more about your end users.

I really like the new Transaction Flow which provides a great end-to-end transactions visualization, with options to drill to PurePaths or analyze host and process health metrics. Don’t forget to try the “Edit Layout” option where you can customize your transaction flow by moving app tiers around, grouping or renaming them:

Transaction Flow helps me understand call patterns, throughput and response time hotspots. Check out the filter options on the left, the customizable layout and the drill down options.
Transaction Flow helps me understand call patterns, throughput and response time hotspots. Check out the filter options on the left, the customizable layout and the drill down options.

In the PurePath View you can see all my recorded PurePaths with the option to filter them on Patterns. In my case I can see that Dynatrace detected PurePaths with the N+1 SQL Query Pattern. Clicking on it shows me the PurePaths and gives me high-level details about this transaction:

Select one or more patterns in the filter bar on the left: then start analyzing the details and more findings per PurePath.
Select one or more patterns in the filter bar on the left: then start analyzing the details and more findings per PurePath.

To actually fix the N+1 Query Problem we do a deep dive into that PurePath by clicking on the “Open in Client” link. This opens the Dynatrace Diagnostics Client where I get to explore SQL Statements, method executions, Exceptions, Log Statements, … – all the good stuff from PurePath!

Deep Dive into the PurePath with Drill Down Options to SQL, Exceptions, Logs … Makes it easy to detect which code causes the N+1 Query Problem.
Deep Dive into the PurePath with Drill Down Options to SQL, Exceptions, Logs … Makes it easy to detect which code causes the N+1 Query Problem.

In my case Alfresco is not an application I developed, so if I want to share my findings with the developers without them having to reproduce the problem I can simply export the PurePath into a Dynatrace Session file and send it over. That’s 1-click collaboration!

What’s in your app?

We would love to further improve our pattern detection algorithms. For that we need feedback from YOU – our users. This is my “shout out” to the application community: get your Dynatrace Personal License, test it out on your app, let me know what problems were detected, and which ones were missed.