The business transaction is the mechanism by which AppDynamics Application Performance Management orders and monitors application traffic. A business transaction represents a distinct logical user activity such as logging in, searching for items, buying an item, etc. Organizing application traffic into business transactions aligns the traffic with the primary functions of a web business. This approach focuses on how your users are experiencing the site and provides real-time performance monitoring.
Application users don’t complain that the server seems to be experiencing memory leaks or that the code is not optimized. Instead, users say they cannot log into the application or notice that it takes too long to complete a checkout. That is why AppDynamics uses business transactions, such as the Login and Checkout processes, to identify and troubleshoot real-world problems in production.
AppDynamics uses business transactions to:
- Organize all user requests to represent the load on your business application.
- Provide detailed diagnostic data into requests that experience errors or perform slower than usual.
Business transactions represent either a category or a type of user request. They depict the primary functions of your application. Examples of business transactions include:
- In an e-commerce application, user actions such as logging in, searching for items, adding items to the cart, etc.
- In a content portal, the content sections that users navigate such as sports, world news, entertainment, etc.
- In a stock trading application, operations such as receiving a stock quote, buying and selling stocks, etc.
Business Transactions and Application Health
How well a business transaction performs is the most important factor when monitoring the health of your application. The performance data for a particular business transaction in your system provides information such as:
- Availability: Is the functionality currently available? For example, are the users currently able to log in to the site?
- Performance: How is this task currently performing? For example, how much time, on average, does it take to complete a check-out request? How is the business transaction performing compared to what is considered acceptable performance? The picture below is a summary view of what it means to say that "Checkout is OK".
- User Experience: How many users performing a particular task experienced slow response times or stalls? Are there performance spikes or lulls due to end user patterns such as holidays?
- Historical Comparisons: How does historic data for particular time ranges compare to current data?
Business Transactions in Distributed Environments
A distributed environment typically has multiple tiers deployed with multiple app servers, databases, remote services, etc. A business transaction may span multiple nodes through remote calls to external services, collecting data from all of these components and measuring the processing time required to collect both synchronous and asynchronous data across all tiers.
The method call that starts the business transaction is called the entry point.
For example, when an app server invokes the business logic associated with an eCommerce checkout operation, it makes a database call plus multiple calls to services in other tiers. AppDynamics discovers and groups these activities as a single "checkout" business transaction. This business transaction captures processing time, which relates to the response time typically experienced by a user.
How AppDynamics Discovers Business Transactions
When application requests are received by transaction entry points, AppDynamics automatically discovers and identifies the requests as business transactions. AppDynamics uses information from the transaction entry point to name the transaction.
Multiple user requests, as long as they follow the same code path, are categorized as instances of a single business transaction. For example, one user-click results in the Checkout business transaction being identified as a single request. Then, when another user performs the same action, AppDynamics associates the two requests with the same Checkout business transaction.
AppDynamics monitors and measures how well a business transaction performs and reports these metrics. It analyzes trends in the data to establish dynamic baselines that act as known point of reference against which ongoing performance is continuously measured.
The business transaction monitors the distributed code paths, evaluates performance, and reports anomalies. See Alert and Respond for setting up policies, alerts, and responsive actions such as email notifications.
If anomalies occur, AppDynamics business transactions and self-learning techniques provide robust and rapid means to find and repair problems. See Troubleshoot and Resolve for tips and tutorials.
Optimizing Business Transaction Monitoring
AppDynamics recommends that you configure your system to monitor important business transactions and other operations that are key to your business. There are multiple techniques to employ. For example, you can exclude certain operations from detection. You can combine several operations into a single business transaction, or split a default business transaction to provide more granularity. See Organizing Traffic as Business Transactions for other suggestions and Configure Business Transaction Detection for detailed instructions.
- A Look at Business Transactions
- Organizing Traffic as Business Transactions