Skip navigation
Share:|

I spoke to a few customers last week about Application Performance Management (APM) and many of them are still confused about the different functionalities offered by APM products, such as transaction tracing and deep-dive monitoring. I will use screens shots from BMC Application Diagnostics as illustrations.

 

Most of today’s applications are multi-tiered and involve a multitude of systems such as application servers, databases, messaging systems or external web services.  Consider the following example of a transaction where a user bids for a product offered in an auction site.  This is based on the ActionBazaar application as depicted in my book EJB 3 in Action.

 

image001.jpg

 

(Source: EJB 3 in Action, Manning, April 2007)

 

A transaction may involve multiple application (JVM or CLR) tiers.  However, there are several applications where you have a single application tier (e.g. Java /.NET) accessing a relational database. A transaction trace is a complete log of information that depicts the interaction between application systems involved in the complete transaction.

 

Often a transaction trace provides enough data about an instance of a transaction to diagnose a latent or failed transaction. For example, a user named Bob came to ActionBazaar.com and tried to make a Bid for an old Car, but he got an obscure error (NullPointerException).  A transaction trace captured for that transaction will help application support diagnose this issue.  Hence transaction tracing is a capability to isolate transaction issues by capturing a detailed record for the transaction when a problem occurred.

 

Interestingly some APM products often refer only to cross-tier or multitier tracing capabilities as transaction tracing.  Here is an example of a transaction trace that involves multiple tiers.  We can see that the transaction trace has sufficient information about the transaction to identify the problem by showing the transaction flow (or path) for Place Bid transaction and time spent in each node.

 

image002.png

Note that some people refer the automatic discovery of transaction paths as run-time application discovery.

 

A graphical view of transaction traces helps application operation personnel identify the culprit-tier e.g. JBoss 2 VM in the above example.

 

However, application support personnel will need to further drill down to determine why a specific node is generating an error or is slow.

A transaction trace may optionally include deep-dive monitoring data for that tier to indicate why the specific node/tier is slow. It may include data such as application server metrics, the code execution path, or parameters that may help application support personnel to diagnose the issue and help fix it.

 

The following graph illustrates transaction tracing vs. deep-dive monitoring.

image004.png

The following figure shows an example of deep-dive monitoring data.  The first view suggests that the PlaceBidService running on the JBoss2 server is causing the latency issue. It also shows some top application server metrics and how these compare with baselines.  These metrics help pinpoint issues with the underlying application infrastructure.

 

image006.png

 

As you can see, it also shows how various kinds of technology frameworks contribute to the latency of PlaceBidService.

The transaction trace may also break down the time spent in DB (SQL calls), as shown below, in order to help application support personnel determine whether certain DB calls are slowing down the transaction.

 

image008.png

 

If the application support personnel understand the application code, they can drill down further to look at the method execution tree as shown below.

 

image010.png


Many products such as BMC Application Diagnostics include code level deep-dive data in the transaction trace. However some APM products require different agents to collect deep-dive data vs transaction traces, and you may have to manually correlate the transaction trace with deep-dive information.

 

I hope this provides a good background into how transaction tracing and deep-dive monitoring are related.

Share:|

Introduction

 

BMC Application Diagnostics is the next generation application deep dive monitoring solution that helps users to proactively diagnose application transaction issues such as slow and failed transactions. BMC Application Diagnostics combined with BMC End User Experience Management provides an end-to-end application performance management solution that helps diagnose application issues. The solution will trace from a real end-user to the application method.  In this blog, I will how discuss you can you get started with BMC Application Diagnostics.

 

image003.gif

 

 

Understanding Architecture and Components

 

The following figure shows the integrated architecture of BMC’s Application Performance Management (APM) solution.

 

image004.jpg

 

The following are important components of BMC Application Diagnostics

  • Application Diagnostics Server contains Portal and Server components that can be installed in the same server or in a distributed architecture on multiple machines
  • Application Diagnostics Agents (either Java or .NET) that get installed on your application server. Application Diagnostics supports Java 1.5 or newer and .NET 2.0 or newer applications. The Java agent runs as a part of JVM and the .NET agent runs as a Windows service.
  • Application Performance Console visualizes all application performance management data including Application Diagnostics and End User Experience Management.

 

For details, refer to the BMC Application Diagnostics documentation at http://docs.bmc.com/docs/display/public/appdiag20/Home

Installation

 

BMC Application Diagnostics Server (Portal/Collector) is supported in windows and Linux 64-bit machines.

Downloading Software

The latest version of BMC Application Diagnostics available is 2.0. You can download this from BMC EPD website.

image005.jpg

Please review the Application Diagnostics documentation for details.  It provides both interactive and silent installation. You can install both BMC Application Diagnostics Portal and Collector in the same machine. Following is a screen shot of the interactive installer.

 

image006.jpg

 

Note that the installer will automatically install a MySQL database where the monitoring data is stored.

 

Enabling Diagnostics data in APM Console

BMC Application Performance Management console unifies all application monitoring data. If you do not have an APM Console already, perhaps as part of an EUEM installation, then you have to install the APM Console. APM Console is an appliance VM that needs to be deployed in ESX environment.

 

You have to enable the Application Diagnostics plug-in by navigating Application Diagnostics -> System Setting in APM Console and entering the Application Diagnostics Portal configuration as follows:

 

image007.jpg

 

After you configure the Portal Address, you will see Application Diagnostics data in the APM Console.

Installing and Configuring Agents

 

BMC Application Diagnostics support applications running Java 1.5+ and .NET 2.0+ platforms. The agent binaries can be downloaded from BMC EPD website.

 

The .NET agent runs as a Service in Windows. The Java agents require the –javaagent parameter to be specified in the startup script for the application server. The agent communicates with BMC Application Diagnostics Portal and Collector using http(s) and hence the Portal Server and port needs to be specified.  Following is a screen shot for .NET Agent installer:

 

image008.jpg

 

The Java agent install is a command line installer as shown below:

 

image009.jpg

 

As I discussed earlier, you need to modify the startup script to include the agent. Here is an example for Tomcat (catalina.bat).


image010.jpg

 

After you start the agent it will connect to the Application Diagnostics server. You can verify this by navigating to Application Diagnostics -> Agents screen in APM Console as shown below:

 

image011.jpg

 

Now you are all set!

Monitoring Your Applications

BMC Application Diagnostics discovers your application servers and business transactions automatically. You can navigate to Business Transactions and start monitoring your business transactions as follows:


image012.jpg

Application Diagnostics captures transaction traces when there is a latency violation or when an error occurs. You can view captured traces by drilling down on a specific transaction as shown below.

image013.jpg

 

This help you diagnose your application issues.

 

If you are developer or application support personnel then you can further drill down method call as below:

 

image014.jpg

 

Conclusion

 

Hope this helps you get started with monitoring your application using BMC Application Diagnostics.

Filter Blog

By date:
By tag: