1 Introduction to Application Performance Monitoring

Application Performance Monitoring provides a platform for monitoring and managing your web applications.

About Application Performance Monitoring

Today's e-businesses depend heavily on their web applications to allow critical business processes to be performed online. As more emphasis is placed on accessing information quickly, remotely, and accurately, you should take proactive steps to ensure that your online customers can successfully complete a transaction. Application Performance Monitoring is a cloud service that provides deep visibility into the performance of your web application.

With Application Performance Monitoring, you can:

  • Rapidly isolate application performance issues

  • Drill down to related logs in context of a problem and find its root cause

  • Gain end-to-end visibility into the performance of your application across all tiers

  • Monitor end-user experience

Understanding Application Performance Monitoring Roles

When your Application Performance Monitoring service instance is created, the following roles are provisioned by default:

Role Tasks
Application Performance Monitoring Administrator
  • Set up Application Performance Monitoring by deploying APM Java Agents on target hosts

  • Manage APM Java Agents

  • Configure alert rules

Application Performance Monitoring User
  • View and monitor application performance

  • Drill down to related logs

  • View alerts

Read This Before You Begin

Here are some of the common terms and basic concepts regarding Application Performance Monitoring.

Asynchronous JavaScript and XML (AJAX) is a group of Web technologies used to implement asynchronous Web applications that communicate with a server in the background, without interfering with the current state of pages.

The APM Java Agent is a lightweight agent, which runs in the Java Virtual Machine (JVM) of a web application and collects performance monitoring data for Java web applications running in your data center or in the cloud.

An application server is a server on which applications and services are installed, hosted and operated. It is part of the middle-tier in a three tier architecture.

An application request is typically an HTTP request sent by the client application to the server.

A server request is an application server request that can come via HTTP or some other service. A server request might be called by an HTML page, an AJAX request, or another server request.

Garbage collection, built into many programming languages, is an automatic way of managing the memory available to various objects. The garbage collection mechanism tracks objects still being used, marks the objects no longer in use as garbage and through the process of garbage collection it automatically frees up the memory for use by other objects. In the case of Java, garbage collection is done within the Java Virtual Machine environment.

Garbage collection overhead refers to the additional resources, processing time, used by the garbage collection mechanism.

Software applications can choose to implement various garbage collection types depending on the performance goals. In Java, for example, developers can choose to implement garbage collection of type single threaded (serial), multi-threaded (parallel), concurrent mark then sweep (CMS) or parallel collection in multiple memory zones. Each method uses various resources and CPU time, affecting the overall application performance.

The heap, for example the Java heap, is a repository of Java objects.  The heap is the sum of active objects, dead objects (marked for garbage collection) and free memory. Heap size tuning in Java refers to minimizing the time that the Java Virtual Machine (JVM) spends doing garbage collection while maximizing the number of clients that the application server can handle at a given time. A heap map provides the memory details of a given process.

WebLogic Server is Oracle’s Java EE application server, part of Oracle Fusion Middleware suite of products, used for building and deploying enterprise applications.

A WebLogic Server cluster consists of multiple WebLogic Server instances running simultaneously and working together to provide increased scalability and reliability.

A WebLogic domain is a logically related group of WebLogic Server resources. Domains include a special WebLogic Server instance called the Administration Server, which is the central point from which you configure and manage all resources in the domain. Usually, you configure a domain to include additional WebLogic Server instances called Managed Servers. You deploy Web applications, EJBs, and other resources onto the Managed Servers and use the Administration Server for configuration and management purposes only.

Oracle Home refers to a directory where Oracle products are installed, pointed to by an environment variable. Multiple active Oracle Homes can exist on the same host.

Oracle Java Virtual Machine (JVM) is a standard, Java-compatible environment that runs any pure Java application. It supports the standard Java binary format and the standard Java APIs.

Servlets are Java programming language classes that dynamically process requests and construct responses.