Business iQ

2 minutes  

Objectives

In this Learning Lab you learn about AppDynamics Business iQ.

When you have completed this lab, you will be able to:

  • Enable analytics with the new Agentless Analytics Java Agent (v 4.5.15 +).
  • Configure HTTP data collectors.
  • Configure method invocation data collectors.
  • Understand dashboard components.
  • Build a business dashboard.

Workshop Environment

The lab environment has two hosts:

  • The first host runs the AppDynamics Controller and will be referred to from this point on as the Controller.
  • The second host runs the Supercar Trader application used in the labs. It will be the host where you will install the AppDynamics agents and will be referred to from this point on as the Application VM.

Controller VM

image image

Application VM

image image

Last Modified Oct 13, 2025

Subsections of Business iQ

Lab Prerequisite

3 minutes  

In this exercise you will complete the following tasks:

  • Access your AppDynamics Controller from your web browser.
  • Verify transaction load to the application.
  • Restart the application and transaction load if needed.

Login to the Controller

Log into the AppDynamics SE Lab Controller using your Cisco credentials.

Verify transaction load to the application

Check the application flow map:

  1. Select the last 1 hour time frame.
  2. Verify you see the five different Tiers on the flow map.
  3. Verify there has been consistent load over the last 1 hour.

Verify Load 1 Verify Load 1

Check the list of business transactions:

  1. Click the Business Transactions option on the left menu.
  2. Verify you see the eleven business transactions seen below.
  3. Verify that they have some number of calls during the last hour.

Note: If you don’t see the Calls column, you can click the View Options toolbar button to show that column.

Verify Business transactions Verify Business transactions

Check the agent status for the Nodes:

  1. Click the Tiers & Nodes option on the left menu.
  2. Click Grid View.
  3. Verify that the App Agent Status for each Node is greater than 90% during the last hour.

Verify Agents Verify Agents

Restart the Application and Load Generation if Needed

If any of the checks you performed in the previous steps could not be verified, SSH into your Application VM and follow these steps to restart the application and transaction load.

Use the following commands to stop the running instance of Apache Tomcat.

cd /usr/local/apache/apache-tomcat-9/bin
./shutdown.sh

Use the command below to check for remaining application JVMs still running.

ps -ef | grep Supercar-Trader

If you find any remaining application JVMs still running, kill the remaining JVMs using the command below.

sudo pkill -f Supercar-Trader

Use the following commands to stop the load generation for the application. Wait until all processes are stopped.

cd /opt/appdynamics/lab-artifacts/phantomjs
./stop_load.sh

Restart the Tomcat server:

cd /usr/local/apache/apache-tomcat-9/bin
./startup.sh

Wait for two minutes and use the following command to ensure Apache Tomcat is running on port 8080.

curl localhost:8080
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/9.0.50</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <div id="wrapper"
....

Use the following commands to start the load generation for the application.

cd /opt/appdynamics/lab-artifacts/phantomjs
./start_load.sh

You should see output similar to the following image.

Restart App 3 Restart App 3

Last Modified Oct 13, 2025

Enable Analytics on the Application

2 minutes  

Analytics formerly required a separate agent that was bundled with Machine Agent. However, Analytics is now agentless and embedded in the APM Agent for both .NET Agent >= 20.10 and Java Agent >= 4.5.15 on Controllers >= 4.5.16

In this exercise you will access your AppDynamics Controller from your web browser and enable the Agentless Analytics from there.

Login to the Controller

Log into the AppDynamics SE Lab Controller using your Cisco credentials.

  1. ** Select the Analytics tab at the top left of the screen.
  2. ** Select the Configuration Left tab.
  3. ** Select the Transaction Analytics - Configuration tab.
  4. ** Mark the Checkbox next to Your Application Supercat-Trader-YOURINITIALS
  5. ** Click the Save button

Enable Analytics Enable Analytics

Validate Transaction Summary

You want to verify that Analytics is working for that application and showing transactions.

  1. Select the Analytics tab tab on the left menu.
  2. Select the Home tab.
  3. Under Transactions from filter to your application Supercar-Trader-YOURINITIALS

Validate Analytics Validate Analytics

Last Modified Oct 13, 2025

Configure HTTP Data Collectors

2 minutes  

Data collectors enable you to supplement business transaction and transaction analytics data with application data. The application data can add context to business transaction performance issues. For example, they show the values of particular parameters or return value for business transactions affected by performance issues, such as the specific user, order, or product.

HTTP data collectors capture the URLs, parameter values, headers, and cookies of HTTP messages that are exchanged in a business transaction.

In this exercise you will perform the following tasks:

  • Enable all HTTP data collectors.
  • Observe and Select relevant HTTP data collectors.
  • Capture Business Data in Analytics using HTTP Params.
  • Validate Analytics on HTTP Parameters.

Enable all HTTP data collectors

Initially, you can capture all HTTP data collectors to learn which useful parameters you can capture into Analytics and use it in your Dashboards

Tip

It is strongly recommended that you perform this step on a UAT environment, not production.

  1. Select the Applications tab at the top left of the screen.
  2. Select the Supercar-Trader-YOURINITIALS Application.
  3. Select the Configuration Left tab.
  4. Click on the Instrumentation Link.
  5. Select the Data Collectors tab.
  6. Click on the Add Button in the HTTP Request Data Collectors

HTTPDataCollectors 1 HTTPDataCollectors 1

You will now configure an HTTP data collector to capture all HTTP Parameters. You will only enable it on Transaction Snapshots to avoid any overheads until you identify the precise parameters that you need for Transaction Analytics

  1. For the Name, specify All HTTP Param.
  2. Under Enable Data Collector for check the box for Transaction Snapshots.
  3. Do not enable Transaction Analytics.
  4. Click on + Add in the HTTP Parameters section.
  5. For the new Parameter, specify All as the Display Name
  6. Then specify an asterisk * in the HTTP Parameter name.
  7. Click Save

HTTPDataCollectors 2 HTTPDataCollectors 2

  1. Click “Ok” to confirm the data collector.
  2. Enable /Supercar-Trader/sell.do Transaction
  3. Click Save

HTTPDataCollectors 2 HTTPDataCollectors 2

Observe and Select Relevant HTTP Data Collectors

  1. Apply load on the Application, specifically the SellCar transaction. Open one of its snapshots with Full Call Graph, and select the Data Collectors Tab.

You can now see all HTTP Parameters. You will see a number of key metrics, such as Car Price, Color, Year, and more.

  1. Note the exact Parameter names to add them again in the HTTP Parameters list and enable them in Transaction Analytics.
  2. Once they are added, delete the All HTTP Param HTTP data collector.

HTTPDataCollectors 2 HTTPDataCollectors 2

Capture Business Data in Analytics with HTTP Params

You will now configure the HTTP data collector again, but this time you will capture only the useful HTTP Parameters and enable them in Transaction Analytics. Add a new HTTP Data Collector: Application -> Configuration -> Instrumentation -> Data Collector tab -> Click Add Under the HTTP Request Data Collectors section

  1. In the Name, specify CarDetails.
  2. Enable Transaction Snapshots.
  3. Enable Transaction Analytics.
  4. Click + Add in the HTTP Parameters section.
  5. For the new Parameter, specify CarPrice_http as the Display Name
  6. Then specify carPrice as the HTTP Parameter name.
  7. Repeat for the rest of the Car Parameters as shown below.
  8. Click Save
  9. Click Ok to acknowledge the Data Collector implementation

SaveHttpDataCollectors SaveHttpDataCollectors Car Params Car Params

  1. Enable /Supercar-Trader/sell.do Transaction
  2. Click Save

HTTPDataCollectors 2 HTTPDataCollectors 2

  1. Delete the All HTTP Param Collector by Clicking on it, then click Delete button.

Validate Analytics on HTTP Parameters

You will now validate whether the business data was captured by HTTP data collectors in AppDynamics Analytics.

  1. Select the Analytics tab at the top left of the screen.
  2. Select the Searches tab
  3. Click the + Add button and create a new Drag and Drop Search.

Drag and Drop Search Drag and Drop Search

  1. Click + Add Criteria
  2. Select Application and Search For Your Application Name Supercar-Trader-YOURINITIALS
  3. Under the Fields panel verify that the Business Parameters appear as a field in the Custom HTTP Request Data.
  4. Check the box for CarPrice_http and Validate that the field has data.

ValidateHttpDataCollectors ValidateHttpDataCollectors

Last Modified Oct 13, 2025

Configure Method Data Collectors

2 minutes  

Method invocation data collectors capture code data such as method arguments, variables, and return values. If HTTP data collectors don’t have sufficient business data, you can still capture these information from the code execution.

In this exercise you will perform the following tasks:

  • Discover methods.
  • Open a discovery session.
  • Discover method parameters.
  • Drill down to an object within the code.
  • Create a method invocation data collector.
  • Validate analytics on method invocation data collectors.

Open a Discovery Session

You may not have an application developer available to identify the method or parameters from the source code. However, there is an approach to discover the application methods and objects directly from AppDynamics.

  1. Select the Applications tab at the top left of the screen.
  2. Select Supercar-Trader-YOURINITIALS application
  3. Select the Configuration tab.
  4. Click on the Instrumentation link.
  5. Select the Transaction Detection tab.
  6. Click on the Live Preview Button on the tight.

OpenDiscoverySession OpenDiscoverySession

  1. Click on Start Discovery Session button
  2. Select the Web-Portal Node in the pop-up windows. It should be the same node that the method you are investigating runs on
  3. Click Ok

OpenDiscoverySession OpenDiscoverySession

  1. Select Tools on the right toggle.
  2. Select Classes/Methods in the drop-down list.
  3. Select Classes with name in the Search section.
  4. Type in the class name supercars.dataloader.CarDataLoader in the text box. To find the class name you can search through call graphs, or ideally find it in the source code.
  5. Click Apply to search for the matching class methods.
  6. Once the results appear, expand the class that matches your search.
  7. Look for the same method saveCar.

OpenDiscoverySession OpenDiscoverySession

Note that the saveCar method takes a CarForm object as an input parameter.

Drill Down to the Object

Now you have found the method, explore its parameters to find out where you can pull the car details properties.

You saw that saveCar method takes the complex object CarForm as an input parameter. This object will hold the form data that was entered on the application webpage. Next, you need to inspect that object and find out how you can pull the car details from it.

  1. Type in the class name of the input object supercars.form.CarForm in the text box
  2. Click Apply to search for the class methods.
  3. When the results appear, expand the supercars.form.CarForm class that matches the search.
  4. Look for the methods that will return the car details that you want. You will find get methods for price, model, color, and more.

ObjectDrillDown ObjectDrillDown

Create Method Invocation Data Collector

With the findings from the previous exercises, you can now configure a method invocation data collector to pull the car details directly from the running code in runtime.

  1. Select the Applications tab.
  2. Select Supercar-Trader-YOURINITIALS Application
  3. Select the Configuration tab.
  4. Click on the Instrumentation link.
  5. Select the Data Collectors tab.
  6. Click Add in the Method Invocation Data Collectors.

MIDCDataCollector MIDCDataCollector

We will create a method invocation data collector to capture the car details.

  1. For the Name, specify SellCarMI-YOURINITIALS.
  2. Enable Transaction Snapshots.
  3. Enable Transaction Analytics.
  4. Select with a Class Name that.
  5. Add supercars.dataloader.CarDataLoader as the Class Name.
  6. Add saveCar as the Method Name.

NewMIDCDataCollector NewMIDCDataCollector

Then as observed, the Input Parameter of Index 0 in SaveCar method was an on Object of Class CarForm, and then there is a Getter method inside that object that returns the car details properties such as getPrice().

So to explain that how we fetched that value in the MIDC, we will do the below:

  1. Click on Add at the bottom of the MIDC panel, to specify the new data that you want to collect.
  2. In the Display Name, specify CarPrice_MIDC
  3. In the Collect Data From, select Method Parameter of Index 0, which is our CarForm Object.
  4. For the Operation on Method Parameter, select Use Getter Chain. You will be calling a method inside CarForm to return the car details.
  5. Then specify getPrice(), the Getter method inside the CarForm class that will return the price.
  6. Click Save.

CreateMIDCDataCollector1 CreateMIDCDataCollector1

  1. Repeat the above steps for all the properties, including color, model, and any others that you want to collect data for.

CreateMIDCDataCollector2 CreateMIDCDataCollector2

  1. Save MIDC, and apply to the ”/Supercar-Trader/sell.do” business transaction.

The implementation of the MIDC requires that we restart the JVM:

  1. SSH into your EC2 instance
  2. Shutdown the Tomcat Sever
cd /usr/local/apache/apache-tomcat-9/bin
./shutdown.sh

If you find any remaining application JVMs still running, kill the remaining JVMs using the command below.

sudo pkill -f Supercar-Trader
  1. Restart the Tomcat Server
./startup.sh
  1. Validate that the Tomcat server is running, this can take a few minutes
curl localhost:8080
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/9.0.50</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <div id="wrapper"
....

Validate analytics on MD parameters

Go to the website and apply some manual load on the Sell Car Page by submitting the form a couple of times.

You will now verify if the business data was captured by HTTP data collectors in AppDynamics Analytics.

  1. Select the Analytics tab.
  2. Select the Searches tab and Add a new Drag and Drop Search.
  3. Click the + Add button and create a new Drag and Drop Search.
  4. Click + Add Criteria
  5. Select Application and Search For Your Application Name Supercar-Trader-YOURINITIALS
  6. Verify that the Business Parameters appear as a field in the Custom Method Data.
  7. Verify that the CarPrice Field has data.

ValidateMIDCDataCollector ValidateMIDCDataCollector

Conclusion

You have now captured the business data from the Sell Car transaction from the node at runtime. This data can be used in the Analytical and Dashboard features within AppDynamics to provide more context to the business and measure IT impact on the business.

Last Modified Oct 13, 2025

Dashboard Components

2 minutes  

The ability to build dashboards is a vital component of the AppDynamics capabilities and value. In this exercise,you will work with some of the dashboard components that can be used to build compelling dashboards.

Create a new dashboard

  1. Select the Dashboard & Reports tab.
  2. Click Create Dashboard.
  3. Enter a dashboard name such as SuperCar-Dashboard-YOURINITIALS.
  4. Select Absolute Layout as the Canvas Type.
  5. Click OK.

NewDashboard NewDashboard

Now open the newly created empty dashboard. You will now add various widget types.

Dashboard components custom widget builder

The custom widget builder is a highly flexible tool that can generate representations of data, including numeric vews, time series, pie charts, and more. It is based on the AppDynamics AD Query Language.

To create a widget, follow these steps:

  1. Toggle the Edit Mode at the upper left corner of the dashboard.
  2. Click Add Widget.
  3. Select the Analytics tab on the left.
  4. Click Custom Widget Builder.

NewCustomWidgetBuilder NewCustomWidgetBuilder

There are many chart types that you can create in the Customer Widget Builder. You can simply drag or drop information or create an AD Query in the Advanced pane..

NewCustomWidgetBuilder NewCustomWidgetBuilder

For now, we will cover Numeric, Bar and Pie Charts.

Numeric charts

Exercise: Quantifying the dollar amount impacted by errors enables you to show the impact of IT performance on the business revenue.

  1. Select the Numeric chart type.
  2. Add a Filter on the Application field and Select your application name: Supercar-Trader-YOURINITIALS
  3. Add a filter on the /Supercar-Trader/sell.do business transactions.
  4. Add a filter on the User Experience Field selecting only the Error to show the impact of errors.
  5. Find the CarPrice_MIDC field on the left panel and drag and drop it into the Y-Axis. Notice that SUM is the Aggregation used to capture the total price per model.
  6. Change the font color to red for better visibility.
  7. Click Save.

NumericChartWidget NumericChartWidget

Note that you could do the same for the $ Amount Transacted Successfully criterion by changing the user experience filter to only include NORMAL, SLOW and VERY SLOW.

You could also baseline this metric by creating a custom metric in the Analytics module and defining a health rule that indicates if the $ Amount Impacted is equal to or higher than the baseline. You can also add a label for the currency.

NumericChartSamples NumericChartSamples

Bar charts

Exercise: You will now create a bar chart to visualize Top Impacted Car Models. The chart will show the car models of all of the SellCar transactions, categorized by the User Experience.

  1. Create a New Widget by clicking + Add Widget, Analytics and Custom Widger Builder
  2. Select the Column chart type.
  3. Add the following filters: Application = Supercar-Trader-YOURINITIALS and Business Transaction = /Supercar-Trader/sell.do.
  4. Add CarModel_MIDC and User Experience to the X-Axis.
  5. Click Save.

BarChartWidget BarChartWidget

This chart type can be adjusted based on your need. For example, you could group the X-AXIS by Customer Type, Company, Organization, and more. Refer to the following example.

BarChartSamples BarChartSamples

Pie charts

You will now create a pie chart that shows all the car models reported by the sellCar transaction and the sum of prices per model. This will show the most highly-demanded model in the application.

  1. Create a new Widget
  2. Select the Pie chart type.
  3. Add the following filters: Application = Supercar-Trader-YOURINITIALS and Business Transaction = /Supercar-Trader/sell.do.
  4. Add CarModel_MIDC in the X-Axis
  5. Add CarPrice_MIDC in the Y-Axis. Note that SUM is the aggregation used to capture the total price per model.
  6. Add a Title Sold by Car Model
  7. Click Save.

PieChartWidget PieChartWidget

Refer to the following example for more uses of the pie chart widget.

PieChartSamples PieChartSamples

Dashboard components: Conversion funnels

Conversion funnels help visualize the flow of users or events through a multi-step process. This enables you to better understand which steps can be optimized for more successful convergence. You can also use conversion funnels to examine the IT perfomance of every step, to understand how they impact the user experience and identify the cause of user drop-offs.

Note that the funnel is filtered according to the users who executed this path in that specific order, not the total visits per step.

The first step of funnel creation is to select a unique identifier of the transaction that can represent each user navigation through the funnel. Usually, the Session ID is the best choice, since it persists through each step in the funnel.

A Session ID can be captured from the transactions. You’ll need a SessionId data collector to use it as a counter for the Funnel transactions.

For Java applications, AppDynamics has the capability to Session IDs in the default HTTP data collector. You’ll ensure that it is enabled and apply it to all business transactions to capture the Session ID for every transaction.

  1. Select the Applications tab.
  2. Select Supercar-Trader-YOURINITIALS Application.
  3. Select the Configuration Left tab.
  4. Click Instrumentation.
  5. Select the Data Collectors tab.
  6. Edit the Default HTTP Request Request Data Collectors.
  7. Select Transaction Analytics.
  8. Verify that SessionID is selected.
  9. Click Save.

EnableSessionId EnableSessionId

Now apply some load by navigating multiple times from the /Supercar-Trader/home.do page. Then, directly navigate to /Supercar-Trader/sell.do page on the application.

Now Return to your Dashboard to create the funnel widget.

  1. Toggle the Edit slider.
  2. Click Add Widget.
  3. Select the Analytics tab.
  4. Click Funnel Analysis.
  5. Select Transactions from the drop-down list.
  6. Under Count Distinct of, select uniqueSessionId from the drop-down list.
  7. Click Add Step. Name it Home Page.
  8. Click on Add Criteria. Add the following criteria: Application: Supercar-Trader-YOURINITIALS & Business Transactions: /Supercar-Trader/home.do.
  9. Click Add Step. Name it SellCar Page.
  10. Click on Add Criteria. Add the following criteria: Application: Supercar-Trader-YOURINITIALS & Business Transactions: /Supercar-Trader/sell.do.
  11. Select the Show Health Checkbox on the right panel to visualize the transaction health in the flow map.
  12. Click Save

FunnelWidget FunnelWidget

Last Modified Oct 13, 2025

Build Your Dashboard

20 minutes  

Exercise - Build Your Own Dashboard

To conclude this Learning Lab, use the business data that was captured in the earlier exercise using method invocation data collectors and your understanding of the dashboard components to build an IT Business Impact Dashboard.

Refer to the following example and build your own dashboard, using the same data and widgets.

DiscoverCallGraphMethods 1 DiscoverCallGraphMethods 1

Congratulations! You have completed the BusinessIQ Fundamentals Learning Lab!