AppDynamics Essentials: Business Transactions
In this article
Introduction
For the uninitiated, the AppDynamics platform is an Application Performance Monitoring and Management (APM) platform that provides real-time monitoring of application environments, collects related metrics to analyze and detects anomalies. In layman's terms, it helps solve application related problems, reduces the outages they cause, provides all the details necessary to prevent them and has functions to allow you to automate the remediation of future issues.
In this article, we will dissect the most crucial piece of the AppDynamics platform, the Business Transaction (BT). We'll discuss what it is, how it fits into the bigger AppDynamics picture, how to view a BT and BT best practices.
What is it and why should I care?
In the AppDynamics application model, a Business Transaction (BT) represents the end-to-end, cross-tier processing path used to fulfill a request for a service provided by the application. This request is most often performed by a user, like logging into the application or adding an item to a shopping cart. The BT is the foundation of everything that AppDynamics does, and nearly every feature relies on it. We'll use them to center in on various application components from the user perspective and determine whether they're available or experiencing problems.
Business Transactions in the bigger picture
When setting up an AppDynamics platform, application agents and their algorithms will automatically use the most common application frameworks, discovering requests to your application. These requests become known as entry points for the Business Transaction. AppDynamics takes homogenous requests, like adding items to a cart, as multiple occurrences of the same BT.
Business Transaction review
Walk this way
Accessing your application's Business Transactions is easy — there's a sidebar menu on the left of your Application Menu.
You can also access the Top Business Transactions from the tab menu at the top of the Application Window. This provides additional options allow you to sort by load, response time, errors, contribution to average response time, health rule violations, stalls and slow calls.
For this walkthrough, select Business Transactions (BT) on the left sidebar menu. A New Business Transactions Window will open inside the AppDynamics Controller interface. We now see a list of the BTs that AppDynamics has found for this particular application.
Filter and view options
There are several Filter options available to organize and identify important BTs. Select the Filters icon at the top of the BT Menu to see the able options. We can filter only transactions with/without performance data, view services by types and select BTs based on specific tiers or transaction names.
In addition to the filters, we also have many view options available for our consumption. The image below gives the full list, with many of the metrics that AppDynamics collects during a request. Selecting any of these will show up as headers in our BT list that we can sort by.
In our example here, I've checked all of the metric columns I want to see displayed in the list of BTs. I recommend playing with the various metric columns to discover what is important to you.
List me one more time
Now that we have our filters and view options set up the way we want it, let's look at the BT list.
- These metric columns are the items we checked in our View Options. Health acts as a stoplight for the BT, with green (good), yellow (warning) and red (critical) indicators.
- I've sorted the list by Calls per Minute (Calls/Min) because It's a metric that provides a good indication of the most often used BTs. The goal is to identify the most critical BTs in the application and refine them.
- AppDynamics provides the entry point type of the Business Transaction. The highlighted example is a web service. The other entry point types visible here are Servlets.
- The BT name, which is based on the transaction detection rules. By default, Java Servlet rules use the first two URI segments, while the Web Services use ServiceName.OperationName as its listed name.
Double-click the webui/login BT so we can get further information on it.
That familiar feeling
Like all AppDynamics items, upon selecting them, you get additional menu options for that item. Business Transactions are no exception.
- The Dashboard view of the webui/login BT. Like the application dashboard, it shows the various endpoints that AppDynamics has discovered during this BT.
- This tab provides a list of any Events, including Health Rule Violations, that have occurred during the selected timeframe window.
- The Slow Response Times tab provides a graph of slow webui/login calls, along with a list of BT snapshots taken of this call during the selected timeframe.
- The Errors tab is similar to the Slow Response Times tab because it provides a graph of webui/login calls that generated an error, along with a list of snapshots containing errors during the selected timeframe.
- The Snapshots tab gives us a combined list of all the Snapshots taken during the selected timeframe. This includes snapshots taken for slow and very slow calls, errors, stalls and normal calls.
- Transaction score is a quick at-a-glance view of the BT with a graph of calls and average response times, Event list and a graph of Snapshot numbers taken during the selected timeframe.
- DB Queries provides a list of… you guessed it, database queries related to this BT. The query statement and the ID are provided. By default, they're sorted by the top 100 queries.
You can see how each of these options provides more information on the BT and what AppDynamics collects when an application request, like a login, is made.
Business Transaction best practices
Unlike most APM solutions, AppDynamics has a less is more philosophy. It shouldn't need to record everything and only focus on your application environment's most essential services. This reduces the overall performance overhead impacting your application and reduces the effort required to find root cause. This is why we use Business Transaction (BT) best practices.
We're going to highlight them now with a brief description, but go into them in greater detail in another upcoming article specifically for BT best practices.
Types of best practices
- Prioritizing: The Controller limits the number of business transactions to reduce resource utilization on the Controller. Prioritizing helps reduce this impact and identify the most import BTs to your application.
- Refining Auto Discovered: Review BTs regularly to make sure they still reflect your changing application environment most effectively and modify as needed to add additional or undiscovered transactions and split or combine them.
- Grouping: A transaction group lets you collect multiple related transactions into a single organization unit in your AppDynamics environment.
- Scope Creation: The scope configuration model is an alternative to the hierarchical inheritance model that can be applied to transaction detection settings. Under the scope model, you can bundle multiple tiers into a scope and apply transaction detection rules to that scope all at once. The Default Scope consists of all the tiers in the application.
- Excluding: Excluding transactions disables the BT for metric processing purposes and reduces the count against registration limits. The historical metrics and configuration are archived in case they need to be restored later.
- Deleting: Deleting business transactions also reduces the count against registration limits and disables it for metric processing purposes.
- Lock Down: Lock Down can prevent additional changes to the list of BTs from occurring automatically. This affects application changes, upgrades to the agent software, or other changes in the monitored environment
Begin at the end
Since you now know what Business Transactions are and their various purposes in AppDynamics, let's dive deeper into what you can accomplish with AppDynamics by scheduling a demo.