Dynatrace AppMon 2017 May is available for everyone along the continuous delivery pipeline that wants to push better performing and scaling code into production. Whether you want to develop, test, architect or run your application in production – just sign up for the Dynatrace AppMon Personal License, learn how to best use it through my YouTube Tutorials or get started by following the steps in this blog post!

In case you are not familiar with Dynatrace AppMon I suggest you watch the “What is Dynatrace AppMon” video (or on YouTube).

What Dynatrace AppMon Delivers!

After installing Dynatrace AppMon and instrumenting your application tiers you obtain full end-to-end visibility of every transaction initiated by an end user (through the browser or mobile app), a REST/Web Service call, a batch job, or even a rich client application through the newly-innovated web interface. The underlying technology that captures all data is called PurePath. PurePath enables Dynatrace AppMon to capture end-to-end transaction traces – from Browser/Mobile all the way to your database. PurePath is extended with underlying infrastructure monitoring data (process, host, container, cloud) through our PureStack technology. Here are some examples on how this data is presented to you in the Dynatrace AppMon Web Interface:

Dynatrace AppMon’s PurePath Technology delivers end user, application and infrastructure monitoring with deep dive visibility into architecture, deployment, method-level and end user analytics
Dynatrace AppMon’s PurePath Technology delivers end user, application and infrastructure monitoring with deep dive visibility into architecture, deployment, method-level and end user analytics

What do you actually install?

This is a very common question. If you decide to go with Dynatrace AppMon you most likely installed all Dynatrace AppMon components (server, collector, agents) in your environment. For evaluation or when using AppMon during development you can install everything on a single box. Thanks to the AppMon architecture we can monitor large-scale distributed environments. Here is an overview of the most critical components which are installled:

Dynatrace AppMon architecture and explanation of components that you end up installing. A configuration wizard guides you through the installation of each component!
Dynatrace AppMon architecture and explanation of components that you end up installing. A configuration wizard guides you through the installation of each component!

If you have any further questions – please reach out to us via the Dynatrace Online Forum, register for one of our Live Q&A Sessions as part of our Performance Clinic Series, or send me an email. Now let’s get started with several easy steps.

Step #1: Register, Download, Install

After you register for your Dynatrace AppMon Personal License you will receive an email with a link you need to follow. This will create an account on our Dynatrace Community as well as sending you another email with a license file (this is needed in case the machine you want to test drive Dynatrace AppMon doesn’t have access to the internet). You will eventually end up in your My Dynatrace AppMon Trial space that guides you through all steps.

Step #2: Connect your Application

After successfully installing Dynatrace AppMon and activating your license you will see the following screen in your Dynatrace AppMon Client:

Welcome! You just activated your Dynatrace AppMon License. Now its time to add Dynatrace agents to your application!
Welcome! You just activated your Dynatrace AppMon License. Now its time to add Dynatrace agents to your application!

Option #1: Connecting through the Application Configuration Wizard

If you click on “Configure” you will be guided through a Wizard that allows you to specify which application component you want to instrument. You can first decide on the type of the app. For most evaluation use cases you should select “Web / Java / .NET”. This wizard also allows you to configure PHP and Node.js components.

Next, the wizard will guide you through the selection for the specific technology (Java, .NET, PHP), application server type (Tomcat, JBoss, WebSphere, IIS, Node.js, Glassfish) as well as where the component is deployed (locally or on a remote machine). The wizard also allows you to enable end-user monitoring and database instance monitoring:

Use the wizard to configure each and every component of your application that you want to have monitored. You will end up seeing all your connected agents in the list with options to add more or troubleshoot in case you miss agents that you expect.
Use the wizard to configure each and every component of your application that you want to have monitored. You will end up seeing all your connected agents in the list with options to add more or troubleshoot in case you miss agents that you expect.

Option #2: Inject the agent into your application

The wizard is basically telling you how to download and install the agent for your technology, how to name the agent, and then it validates that the agent is connected correctly. The wizard also makes changes to the System Profile to confirm Dynatrace AppMon is expecting these agents.

Another option I favor when quickly setting up monitoring for an application is to bypass the agent, and simply add the Dynatrace AppMon agent to my application with default settings and default names. This can  be done “manually” as described in the documentation/video tutorials:

You can also automate the rollout of our agents using scripts for Chef, Puppet, Ansible or Powershell. You can find these and more on the Dynatrace GitHub page.

Let’s take a look at an example of what i just described. After I install Dynatrace AppMon on my local machine all I need to do to connect my local Tomcat to Dynatrace is add this line to the catalina.bat or cataline.sh file:

set CATALINA_OPTS=%CATALINA_OPTS% -agentpath:”C:\Program Files\Dynatrace\Dynatrace 7.0\agent\lib64\dtagent.dll”=name=MyTomcat,server=LOCALHOST

This will instruct the launch scripts for my Tomcat to add the -agentpath command line argument, which loads our Dynatrace AppMon Java Agent for the 64bit JVM. If you use a 32bit JVM then simply load the library from /lib/dtagent.dll. I specified “MyTomcat” for the name parameter which will later appear in Dynatrace. This is an easy way to give logical names to every one of my logical tiers. The server parameter in the end tells the agent which Dynatrace AppMon Collector to connect with. If you have a remote installation, simply specify the host name or IP. That’s it. The agents will now automatically map to the default System Profile which is called “Monitoring”. At a later stage you can return to that System Profile and change configuration if necessary!

Step #3: Generate some load

Once your application components are all instrumented and connected to your Dynatrace AppMon Collectors and Server, it is time to execute transactions against your app. If you have a load testing script I suggest you run some load. If you are instrumenting a production system, wait until your end users are hitting the app. In any case, you can also just open your browser and navigate through the main use cases of your application. Everything you do on the app will be captured by Dynatrace AppMon. PurePaths and PureStack information will be traced, stored and automatically analyzed for you!

Tip: If you use any type of load-generating tool to generate traffic take a look at our Load Testing Integration Use Cases.

Step #4: Lets Analyze your Data

Prior to Dynatrace AppMon 2017 May I recommended remaining in the Dynatrace AppMon Client because of its very rich diagnostics and dashboarding capabilities. However, with Dynatrace AppMon 2017 May, I recommend to open your browser and navigate to https://yourdtserver:9911 – in my case that is https://localhost:9911.

If you run locally you will probably get an SSL certificate warning. Simply bypass it but remember that, at a later point, you might want to set up your certificates correctly. Always keep security top of mind!

After you login to your Dynatrace AppMon Web Interface explore the data that you are most interested in.
After you login to your Dynatrace AppMon Web Interface explore the data that you are most interested in.

Now there is plenty of data collected by Dynatrace AppMon that will be presented to different stake holders in the best most actionable way. Some of the long-term trending dashboards or business analytics data might only be valuable if you are analyzing a production environment (with real users on the application), or you run an extensive load test simulating end users.

Each time I install Dynatrace AppMon on an application that is either in development or where I do not significant load on the system, I typically first navigate through the application myself with my local browser. Then I check out the following areas:

#1: Optimize End User Performance from from Browser to PurePath

If I am dealing with a web application and Dynatrace AppMon captures end-user data, I click on “Visits” and then locate my visitor. My visitor typically shows up about 15-30 seconds after I hit the first page of the app. If there are several users on the system I can easily detect mine by searching for my user on IP address or my browser type. From there I can see all my user actions and how long each took. I will see the full waterfall and can drill into server-side PurePaths in case we have a performance issue:

Dynatrace AppMon gets me from Visit-based End User Analytics to Code-Level PurePath in 3 clicks with all information along the way I need to figure out if there are any issues
Dynatrace AppMon gets me from Visit-based End User Analytics to Code-Level PurePath in 3 clicks with all information along the way I need to figure out if there are any issues

Tip: If you do not see the full waterfall, or if you do not see every single user interaction captured, then please make your way to the User Experience Configuration in your System Profile. There you find the options to activate support for certain JavaScript frameworks (jQuery, Angular, ExtJS) as well as capturing W3C metrics for the Waterfall feature. Also, watch my Advanced UEM YouTube Tutorial for more background information.

#2: Analyze my Application Hotspots

When I need to analyze application performance issues or failures based on coding, architectural or scalability issues, I typically look at the Response Time Hotspot (which layer of my code shows the biggest issues), and the Transaction Flow (which tiers in my end-to-end transaction are having issues). From here I can drill deeper into specific PurePaths that show which methods are slow or which calls to the database or web services are impacting performance. I also love the Automatic Architectural Problem Detection feature we introduced with Dynatrace AppMon 6.5 that has been enhanced in Dynatrace AppMon 2017 May. This feature makes everyone a performance, scalability and architectural expert.

Dynatrace AppMon automatically detects performance hotspots as well as problem patterns that lead to performance and scalability issues. Once on a problematic PurePath I see all database calls, exceptions and method hotspots.
Dynatrace AppMon automatically detects performance hotspots as well as problem patterns that lead to performance and scalability issues. Once on a problematic PurePath I see all database calls, exceptions and method hotspots.

Tip: To learn more about Automatic Problem Detection check out this YouTube Tutorial or read this blog.

#3: Analyze Load or Deployment Impact

If I have a production environment or a load environment then I typically change my analysis approach toward understanding how different load or a new deployment changes the performance and scalability behavior of the application and how it eventually impacts and user experience.

With Dynatrace AppMon 2017 May we introduced a new Application Overview that shows how frontend and backend performance is correlating with load. It also shows me any alerts (infrastructure or baseline violations). This view is also the starting point to analyze architectural and infrastructure related problems that impact performance, scalability and our end users under special load conditions or after a new deployment:

Dynatrace AppMon gives me an application centric view to better detect and react on problems introduced with a new deployment or those that happen under special load conditions.
Dynatrace AppMon gives me an application centric view to better detect and react on problems introduced with a new deployment or those that happen under special load conditions.

Step #5: Collaborate – Share Your PurePath

When we launched our Free Trial and Personal License program we also launched “Share Your PurePath”, which is your chance to share and discuss data captured by Dynatrace AppMon. While we now detect most of the problem patterns automatically, and highlight them in the PurePath and PurePath Analysis view, there might still be cases where you want to have a second opinion. Dynatrace AppMon 2017 May makes it even easier to share PurePaths with us or your peers. In the PurePath view, click on the “…” link in the top right corner. Then select “Export Session”. The browser will download your session file. Now send it off as explained in “Share Your PurePath

Dyntrace AppMon makes collaboration very easy. Simply export the PurePath and send it to your peers or to us as part of Share Your PurePath
Dyntrace AppMon makes collaboration very easy. Simply export the PurePath and send it to your peers or to us as part of Share Your PurePath

Now its your turn!

I hope this blog gave you some useful insights into what Dynatrace AppMon does, how it works, how to install it, and how it can help improve application and end-user performance. To get started, sign up for the Dynatrace AppMon Personal License. And keep us posted if you have questions @ https://answers.dynatrace.com.