Performance Monitoring Overview

The Application Performance Monitoring Cloud Service (APMCS) is part of the Oracle Manage Cloud, recording and monitoring the performance and behavior of managed components, and analyzing the same in terms of recent history. APMCS records measurements of server requests and data as they flow through the different components of an application. APMCS can also record measurements of a user's page navigation through the set of applications under observation. This performance data is stored in a repository and can be retrieved via the REST API described in this set of pages.

As part of monitoring an application APMCS also discovers, records and stores measurements about infrastructure entities, such as hosts, databases, application servers, JVMs, thread pools and more.

APMCS Data Flow Summary

How do the application data measurements get recorded and stored so that the REST API described here can retrieve and analyze that data? The data recording mechanism used is, more or less, as follows:

  1. Server Agents that APMCS has injected into application servers periodically check for newly discovered objects. Once discovered, these objects are then monitored and the agents begin to record data about them.
  2. Similary, Browser Agents report metric data about web browser pages and their contained Ajax calls.
  3. The data reported by these two types of agents is, broadly, one of three types:
    • Model Data that describes an object in the application. These objects could be entities that are part of the data flow through the application, such as pages, Ajax Calls, server requests and operations, or they could be part of the application infrastructure, such as hosts, application servers, JVMs and databases.
    • Metric Data that provides some time based measurements of the Model Data. For example, page metrics, server request metrics, application server metrics and JVM metrics. Naturally there is a lot more Metric Data than there is Model Data. Metric data is partitioned by time, which allows for the performance analysis of recent measurements, and also allows for the deletion of old data.
    • Sample Data that describes an individual execution.
    All agents report their Metric Data in aggregated measurements. The current default aggregation period is 1 minute.
  4. The Model Data and aggregated Metric Data data are validated and collected by the APMCS Engine, the primary data source, which loads the data into the APMCS Schema Repository.
  5. The APMCS Data Server can retrieve the data from that repository, and, using the REST API provided by this document, this data can be accessed and used for performance analysis.

The following figure summarizes the high-level data flow from the agents monitoring application servers and user web browser pages to your customized performance analysis using this REST API, shaded blue in the lower left:

Figure - APMCS Performance Metrics Data Flow

APMCS Performance Metrics Data Flow

Application Data Flow Summary

Let's now apply the above understanding to a small application. In the following diagram two pages of a web application (Start page and End Page) are shown with three application servers on different hosts, and an application database repository.

A browser agent has been injected into the end user's web browser, and there are server agents monitoring the different application servers on the different hosts. User page navigation and Ajax calls from the two web pages are recorded by the browser agent. At the same time, the server agents are recording server request traffic through the application servers, and JDBC traffic to the database. This data recording is all done in aggregated measurements. All discovered objects, model data and metric data that are collected by these agents are persisted, via the APMCS Engine, in the APMCS repository.

At some point in time, using the REST API documented here, that performance data is retrieved from the repository via the APMCS Data Server, and then analyzed.

Figure - Application Data Flow

Application Data Flow

APMCS Entity Summary

As has been demonstrated above, APMCS operates on the following high-level entities, all of which are exposed through the REST API:

  • Operation - A programming component within an application server. Examples include Servlet, JDBC and JAX-RS operations.
  • Operation Link - An invocation of one Operation by another Operation.
  • Server Request - A sequence of Operation calls (and links) in a single Application Server that return some set of information. Server Requests are identified by their starting Operation.
  • Page - A web browser page delivered by a Server Request
  • Ajax Call - A part of a browser Page that involves a Server Request, allowing for increased interoperability and asynchrony.
  • Agent - A point of data collection injected into Application Servers and browser Pages.
  • Flow - A connected set of Server Requests, all invoked (directly or indirectly) from a single Server Request.

Other pages in the rest of this document refer to these high-level entities and assume that the above APMCS and Application Data Flow summaries are understood.