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!
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
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
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:
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:
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:
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!
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.