Overview
Key Business Transactions allows you to capture performance statistics and optionally set SLAs for Web or Java method calls and track individual execution of transactions with performance stats and call graphs.
Web key business transactions are defined by specifying one or more URI patterns and any request matching the defined patterns will be intercepted and statistic will be gathered under the specified business transaction name.
Java key business transactions works in a similar manner except you define class and method name patterns instead of URIs.
Note: Profiling Agent must be enabled for business transactions to work on a given server. For web based business transactions to work you must deploy HTTP Profiling and Business Transactions aspects. You can enable/deploy these on the Configuration -> Configure Dynamic Instrumentation page
Configuring Business Transactions
Prerequisites
Prior to Applicare 7.1.4 - At a minimum you must enable Standard Mode Instrumentation and enable the instrumentation agent on servers you wish to track business transactions. See Configuring Dynamic Instrumentation on how to enable Standard Mode instrumentation on servers.
For Applicare 7.1.4 onwards - At a minimum you must enable Http, SQL, JDBC Connection and Business Transactions profiling by deploing those aspects in Configuring Dynamic Instrumentation In Applicare 7.1.4 onwards, 'Enable Per-Transaction Monitoring' in Business Transactions configuration has no impact and BTM wouldn't start until 'Business Transactions' aspect is deployed along with other prerequsits in 'Configure Dynamic Instrumentation'.
Configuration
You can access the business transaction configuration page by navigating to Business Tansactions -> Configure (wheel button on right) Transactions Monitoring. On Transaction Monitoring tab you can configure the amount of details to be captured on configured transactions.
Exclude Successful Transactions allows you to exclude successful/good transactions from Busniss Transaction Monitoring.
This helps concentrate on bad transactions which needs a fix or improvement.
Enabling Per-Transaction monitoring gives you the benefit of monitoring your business transactions performance over time as a whole and on a per server basis. Performance overhead of gathering this level of data is minimal and can be enabled even on production systems.
Enabling Transaction Tracing will capture execution graph of each transaction including Java method calls, SQLs and their parameters. Performance overhead of gathering this level of data might be noticable specially in production systems with very high number of business transaction executions per minute. You can reduce the overhead by limiting call graph tracing to transaction executions that are slow, failed or exceeding SLA limits.
Business Transaction Definition
Business Transaction Definition page can be viewed by clicking. Applicare Home -> Business Transactions -> Configure Business Transactions -> Transaction Definitions
This page displays all defined Key Business Transactions and allows you to create, edit and delete Key Business Transactions. Modifications done on this page don't require restart of servers and changes take effect immediately across the domain.
Definitions can be exported to a xml file and imported to another Applicare environment by using the Export/Import buttons.
Defining Business Transactions
Business transactions can be defined manually from this page or from within IntelliTrace Analyzer. If you have enabled Intellitrace Standard Mode or Advanced Mode with IntelliTrace Profiling, you can navigate to HTTP or IntelliTrace tabs in IntelliTrace Analyzer and right click on any autodetected URL / Java method and define a Business Transaction for the URL or Java method.
Add A New Web Business Transaction
To manually add a new Web Business Transaction, click the New button on the Transaction Definition page.
1. Provide a Name for the Business Transaction
2. Select Web from the Type drop down box
3. Provide average and maximum SLA values. Leave them blank or set to zero if you don't want to enforce SLA values for this transaction definition
4. Provide a URI pattern (Note: You can use * character as a wild card here)
5. Optionally provide a HTTP parameter pattern if you want to filter further by HTTP parameters. This follows the normal HTTP convention of separating key and value with = sign and separating multiple parameters with & sign. (Note: You can use * character as a wild card for values)
6. Click Add button to add the URI pattern to definition. You must add at least one URI pattern. Multiple URI patterns can be added to a definition and HTTP requests matching at least one URI pattern will be included in the Business Transaction. 7. Once you have added all URI Patterns, click Save button to save the Business Transaction Definition.
Add New Java Business Transaction
To manually add a new Java Business Transaction, click the New button on the Transaction Definition page
1. Provide a Name for the Business Transaction
2. Select Java from the Type drop down box
3. Provide average and maximum SLA values. Leave them blank or set to zero if you don't want to enforce SLA values for this transaction definition
4. Provide fully qualified class name (Note: You can use * character as a wild card for the class name)
5. Provide a method name (Note: You can use * character as a wild card here)
6. Click Add button to add the class/method pattern to definition. You must add at least one class/method pattern. Multiple patterns can be added to a definition and method calls matching at least one pattern will be included in the Business Transaction.
7. Once you have added all patterns, click Save button to save the Business Transaction Definition.
Key Business Transactions Load Distribution View
This view displays the state of Key Business Transactions across all servers.
If a Transaction meets SLA values defined for it across all servers, it is shown as in Good state. If its not meeting SLA values across all servers, the state will be Failed. If its not meeting SLA values on some servers then the state will be Partial Failure.
Clicking on a Business Transaction will display the state of the transaction on individual servers in the lower table.
Double clicking on a Transaction in the top table will take you to the Transactions tab and will set the search filter to the selected transaction.
Double clicking on a Transaction in the bottom table will take you to the Transactions tab and will set the search filter to the selected transaction and server.
NOTE: The states displayed on Summary View are calculated periodically for performance reasons and are not updated real time.
Transactions View
Transaction view displays transaction execution stats if Per-Transaction Monitoring is enabled. Double clicking on any transaction displayed here will take you to the detailed view where you can see the in parameters, exceptions if any and trace details if transaction tracing is enabled.
Success - If transaction was completed normally without an exception thrown from the method (applies only to Java transactions).
Speed - If transaction duration was less than the average * (User defined value in Business Transaction Configuration).
Meets SLA Max - Indicates transaction duration met the configured SLA Max value.
Meets SLA Avg - Indicates transaction duration met the configured SLA Average value.
Key Business Transactions Load View
Using this tab you can view the performance stats of key business transactions across the environment as well as on a per server basis. You must enable Business Transaction Profiling in order to gather data to be displayed on the dashboard.
Configuring Distributed Transaction Tracing
Applicare BTM can track transactions that span multiple servers (JVMs) and display the consolidated call graph consisting of executions on multiple servers in a single UI.
Note: All servers that participates in distributed transactions must have their system clocks synchronized (E.g. Using NTP) for remote transaction tracing to work properly.
There are two ways to enable transaction tracking between two servers.
First Method
First you must define the remote service as a Java business transaction. You can right click your service method which accepts the remote parameters in IntelliTrace window and select "Define as a Business Transaction" option.
In the above example we are defining the org.glassfish.jersey.server.internal.monitoring.MonitoringStatisticsProcessor$1.run() method which is the service method that parameter as a Business Transaction named "Petstore-Product".
Next we define the method that calls the remote service as a remote method by right clicking the method name in IntelliTrace or in the BTM trace window and selecting "Define as a Remote Call" option. Its important you pick the method that accepts the parameters which are sent to the remote service.
In the example above we define the method jpetstore/shop/addItemToCart.shtml as a remote method call and we select the previously defined Petstore-Product in add to cart service as the Business Transaction called by this method.
Next we will define the HTTP call which makes the remote method call as a business transaction too
Now that we have defined both transactions and the remote method call we can see the transactions when they are invoked on the server and track it when it goes from one server to another.
The following 2 images shows a Validate CC transaction invoked on AdminServer and on double clicking it you can see the call graph on the AdminServer and the call graph of the remote service on Tomcat server which was invoked as part of the transaction on AdminServer.
Second Method
Second approach is to use Network Connection Profiling to track transactions and as in the first method, you will have to define the calling and the called business transactions. You will not need to define the method that calls the remote transaction as a Remote Method.
For this approach to work, Network Connection Profiling must be enabled on all participating servers. You can do this by going to Profiling -> Configure Dynamic Instrumentation page and deploying Network Connection Profiling in Advanced mode.
Once you enable Network Connection Profiling, go to the Remote Method Definition tab on the same page and add the server IP and port where the remote transactions are running on.
Comments
0 comments
Article is closed for comments.