Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

APM210 - Core APM I:

Essentials

Student Lab Guide


Credits and Co py right

Notice
Copyright

This document and all information and content contained herein are protected by U.S.
copyright and other intellectual property laws, and are the confidential information of
AppDynamics, LLC. No part of this document may be reproduced, distributed or
displayed in any form or by any means, or used to make any derivative work (such as a
translation or adaptation), without prior written permission from AppDynamics, LLC.

Copyright © 2021 AppDynamics LLC. All rights reserved.

The term APPDYNAMICS and any logos of AppDynamics are trademarked or


registered trademarks of AppDynamics, LLC.
Contents

APM211 Lab Exercises ......................................................................................................... 2


211-1 Navigate the User Interface (UI) .............................................................................. 3
211-2 Explore the Application Dashboard and View Business Transactions ...................... 6
APM212 Lab Exercises ........................................................................................................13
212-1 Work with Diagnostic Sessions .............................................................................. 14
212-2 Troubleshoot Slow Business Transactions ............................................................ 16
212-3 Troubleshoot Business Transaction Errors ............................................................ 21
APM213 Lab Exercises ........................................................................................................27
213-1 Troubleshoot Slow Database Calls ........................................................................ 28
213-2 Troubleshoot With Data Collectors ........................................................................ 31
213-3 Troubleshoot Node-level Issues ............................................................................ 36
APM214 Lab Exercises ........................................................................................................41
214-1 Use Baselines to Understand Application Performance ......................................... 42
214-2 Identify Issues using Health Rules ......................................................................... 47
214-3 Explore Custom Dashboards ................................................................................. 50
Accessing your AppDynamics University Lab Environment ..................................................53
Accessing your Lab Environment (Primary Method) ........................................................ 54
Accessing your Lab Environment with AWS (Alternate Method) ...................................... 55

© 2020 AppDynamics, LLC. i


APM211 Lab Exercises Student Lab Guide

APM211 Lab Exercises

© 2020 AppDynamics, LLC. 2


APM211 Lab Exercises Student Lab Guide

211-1 Navigate the User Interface (UI)


This lab provides an overview of the AppDynamics Controller UI and MovieZtream
web application UI, including how to run command scripts to simulate load on
MovieZtream.

Scenario A: Open Your Application in the Controller


The Controller is your command center for viewing, understanding, and analyzing the
data that is sent from AppDynamics agents. To navigate to the Application
Dashboard, follow the steps below.

Instructions

1. Log in to the AppDynamics Controller. (See Accessing your AppDynamics


University Lab Environment at the end of this document for details.)
2. On the Home page, within the card Applications, click the MovieZtream
application if it is listed (look under My Frequently Visited Applications). If
MovieZtream is not listed, click on Applications in the card title row to go to the
Applications tab. Here you can click on MovieZtream to go the Application
Dashboard.

© 2020 AppDynamics, LLC. 3


APM211 Lab Exercises Student Lab Guide

Note: The Application Dashboard includes an Application Flow Map that


provides a high-level view of the MovieZtream application. You can use the slider to
the left of the Flow Map to adjust its zoom level.
3. Make note of the key application metrics at the bottom of the application dashboard:
load, response time, and errors.

Scenario B: Access the MovieZtream Application and Run


Exercise 1 Load
To make monitoring the MovieZtream application with the AppDynamics Controller a
more “real world” experience, let’s create some traffic. To run a script in MovieZtream
to simulate load, follow the steps below.

Instructions

1. Log in to the MovieZtream application. (See Accessing your AppDynamics


University Lab Environment at the end of this document for details.)
2. Navigate to the Admin > Server Management page.
3. From the Command drop-down list, select Exercise 1 Load and then click Start
Load Command or Process.
Note: The Exercise 1 Load triggers higher response times for the
/movieztream_ui/login.htm Business Transaction.
4. Verify that you see the confirmation message in the Log window.

© 2020 AppDynamics, LLC. 4


APM211 Lab Exercises Student Lab Guide

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 5


APM211 Lab Exercises Student Lab Guide

211-2 Explore the Application Dashboard and View


Business Transactions
The AppDynamics Controller is a versatile tool that you can use to detect, isolate, and
identify problems quickly. This lab explores how to view application performance for a
specific time period, customize the flow map, determine which Business Transactions
(BTs) are contributing the most traffic, and identify issues using BTs.

Scenario A: Set the Time Range on Your Application


Dashboard
There are many reasons you may wish to limit your view of application metrics to a
specific time period. Perhaps your retail application experiences a significant traffic
spike around the holidays, or your customers complain about slow response times when
logging into your banking app on a Monday morning. The AppDynamics Controller
provides several methods by which you can set the time range on your Application
Dashboard, including:
 Select a predefined standard time range.
 Create and save a custom time range.
 Drag the pointer over a specific time period on a key metric graph.

Lab Preparation

This lab begins on the AppDynamics Application Dashboard. If your Controller UI is


not pointing to this dashboard, please follow the instructions for Lab 211-1, Scenario A.

Instructions - Select a predefined standard time range

1. On the Application Dashboard, the Time Range drop-down displays the last 1
hour by default. Click the Time Range drop-down to view other time range options
on the Standard tab.
2. Select 2 hours from the list on the Standard tab. The page updates to display the
specific metrics, including the flow map and graphs, for the last two hours.

© 2020 AppDynamics, LLC. 6


APM211 Lab Exercises Student Lab Guide

Note: Click the Refresh button to update the application metrics that the page
displays for the time range that you selected. Standard time range intervals include the
last 5 minutes with a resolution of 1 minute, to the last 1 year with a resolution of 1 hour.

Instructions - Create, save, and apply a custom time range

1. On the Application Dashboard, click the Time Range drop-down and then select
the Custom tab.

2. Click the Manage Custom Time Ranges button.


3. In the Manage Custom Time Ranges window, click the Add button to create a
custom time range.
4. In the Create Custom Time Range window, type a name and description for your
custom time range.
5. Select a start date and time in the From selection boxes and an end date and time
in the To selection boxes.
6. To share the custom time range with other users in your organization, for example if
you have colleagues that can help troubleshoot the issue during this time range,
select the Share with Everyone check box.
7. Click Save. Your custom time range appears in the Manage Custom Time Ranges
window. Click the X to close the window.

Note: You can apply your new custom time range by clicking the Time Range drop-
down and selecting it from the Custom tab. The Application Dashboard updates to
display specific metrics, including the Flow Map, for the custom time range that you
applied.

Instructions - Drag the pointer on a metric graph to set a time range

1. On the Application Dashboard, below the flow map, point to a time of interest on
the Load graph, Response Time graph, or Errors graph.
2. Drag the pointer to select a time period of interest.
3. In the pop-up window, click Set Time Range. The page updates to display the
specific metrics, including the flow map and graphs, for the custom time range that
you selected.

© 2020 AppDynamics, LLC. 7


APM211 Lab Exercises Student Lab Guide

Note: To save this time range to the Custom tab, click the Save button to the left
of the Time Range drop-down, then in the Create Custom Time Range window, type a
name and description and click Save.

Instructions - Manage your custom time ranges

1. On the Application Dashboard, click the Time Range drop-down and then select
the Custom tab.

2. Click the Manage Custom Time Ranges button.


3. In the Manage Custom Time Ranges window, double-click a time range to edit.

4. In the Edit Custom Time Range pop-up window, edit custom time range settings
including name, description, start and end time, and whether it is shared with
everyone.
5. To apply the changes to the custom time range and close the Edit Custom Time
Range window, click Save.
6. In the Manage Custom Time Range window, click the X to return to the
Application Dashboard.
7. Set the Time Range drop-down to display data for the last 1 hour.

Scenario B: Customize the Flow Map


By default, the AppDynamics Controller maps the entire set of web services to provide
a comprehensive view of application performance and metrics. Your developers,
however, are divided into two teams: Team A handles the main Java web services in
the MovieZtream application, and Team B works with the .NET services. You receive a
request to separate the Java services into a separate flow map for Team A. How can
you use AppDynamics to customize the Flow Map for Java web services?

© 2020 AppDynamics, LLC. 8


APM211 Lab Exercises Student Lab Guide

Instructions

1. On the Application Dashboard, click the Application Flow Map drop-down and
select Manage My Flow Maps.
2. In the Manage Flow Maps window, click (+) to add a new flow map.
3. In the Add Flow Map window, type Java Flow Map into the field provided and click
OK.
4. In the Manage Flow Maps window, click the X to return to the Application
Dashboard.
5. Click the Application Flow Map drop-down and select the Java Flow Map. This
flow map is currently the same as the default.
6. Click the Application Flow Map drop-down again and select Edit Current Flow
Map.
7. In the Configure Flow Map window, below Show Tiers meeting these criteria,
select the Show only the specified Tiers check box.
8. In the Visible Tiers list, select each .Net tier and click Add to move them to the
Hidden Tiers list.

9. Click Apply and then click Save.

Note: The system saves the changes and applies it to the flow map on the Application
Dashboard. Verify that the Java Flow Map displays Java tiers only.

Note: You can use the Grid View button on the Application Dashboard to view a
list representation of the data shown on the Application Flow Map. This view displays

© 2020 AppDynamics, LLC. 9


APM211 Lab Exercises Student Lab Guide

overall performance statistics for BTs in each tier as well as calls made between tiers
and other backend systems such as databases. The grid view does not exclude tiers
from view.

Scenario C: View Top Business Transactions


How can you view which BTs are contributing the most traffic to MovieZtream? Have
the highest average response time? Contain the most errors?
To use the Top Business Transactions dashboard to view a sorted list of the top BTs
by several criteria, follow the steps below.

Instructions

1. On the Application Dashboard, click the Top Business Transactions tab.


2. The system displays a list of BTs that are sorted by these key metrics:
 Load
 Response Time
 Errors
 Contribution to App Average Response Time
 Slow Transactions
 Stalls
 Health Rule Violations
3. Make a note of the top 3 BTs for each of these metrics:

 By Load: ______________ , ______________ , ______________


 By Response Time: ______________ , ______________ , ______________
 By Errors: ______________ , ______________ , ______________

Scenario D: Use Business Transactions to Identify Issues


You realize that you need to dig a little deeper into the recent change in the response
time of MovieZtream to identify where the performance issues stem from.

To use business transactions to identify issues, follow the steps below.

© 2020 AppDynamics, LLC. 10


APM211 Lab Exercises Student Lab Guide

1. On the Top Business Transactions page, click the Time Range drop-down.
2. On the Standard tab, select 30 Minutes.
3. In the By Slow Transactions section, make a note of the top 3 BTs:
______________ , ______________ , ______________
4. Review the BTs in the By Health Rule Violations section and determine the
following:

Do any of the top 3 BTs that you noted in the previous step trigger a health rule
violation? ______
5. From the left navigation pane, click Business Transactions to navigate to the
Business Transactions page.
6. Click the % Slow Transactions column heading to sort BTs by slow transactions.
Note: You may need to click the column heading twice to view the slowest
transactions at the top of the list.
7. Click the % Very Slow Transactions column heading to sort the BTs by very slow
transactions.
Note: You may need to click the column heading twice to view the slowest
transactions at the top of the list.
8. Review the BTs by % Slow Transactions and % Very Slow Transactions and
determine the following:

Do any of the BTs that you noted earlier trigger a health rule violation? ______
9. In the list of BTs, double-click the BT with a health rule violation. (If you do not see a
BT with a health rule violation, click the Response Time column heading and
double-click the BT with the highest response time.)
The system navigates to the Business Transactions > Dashboard page, which
displays the Transaction Flow Map for that BT.

© 2020 AppDynamics, LLC. 11


APM211 Lab Exercises Student Lab Guide

10. Use the information in the Transaction Flow Map to identify the tier that is taking
the most time to execute: ___________________.
Note: The numbers above the flow lines indicate the calls made per minute to the
tier and the average time taken for the request to be serviced; that is, the round-trip
time for the request.
11. Determine the following:
Is the delay on this tier caused by the network, the database, or processing? How do
you know?
__________________________________________________
12. From the left navigation pane, click Application Dashboard, then click the
Dashboard tab.
13. Click the Flow Map drop-down and select Default Flow Map from the list.

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 12


APM212 Lab Exercises Student Lab Guide

APM212 Lab Exercises

© 2020 AppDynamics, LLC. 13


APM212 Lab Exercises Student Lab Guide

212-1 Work with Diagnostic Sessions


The Controller captures and retains transaction snapshots at regular intervals and
whenever a transaction experiences a performance issue. Snapshots may have full,
partial, or no call graphs.
You can trigger a manual diagnostic session to capture snapshots with complete
transaction call graphs at more frequent intervals. In a diagnostic session, the
Controller collects snapshots on all nodes that the BT passes through, which you can
use to analyze and troubleshoot the transaction.
Note: Diagnostic sessions can be triggered automatically by a health rule violation or in
response to a high volume of slow or error transactions. In a diagnostic session that is
triggered automatically, the system collects snapshots only on the triggering node.

Lab Preparation
1. In the MovieZtream application, navigate to the Admin > Server Management
page.
2. From the Command drop-down list, select Errors and then click Start Load
Command or Process.
Note: The Errors load triggers a problem with movie rental requests from this point
forward.
3. Verify that you see the confirmation message in the Log window.

Scenario
Because the /customer/rent.htm transaction is business critical, the Dev team
monitors this transaction closely. When errors begin to appear on this transaction in the
Controller, the Dev team asks if it is possible to view calls both before and after the
error. How can you provide this?

You need to run a diagnostic session to capture full call graph snapshots.

© 2020 AppDynamics, LLC. 14


APM212 Lab Exercises Student Lab Guide

Instructions

1. In the Controller UI, from the left navigation pane, click Business Transactions to
navigate to the Business Transactions page.
2. Right-click the /customer/rent.htm BT and select Start Diagnostic Session.
3. Configure the session to collect transaction snapshots for 10 minutes at a rate of 10
snapshots per minute, then click the Start Diagnostic Session button.
4. After approximately two minutes, navigate to the /customer/rent.htm dashboard,
and select the Transaction Snapshots tab.
5. Click the Diagnostic Sessions sub-tab.
6. Below Type, expand the Manual session to view a list of newly collected snapshots
with full call graphs.

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 15


APM212 Lab Exercises Student Lab Guide

212-2 Troubleshoot Slow Business Transactions


The AppDynamics Controller provides several strategies to diagnose and troubleshoot
slow response times. By correlating business transactions with browser snapshots, you
can identify potential issues that can cause a bad user experience. For example, you
might find server errors or database queries that cause a slow or very slow user
experience. This lab provides a basic overview of troubleshooting the root cause of slow
response times using two common workflows:
 Using the Troubleshooting Dashboard.
 Using Slow and Error Transactions.

Scenario A: Troubleshoot the Search.htm BT


Users also complain that it takes a long time to search for movies using the Movies >
Search functionality of the MovieZtream application. To understand the underlying
problem with the response time for these requests and respond accordingly, let's
explore the Troubleshooting Dashboard.

Lab Preparation (for the the following Scenario B)

If you ran the Exercise 1 Load in Lab 211-1 today you may skip the lab preparation
steps and go directly to the Instructions section. Otherwise, follow the steps below.
1. In the MovieZtream application, navigate to the Admin > Server Management
page.
2. From the Command drop-down list, select Exercise 1 Load and then click Start
Load Command or Process.
Note: The Exercise 1 Load triggers higher response times for the
/movieztream_ui/login.htm BT.
3. Verify that you see the confirmation message in the Log window.

Instructions

1. In the Controller UI, from the left navigation pane, click Troubleshoot, then click
Slow Response Times.
2. Verify that the Slow Transactions tab is selected on the Slow Response Times
Dashboard.

© 2020 AppDynamics, LLC. 16


APM212 Lab Exercises Student Lab Guide

3. Set the Time Range drop-down to display data for the last 2 hours.
4. Type search into the search field so that the Slow Transaction Snapshots list
displays only /movie/search.htm snapshots.
5. Locate and double-click a very slow transaction snapshot for /movie/search.htm
that contains a full call graph.

Note: You can recognize a full call graph snapshot by the blue call graph icon: . If
no snapshots with full call graphs are available, double-click one with a partial call
graph, which is indicated by a grey call graph icon.
6. On the Overview tab, review the Flow Map.

7. Use the performance details on the Flow Map to determine the following:
a. How many monitored tiers does this request traverse? ________
b. How many back-ends are there? ________
c. On what tier does this BT spend the most time during the request? ________
8. Click the Drill Down button above the tier that displays the most time.

© 2020 AppDynamics, LLC. 17


APM212 Lab Exercises Student Lab Guide

9. Review the call graph to determine the following:

Which method or methods may be causing this performance issue?


_____________________________________________
10. Close the snapshot window.

Scenario B: Troubleshoot the Login.htm BT


After the Ops team performs a stress test on the MovieZtream application, users begin
to complain that it takes a long time to log in to the application. To help identify the
problem with /movieztream_ui/login.htm and respond accordingly, let's explore slow
and error transaction snapshots.

Instructions

1. In the Controller UI, from the left navigation pane, click Business Transactions.
2. On the Business Transactions page, double-click /movieztream_ui/login.htm.
3. Verify that the Time Range drop-down displays data for the last 2 hours.
4. Click the Transaction Snapshots tab, then click the Slow and Error Transactions
sub-tab.
5. Scroll through the list of snapshots to locate a snapshot that contains the full call
graph details for all of its constituent tiers.
6. Double-click a full call graph snapshot in the list to display transaction details for that
snapshot, including a Flow Map on the Overview tab.

© 2020 AppDynamics, LLC. 18


APM212 Lab Exercises Student Lab Guide

7. Review the performance details on the Flow Map and use the numbers beside the
tiers to determine the following:

On what tier does the BT spend the most time during this request? _______
8. Click the Drill Down button above that tier to display the call graph.

© 2020 AppDynamics, LLC. 19


APM212 Lab Exercises Student Lab Guide

9. Use the information in the Time, Percent %, and Thread State columns to
determine whether the problem with the /movieztream_ui/login.htm BT relates to a
systems fault or a code issue.
10. Select the method from the list that displays the most time, then click the Details
button.

11. Review the details in the pop-up and make a note of the Class and Method name.
__________________________
Note: These are useful details should you need to escalate the issue to a member of
the app dev, network, or database team to troubleshoot.
12. In the MovieZtream application, navigate to the Admin > Server Management
page.
13. From the Command drop-down list, select Exercise 4 Load and then click Start
Load Command or Process.
Note: The Exercise 4 Load load stops the Exercise 1 Load.
14. Verify that you see the confirmation message in the Log window.

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 20


APM212 Lab Exercises Student Lab Guide

212-3 Troubleshoot Business Transaction Errors


AppDynamics considers a BT to be in error if it detects one of the following types of
events:
 An unhandled error or a fatal exception.
 An exception caught in an exit call, such as a web service or database call.
 An HTTP error response, such as a status code 404 or 500 response.
 A custom-configured error method and error message.

This lab explores how to troubleshoot BT errors.

Scenario
Someone on your team reports that there are more errors than usual on the
customer/rent.htm BT. This is the BT that reflects the performance of the Customers
> Rent Movies page of the MovieZtream application. It is your job to find the root
cause of the issue before customers call in to complain. What do you do? You need to
access the error snapshots to troubleshoot the root cause of the issue.

Instructions

1. In the Controller UI, from the left navigation pane, click Troubleshoot > Errors to
navigate to the Errors page.
2. On the Error Transactions tab, below Error Transaction Snapshots, click Filters.
3. Click the Add Criteria button and select Business Transactions.
4. Click the Business Transactions: Not Specified drop-down.
5. In the Available column, select the /customer/rent.htm BT and click the arrow to
move it to the Selected column, then click Apply and Done to filter the list to display
only /customer/rent.htm error transaction snapshots.

© 2020 AppDynamics, LLC. 21


APM212 Lab Exercises Student Lab Guide

6. Double-click a /customer/rent.htm error transaction snapshots from the list and


review the Snapshot Flow Map on the Overview page. Notice that errors are
reported in both the mz_UI and mz_service tiers.

© 2020 AppDynamics, LLC. 22


APM212 Lab Exercises Student Lab Guide

7. Click the Slow Calls and Errors tab, then click the Errors sub-tab.
8. Select an exception to view the full stack trace including the class, method, and line
number where the root exception occurred.

Note: You have now come as close to finding the root cause of this error as your
application’s exception handling code allows.

6. Click the Link button to copy the snapshot link.


7. Open a new window in your browser and paste the snapshot link into the address
field to test it.
Note: You can share this link with colleagues who have access to your controller
and application.
8. Return to the Overview page and click the Drill Down button above the mz_UI tier.
9. The system opens a new tab in the same snapshot window to display an error
summary.

© 2020 AppDynamics, LLC. 23


APM212 Lab Exercises Student Lab Guide

Note: This summary contains little error detail other than the system reports an
HTTP error 500 in this tier.
10. Click the Transaction tab that contains the Request GUID to return to the
Snapshot Flow Map.

11. Click the Drill Down button above the mz_service tier to explore the error details for
this tier.

© 2020 AppDynamics, LLC. 24


APM212 Lab Exercises Student Lab Guide

Note: This summary contains more error detail which gives you a better idea of the
root cause of the issue.
12. On the mz_service tier tab, click the Actions drop-down and select Export to
create a Snapshot Export Summary document that contains the mz_service tier
portion of the snapshot.
Note: This report can be saved and shared as needed.
13. Consider the following:

a. Does the Snapshot Export Summary contain additional information about the
/customer/rent.htm BT that you did not see in the Controller?
b. In the error snapshots for the /customer/rent.htm transaction, what seems to be
the root cause: the error in the mz_UI tier or the mz_service tier?
c. Given this, what would you recommend as the next step to solve the issue?

____________________________________________________________

d. In the MovieZtream application, navigate to the Admin > Server Management


page.
e. From the Command drop-down list, select Errors and click Stop Load
Command or Process.

© 2020 AppDynamics, LLC. 25


APM212 Lab Exercises Student Lab Guide

Note: This stops the Errors load that triggered a problem with the
/customer/rent.htm BT.
f. Verify that you see the confirmation message in the Log window.

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 26


APM213 Lab Exercises Student Lab Guide

APM213 Lab Exercises

© 2020 AppDynamics, LLC. 27


APM213 Lab Exercises Student Lab Guide

213-1 Troubleshoot Slow Database Calls


You may become aware of issues with BTs in a variety of ways. For example, you may
receive a notification email or SMS based on a health rule violation or view performance
indicators in flow maps or transaction scorecards. This lab explores strategies to
diagnose and troubleshoot complex BT issues.

Lab Preparation
1. In the MovieZtream application, navigate to the Admin > Server Management
page.
2. From the Command drop-down list, select Java Condition-1 and then click Start
Load Command or Process.
Note: The Java Condition-1 load causes an increase in the average response time
for the /movieztream_ui/login.htm BT. Please keep in mind that it can take a
couple of minutes before you begin to see the results of this load command in the
Controller UI.
3. Verify that you see the confirmation message in the Log window.

Scenario
After a recent software release, the /movieztream_ui/login.htm BT occasionally
reports slow response times. No one on your team has been able to determine the
issue. Your manager requests that you make this your top priority. What do you do?
You need to troubleshoot the root cause of the slow response times using Slow and
Error Transactions.

Instructions

1. In the Controller UI, from the left navigation pane, click Business Transactions to
navigate to the Business Transactions page.
2. Double-click the /movieztream_ui/login.htm BT.
3. On the Dashboard tab, review the Transaction Flow Map for the
/movieztream_ui/login.htm BT.

© 2020 AppDynamics, LLC. 28


APM213 Lab Exercises Student Lab Guide

4. Click the Transaction Snapshots tab, then click the Slow and Error Transactions
sub-tab to view /movieztream_ui/login.htm snapshots that the system registers as
slow or very slow.
5. Double-click a snapshot from the list that contains a full call graph.
6. On the Overview tab, review the Flow Map and determine the following:
a. What percentage of time did the transaction spend at each tier?
__________________________________________________
7. Click Drill Down above the tier where the problem is.
8. Review the call graph to determine the method that displays the most time.
Note: This view displays the path that the request traverses through the tier. Each
trace includes an icon that represents the type of component, a textual view of the
type of component, class name, and method name, and an indication of the relative
time spent by the request in this component.
9. Select the trace that displays the most time and then click the Details button to view
more information about this invocation.
10. In the pop-up, make a note of the Class and Method name.
Note: These are useful details should you need to escalate the issue to a specialist
to troubleshoot.
11. Consider your findings and determine the following:

What should be done to address this performance issue?


______________________________________________
12. Close the pop-up and the snapshot window.
13. In the MovieZtream application, navigate to the Admin > Server Management
page.
14. From the Command drop-down list, select Java Condition-1 and click Stop Load
Command or Process.
Note: This stops the Java Condition-1 load that caused an increase in the average
response time for the /movieztream_ui/login.htm BT.
15. Verify that you see the confirmation message in the Log window.

© 2020 AppDynamics, LLC. 29


APM213 Lab Exercises Student Lab Guide

Lab Preparation (for the following Lab 213-2)


1. In the MovieZtream application, navigate to the Admin > Server Management
page.
2. From the Command drop-down list, select Errors and then click Start Load
Command or Process.
Note: The Errors load triggers a problem with movie rental requests from this point
forward.
3. Verify that you see the confirmation message in the Log window.

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 30


APM213 Lab Exercises Student Lab Guide

213-2 Troubleshoot With Data Collectors


Some performance issues are related to the data that a business transaction passes
into an application. These types of performance issues can be difficult to track because
they can be intermittent, and only occur to certain business transactions under specific
circumstances. Data Collectors are invaluable when troubleshooting the circumstances
under which these types of performance issues occur because they pull contextual data
from the business transactions, such as parameter values. This additional context can
help to narrow the focus of your troubleshooting to determine the root cause of a
performance issue.

Scenario
Last month, your team determined that the root cause of issues with
/customer/rent.htm BTs related to the titles of the movies being rented. To capture
movie title information in every /customer/rent.htm transaction snapshot, your team
created a Data Collector. Now they can share movie title information with the Dev team
for troubleshooting purposes. Let's review the Data Collector and see how it works.

Instructions

1. In the Controller UI, from the left navigation pane, click Configuration, then click
Instrumentation.
2. On the Instrumentation page, click the Data Collectors tab.
3. Scroll down to the HTTP Request Data Collectors section and double-click the
Movie Title Data Collector.
4. Review the contents of the Edit HTTP Request Data Collector window.

© 2020 AppDynamics, LLC. 31


APM213 Lab Exercises Student Lab Guide

5. Click the Cancel button on the Edit HTTP Request Data Collector window since
you are not making any changes to this Data Collector.
6. On the Instrumentation > Data Collectors page, make sure that the the Movie
Title Data Collector is selected, then click the Configure Transactions Using this
Data Collector button.
7. On the Movie Title - Apply to Business Transactions window, verify that the
/customer/rent.htm BT is in the Business Transactions using this Data
Collector column.

© 2020 AppDynamics, LLC. 32


APM213 Lab Exercises Student Lab Guide

Note: When the Movie Title Data Collector is applied to the /customer/rent.htm
BT, the system adds movie title information to every /customer/rent.htm transaction
snapshot.
8. Click the Cancel button on the Movie Title - Apply to Business Transactions
window.
9. From the left navigation pane, click Business Transactions, then double-click the
/customer/rent.htm BT.
10. On the /customer/rent.htm dashboard, click the Transaction Snapshots tab, then
click the All Snapshots sub-tab.
11. Verify that the Time Range drop-down displays the last 2 hours, then view the list
of transaction snapshots for this time period.

© 2020 AppDynamics, LLC. 33


APM213 Lab Exercises Student Lab Guide

12. Double-click an error transaction snapshot, then click the Data Collectors tab.

13. Make a note of the movie title in the Value column, then click the X to close the
window.
14. Repeat steps 12 and 13 for two of each of the following types of transaction
snapshots:

a. Normal transactions

b. Slow transactions

© 2020 AppDynamics, LLC. 34


APM213 Lab Exercises Student Lab Guide

c. Very slow transactions

d. Error transactions
Note: It makes no difference whether you select snapshots with full, partial, or no
call graphs.
15. Consider your findings and and determine the following:

a. Do you see a pattern to the movie titles that appear for /customer/rent.htm
transaction snapshots?

________________
b. If you find an issue based on the movie title, what might be your next step?

___________________________________________________________

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 35


APM213 Lab Exercises Student Lab Guide

213-3 Troubleshoot Node-level Issues


Node dashboards enable you to view flow maps, conditional details, and errors at the
node level. You can use these dashboards to gain deeper visibility into a specific node
to troubleshoot performance issues.

Scenario A - Explore Node-level Dashboards


Your colleague reports that there is a performance issue on the MovieZtream UI. To
help troubleshoot the issue, you need to drill-down into the mz_UI tier to determine if
the issue stems from a specific node on that tier. To view the features and information
available on a node-level dashboard, follow the steps below.

Instructions

1. In the Controller UI, from the left navigation pane, click Tiers & Nodes to navigate
to the Tiers & Nodes page.
2. Switch between the Tree View and Grid View to review the features and information
available in each view.
3. Click the drop-down to the left of the Tree View and Grid View, and explore these
entries in the list in addition to Health: Hardware, Memory (Java), and Memory
(.NET).
Note: You can ignore the Network entry because the Network Agent is not installed
in this environment.
4. Return to the Health selection from the drop-down.
5. From the Tree View, expand the mz_UI tier, then double-click the UI001 node.

6. The UI001 Dashboard page includes a Node Flow Map that displays basic metrics
of the node-level data.
7. To verify that the Node Flow Map is displaying all tiers, click the down arrow to the
right of Node Flow Map, then select Edit Current Flow Map. If Show only the
specified Tiers is selected, deselect it, then click Save.

© 2020 AppDynamics, LLC. 36


APM213 Lab Exercises Student Lab Guide

8. On the UI001 Dashboard, review the flow map, then determine the following:
a. How many requests are coming into the UI001 node each minute?

9. Navigate to the Server tab to view hardware-related metrics including CPU


utilization, host Memory utilization, Disk I/O and Network I/O for the individual node.
Review this information and determine the following:
a. What is the highest CPU utilization recorded on the UI node in the last 15
minutes? _______________________________________
10. Navigate to the Memory tab to view specifics of node-level Heap Memory
Utilization on the JVM.
Note: You can use this page to troubleshoot node memory space issues including
heap utilization and generational heap analysis. This page also contains tools such
as Object Instance Tracking, which you can use to diagnose memory leaks by
reviewing the allocation for specific application classes that are deployed on this
node.

© 2020 AppDynamics, LLC. 37


APM213 Lab Exercises Student Lab Guide

11. Navigate to the JVM tab to view information about the JVM that is associated with
this node. This data includes a Process ID and all JVM startup arguments. Review
the detail on this page and determine the following:
a. What is the Process ID for this node's JVM? ___________________
12. Navigate to the Agents tab to review diagnostics about agent status and health for
this specific node.

Note: You can use this page to reset and turn the agents on or off from this tab.

Scenario B - Investigate Node-level Errors


The Help Desk receives numerous calls about the Customers > Rent Movies
functionality. Customers report that they see an “exception error” when they try to
navigate to this page. Normally you would begin troubleshooting by looking at the
Business Transactions page. However, a colleague on the Operations Team believes
the problem is isolated to a particular node. Let's explore this issue at the node-level.

Instructions

1. In the Controller UI, from the left navigation pane, click Tiers & Nodes to navigate
to the Tiers & Nodes page.
2. Expand the mz_service tier, double-click the SV001 node, then click the
Dashboard tab.
3. Set the Time Range drop-down to the last 30 minutes.
4. On the SV001 Dashboard, below the Node Flow Map, review the Errors chart. Do
you see any issues here?

5. On the SV001 Dashboard, click the Errors tab.


6. Review the information on the Errors > Error Transactions page.

© 2020 AppDynamics, LLC. 38


APM213 Lab Exercises Student Lab Guide

7. After reviewing the list of error transaction snapshots, determine the following:
a. Do the errors affect multiple transactions or just one? _______________
8. Click the Exceptions tab to review the information that the page presents, then
determine the following:
a. How many exceptions are HTTP error codes? _____
b. How many exceptions are error page redirects? _____

© 2020 AppDynamics, LLC. 39


APM213 Lab Exercises Student Lab Guide

Note: You can configure error detection on the Configure > Instrumentation >
Error Detection page.
9. In the MovieZtream application, navigate to the Admin > Server Management
page.
10. From the Command drop-down list, select Errors and click Stop Load Command
or Process.
Note: This stops the Errors load that triggered a problem with the Rent Movie BT.
11. Verify that you see the confirmation message in the Log window.

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 40


APM214 Lab Exercises Student Lab Guide

APM214 Lab Exercises

© 2020 AppDynamics, LLC. 41


APM214 Lab Exercises Student Lab Guide

214-1 Use Baselines to Understand Application


Performance
AppDynamics automatically calculates the prevailing performance characteristics, or the
baseline, for your applications. Once the Controller establishes a baseline, it can detect
anomalous conditions for your application. Baselines can be calculated for every metric
in the Controller and can appear in these contexts:
 Flow map colorization
 Transaction score dashboards
 Metric graphs
 Health rules

This lab explores how baselines put application performance into context.

Scenario
The IT Director at your company wants your team to deploy the MovieZtream
application on new hardware. You need to ensure that the new hardware can handle
the varying load that the application exerts. During high load, you expect the server to
show signs of slowdown due to excessive CPU load or a shortage of RAM. How can
you verify that this is true as well as check how high your “high load” really is? It is time
to explore the Baseline and Deviations thresholds.

Lab Preparation

1. In the MovieZtream application, navigate to the Admin > Server Management


page.
2. From the Command drop-down list, select Super Bowl Load and then click Start
Load Command or Process.
Note: The Super Bowl Load simulates an overload situation, which allows you to
observe how hardware metrics react to overload.
3. Verify that you see the confirmation message in the Log window.

© 2020 AppDynamics, LLC. 42


APM214 Lab Exercises Student Lab Guide

Instructions

1. In the Controller UI, from the left navigation pane, select Application Dashboard >
Dashboard to view the Application Flow Map.

2. Over the next few minutes, click the Refresh button to observe a change in the
Load chart at the bottom of the page. Do not proceed until the system displays a
change in the Load chart.

3. From the left navigation pane, select the Metric Browser.


4. In the Metric Tree, expand the Application Infrastructure Performance and then
select the following:
[ANY TIER] > Hardware Resources > CPU > CPU %Busy

© 2020 AppDynamics, LLC. 43


APM214 Lab Exercises Student Lab Guide

5. Review the graphical representation of the %Busy metric, then consider the
following:
a. Do you see a significant increase in the value of this metric over the past few
minutes? ____
b. Approximately what value does the latest recording for CPU %Busy have?
____________________

6. Scroll down the list of metrics in the menu on the left and select the Overall
Application Performance > Calls per Minute metric to view its graphical
representation.
7. Change the color of the Application Performance > Calls per Minute metric by
clicking the color box to the left of its name.

© 2020 AppDynamics, LLC. 44


APM214 Lab Exercises Student Lab Guide

8. Review the graph and consider the following:


a. Notice how the Y-Axis of the Metric Browser dynamically adjusts to the largest
value it renders?
b. Can you discern any visible shift in the CPU %Busy value during the time of high
load?

9. The Metric Browser currently displays metrics using its Linear View. Switch to the
Logarithmic View to see if that makes it possible to detect a spike in the CPU
%Busy value due to high load.

10. Finally, switch back to Linear View and set a Custom Time Range using the drag
the pointer technique, covering just the time period of the high Calls per Minute.
11. Uncheck the box to the right of the Calls per Minute to hide that metric on the
graph, then review the graph for spikes or a period of significant load that impacts
the CPU %Busy metric.

© 2020 AppDynamics, LLC. 45


APM214 Lab Exercises Student Lab Guide

12. As you review the graph, consider the following:


a. Do you think the server’s CPU can handle times of high load, or should you
recommend hardware upgrades to the IT Director?
13. Select the Calls per Minute checkbox again, then click the Baseline drop-down and
select All data - Last 15 days from the list.
14. Use the Configure button to enable visibility of 1-2 and 2-3 deviations above
baseline.
15. Select the Shade checkbox to render the deviation bandings.
16. Review the baseline shading and consider the following:

a. Do you think the increase in calls per minute is an extreme event or likely to
happen on a regular basis?

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 46


APM214 Lab Exercises Student Lab Guide

214-2 Identify Issues using Health Rules


Health rules are policy statements that define triggers in AppDynamics policies. You can
use health rules to specify parameters to represent what you consider “normal” or
“expected” operations for your environment. These parameters rely on metric values
such as the average response time for a business transaction or CPU utilization for a
node.
A health rule violation occurs when the health rule processor detects that the health
rule's critical or warning condition is true. This lab explores how to use health rules to
identify performance issues.

Scenario
The recent spike in traffic to the MovieZtream application triggers a health rule
violation. You need to review the violation and verify whether it indicates a performance
issue or perhaps an issue with the parameters of the health rule itself.

Instructions

1. Navigate to the Application Flow Map page and set the Time Range drop-down to
the last 2 hours.
2. Examine the Events panel to the right of the Application Flow Map to view any
health rule violations over that time period.

3. Click Events to navigate to the Events page to view rule violations in more detail.

© 2020 AppDynamics, LLC. 47


APM214 Lab Exercises Student Lab Guide

4. Double-click a violation from the list to view more details.

5. After you review the details in the Health Rule Violation window, determine the
following:

a. What is the name of the Health Rule that was violated?


___________________
b. Is the Health Rule violation still running?
___________________
c. If finished, how long did the violation last?
___________________
d. Specifically, why was the Health Rule violated?
__________________________________________________________

© 2020 AppDynamics, LLC. 48


APM214 Lab Exercises Student Lab Guide

e. Would you expect the Health Rule to violate during times of normal traffic?
__________________________________________________________
f. Can you assess the impact of the performance change due to high load?
__________________________________________________________

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 49


APM214 Lab Exercises Student Lab Guide

214-3 Explore Custom Dashboards


A custom dashboard enables you to display a specific set of metrics and data points on
one screen. You can display application, server, and database metrics that are reported
by AppDynamics agents. You can also supplement any of the Controller’s built-in
dashboards, including the Application Dashboard and Tier Dashboard, to display
metrics that are of interest to a particular audience.

Scenario
The Operations team at MovieZtream created custom dashboards to focus on recent
system performance. You need to review these custom dashboards to gauge system
performance and judge whether or not there are any upcoming issues. Use the custom
dashboard to review the previous day’s performance and determine which BT had the
highest load and why.

Instructions

1. On the menu at the top of the Controller UI, click Dashboards & Reports.
2. From the Dashboards list, click MovieZtream - Operations Dashboard to open
this custom dashboard.
3. Review the detail in the various widgets that display on this dashboard.
4. Click the Time Range drop-down and select other time ranges to see how it affects
the Business Transaction Response Time graph.
5. Click the Time Range drop-down and select 4 hours from the list and consider the
following:
a. Have there been any health rule violations in the last 4 hours? _____
b. Are there any areas of concern on the Business Transaction Response Time
graph?
_____________________________________________
6. Double-click any point on the graph to open the Metric Browser.

© 2020 AppDynamics, LLC. 50


APM214 Lab Exercises Student Lab Guide

7. Review the performance of the BTs in the Metric Browser graph and consider the
following:
a. Do you see a spike in the timeline? If so, make a note of the time. __________
8. Click the X to close the Metric Browser to return to the Dashboard.

9. Compare the timestamp from the spike against any health rule violations you view in
the Events widget and consider the following:

Do any health rule violations correlate to the spike on the graph? _____

© 2020 AppDynamics, LLC. 51


APM214 Lab Exercises Student Lab Guide

10. Double-click a health rule violation from the list to view more details, including the BT
that the violation affects and the cause of the violation.
11. As you review the violation details, consider the following:

a. What course of action would you take to further explore the problem? Why?
____________________________________________________________

Please let your instructor know that you have completed the exercise(s).

© 2020 AppDynamics, LLC. 52


Accessing your AppDynamics University Lab Environment Student Lab Guide

Accessing your AppDynamics University Lab


Environment

© 2020 AppDynamics, LLC. 53


Accessing your AppDynamics University Lab Environment Student Lab Guide

Accessing your Lab Environment (Primary Method)


Prior to class you received an email containing a unique URL and password. Use this
information to access your training lab environment.
1 Copy the unique password and then click the unique URL.
2 At the credentials page enter the following:
Username: appd
Password: Paste in your unique password.
3 Click Login.
You’ll be presented with a multi-tab interface. One tab contains your AppDynamics
Controller UI and in another is the application that is being monitored in this training.
Some lab environments have additional tabs.
4 Log in to the Controller UI using:
Account: Use the fist four characters at the beginning of your labs URL in the
browser address bar. For example if your labs URL was
https://ABCD.appdlabs.com/, you would enter ABCD as the Account.
Username: admin
Password: Paste in your unique password.
Shortcut: Click the pencil icon in the Controller tab to automatically populate the
Username and Password fields. You will still need to manually populate the Account
field.
5 Click Login.
6 Click the MovieZtream tab when it becomes necessary to change the traffic load on
your monitored application. To log in to MovieZtream use the credentials:
Username: HOLLY
Password: FOX
7 Click Login.

© 2020 AppDynamics, LLC. 54


Accessing your AppDynamics University Lab Environment Student Lab Guide

Accessing your Lab Environment with AWS (Alternate


Method)
Use these instructions only if instructed to by your trainer.
The lab environment for this class is hosted by AWS on a virtual machine, which you
need to access to complete the exercises.
In general, you should be able to complete all the exercises by accessing the virtual
machine via a web browser. To access your machine via a web browser, use the
parameters below.

AppDynamics Controller UI http://<Your-IP-Address>/controller

Username: admin
Password: labs4Appd*

MovieZtream Application http://<Your-IP-Address>/movieztream_ui

Username: HOLLY
Password: FOX

Log in and Access your Controller


The Controller UI is your command center for viewing, understanding, and analyzing
the data that is sent from AppDynamics Application Agents. Your Controller UI includes
pre-configured Application Agents that are installed and configured to monitor the
MovieZtream web application as well as a Machine Agent that monitors the
performance of the host machine.

Instructions

To log in to your Controller UI and navigate to the Application Dashboard, follow the
steps below.

© 2020 AppDynamics, LLC. 55


Accessing your AppDynamics University Lab Environment Student Lab Guide

1. For instructor-led training: direct your web browser to the IP address provided by
your instructor (http://<Your-IP-Address>/controller).
For self-paced/on-demand training: the controller window will open in a new tab after
you launch your on-demand lab environment.
2. Log in using the AppDynamics Controller UI username and password at the
beginning of this appendix.
3. On the Home page, within the Applications card, click the MovieZtream
application to display the Application Dashboard.

Note: The Dashboard tab on the Application Dashboard includes the Application
Flow Map which provides a high-level view of the MovieZtream application. From this
view you can navigate to other tabs on the Application Dashboard, or use the left
navigation pane of the Controller UI to navigate to a different area.

Log in and Access your MovieZtream Application


This lab does not require it, but the MovieZtream web application lets you run
command scripts to simulate load. This makes monitoring the MovieZtream application
with the AppDynamics Controller a more “real world” experience.

Instructions

To log in to the MovieZtream web application and run command scripts, follow the
steps below.
1. For instructor-led training: direct your web browser to the IP address provided by
your instructor (http://<Your-IP-Address>/movieztream_ui).
For self-paced/on-demand training: the MovieZtream interface window will open in a
new tab after you launch your on-demand lab environment.
2. Log in using the MovieZtream Application username and password at the beginning
of this appendix.
3. Navigate to the Admin > Server Management page.

Note: You can launch a command script for a lab exercise by selecting a command
from the Command drop-down and clicking the Start Load Command or Process
button.

© 2020 AppDynamics, LLC. 56


Accessing your AppDynamics University Lab Environment Student Lab Guide

© 2020 AppDynamics, LLC. 57

You might also like