Application Performance Management (APM)

This document provides information about the Application Performance Management (APM) component of the Hawkular open source management platform project.

Information about the Hawkular project can be obtained from the website: http://www.hawkular.org

What is Application Performance Management?

As defined on wikipedia, "application performance management (APM) is the monitoring and management of performance and availability of software applications. APM strives to detect and diagnose complex application performance problems to maintain an expected level of service".

We sub-divide this problem into three:

Application Performance

The focus of this area is on the performance of the parts, whether at the application, service, resource or internal component level. So can be viewed as equivalent to a profiling tool for distributed systems.

Distributed Tracing

Distributed tracing is concerned with recording and analysing the path(s) taken from an initial invocation as it cascades across a distributed system, primarily as a diagnostic aid to developers and operation teams.

The focus of this area is on the communication paths of individual or multiple (aggregated) invocations across a distributed system, to view the performance profile of the various components along those paths.

Business Transactions

Business Transaction Management can actually be considered an extension of Distributed Tracing. Both are concerned with the tracing of invocations across potentially multiple distributed services. The difference is that Business Transaction Management is more concerned with the business relevance of the paths taken, and the business metrics that can be obtained and analysed.

It is also worth clarifying the term Business Transaction - according to one website [1], "The accounting definition of a business transaction, according to the online Business Dictionary, is "an economic event that initiates the accounting process of recording it in a company’s accounting system." This is the official definition. However, selling an item at a garage sale where no accounting system is in place also can be a business transaction".

We prefer to use a more general definition of a Business Transaction. It can be any interactions within a business, or between a business and its customers/partners, that results in direct or indirect value. For example, making an enquiry to obtain information about a item, such as its description or stock level, has no associated economic event. However it may be a necessary precursor to someone considering a purchase, and provide invaluable insight into the browsing patterns of its customer base.

Once we have a definition for a Business Transaction, the next thing to understand is a Business Transaction Instance. This is a single occurrance of what is understood to be a Business Transaction. So for example, a person buying a item (e.g. a computer), on a particular day and time, would result in a Business Transaction Instance.

Structure of the Guide

This document describes what Hawkular APM is, how to install it and explains how to analyze the data in the user interface.

The last section contains REST API documentation.