Beruflich Dokumente
Kultur Dokumente
Chapter 1: Introduction
But in real world achieving zero downtime is quite impossible; even though the
application is simple one might experience other factors influencing the proper
functioning of the application. To know what factors are influencing the application CA
Technologies have come up with a software tool called APM which helps the service
providers to monitor their applications and take necessary steps.
The scenario for a web application being hosted can be depicted from the fig 1.1.
It shows how exactly the things go on with the web applications.
As we can see the following are the steps involved in using a particular service on
the internet.
1. The client sends an http request to the web server from a browser for a
particular service (for example login into Google apps).
2. The server receives the request and sends to the particular domain (here
mlrinstitutions.ac.in).
3. The domain server sends the next action that is to be taken by the web server.
MLR Institute of Technology 1|Page
Application Performance Management 201
1
4. Now the web server interacts with the database for the data.
5. The Database server serves the request and sends the data to the web server.
6. Finally the web server sends the response back to the client.
One might wonder then where is the use of APM in this scenario. But let us recall few
things as described below.
1. We know that for a website to open and process the request it needs some time, but
can anyone guarantee the amount of time it will take to do so.
2. Of course it depends on various factors like speed of the internet, traffic, speed of the
server and complexity of the application and few more factors.
3. The above mentioned factors can be handled easily, but what if some other factors are
influencing the application. The problem could be server side like class doesn’t get
loaded properly; some unwanted code is running in a loop etc. All these lead to loss in
business from the service provider perspective.
To overcome the above problem we need to have something which could monitor
the applications running on a server. Since applications are a piece of software, the
something we require to monitor must also be software and here comes the APM.
APM monitors the applications hosted on the web server and sends the metrics to
the developers regarding the place where exactly the problem has arisen. These metrics
helps the developers to diagnose the problem.
.
.
Chapter 2: Introscope
2.1 Architecture:
Introscope is a software tool which monitors any defect in the implementation
classes, methods or interfaces. It deals with the run time behavior of the code, providing
highly dynamic environment to monitor the web application.
2.1.1 Agent:
Enterprise Manager is software running on the console which takes the metrics
from one or more agents, aggregates them and stores them in the database.
A Work Station is a UI based application at the developer end which gets the
metrics stored in the database to track the problem.
To monitor any web application, we need to bind an agent with the web
application that is to be monitored. The binding of web application with the agent deals
with the insertion of byte code into the implementation classes byte code of the
application.
For example if we want to monitor a method of a class, then we write a .pbd file
known as Probe Builder Directive which states that which method of which class is to be
monitored.
Using this .pbd file the agent software inserts some byte code at the start and the
end of the method body for the method which is to be monitored. The insertion of this
byte code into the actual byte code is known as probing, and the inserted byte code is
called as probes. The class or method in which the probes are added is called as
instrumented class/method.
The following figure shows binding of agent with the implementation classes.
Once the probes are inserted into the byte code of the implementation
classes/methods, we can say the binding of agent to the application is done and the agent
is ready to report the metrics to the Enterprise Manager (EM).
As we can see from the figure, the byte code is added at the start and a t the end of
the method body. And this code acts as the agent to send the metrics to the EM.
Before we see how the Agent reports metrics to the EM, we see what is a metric
and types of it.
2.2.2.1 Metrics:
S. No Metric Purpose
8 Stalled methods Number of methods started but whose invocation times have
exceeded a threshold.
The above metrics are used by the developer to reach to the problem and solve
them before it affects a large number of customers.
MLR Institute of Technology 8|Page
Application Performance Management 201
1
Once the agent binding is done with the web application, the next step is to report
the above metrics to the EM. This reporting is done by the agent.
Whenever the application is running the agent becomes active and it sends the
above metrics for the class/method with which the agent is bind, to the Enterprise
Manager. This reporting is done at the runtime only, so that we get the performance of
the application in run time with the real time end user.
Once the agent reports the metrics to the EM, the task of the agent is finished.
Now the Enterprise Manager comes into action.
Once the Enterprise Manager receives the metrics from the agent, it periodically
aggregates the metrics and stores in the database.
The EM aggregates for every 15 minutes by default, this value can be changed by
the administrator of the EM for more flexibility.
The Enterprise Manager has the capability of receiving the metrics from more
than one agent.
The metrics stored in the above phase by the EM in the database can be viewed by
the developer at the Work Station window.
The Work Station is an UI window which provides all the metrics in the graphical
notation to the developer. The use of graphical notation for the representation of metrics
provides the developer with an ease of understanding the problem.
As we can see from the figure the part which is encircled in red shows the metrics
reported by the agent to the EM. These metrics are generated when the application
“hello_jsp” was run.
If we click on the “hello_jsp” tab in the above window we get the graphical
notation of these metrics as shown in the below figure.
Moreover the overhead of the probes in the source code is very less, that it doesn’t
affect even the efficiency of the application.
.
.
3.1 Introduction:
Customer Experience Manager (CEM) is yet another software module in
Application Performance Management.
CEM deals with the management of application performance from a level higher
than Introscope. Unlike Introscope it doesn’t works with the source code, rather monitors
the entire web server as a whole. As the name implies it manages the customer
experience in true sense.
The working of CEM refers to working of TIM and TESS. To understand the
working of TIM and TESS, first we see what are TIM and TESS, and then we will go for
their functionalities.
The analysis that a particular transaction is defect or not is done by the SLA’s
(Service Level Agreements) specified by the developer. The transactions are compared
against these SLA’s and the defective transactions are saved in a file at TIM. These files
are again pulled up by the TESS to store in the database as well as to be made available
to the developer through the TESS UI.
The TIM generates a new file of defects for every 7.5 seconds and these files are
destroyed once been copied by the TESS.
The configuration of TIM is done by the CEM administrator from the TESS UI
itself. One need not move to the TIM box to specify the types of transactions, SLA’s,
recordings etc.
As we can see in the figure the TIM monitors all the transactions that are moving
between the switch and the load balancer.
In a typical environment where the traffic is very high, one can have more than
one TIM to monitor the same port. In addition to that one TIM can report to only one
TESS at a time but one TESS can be connected to multiple TIM’s.
The TESS is integrated inside the Introscope Enterprise Manger (EM). Whenever
the EM is started, it also starts the TESS.
The TESS provides various services like TIM collection service, Database
cleanup and Stats aggregation.
To utilize the services of a TESS, the developer or the TESS administrator at the
customer side must login to the TESS UI and follow the following steps for TIM
collection service.
The developer must login into the TESS UI using his/her credentials. Once logged
in they can specify the TIM machine name and IP address from which they want to
receive the defects file.
The example figure shows the UI to specify the TIM machine as below.
Now a recording of transactions must be done through recording tab, which lists
all the transactions present at the SPAN port related to the particular application.
The recording module records all the transaction that occurs for the application
being monitored.
Specify the client IP address and click on record it will start recording all the
transaction from that IP address.
Now from all the transaction recorded above the developer has to select the
transactions which he/she want to monitor.
Now if we want to monitor that how much time doe it takes to get the particular
image in that page, we select that transaction in this step.
The above shows the list of all transactions recorded, the developer can select or
identify the transactions which he wants to monitor by checking the appropriate
transaction.
After selecting the transactions that are to be monitored, the developer has to
promote the transaction, this can be done by clicking the promote button in the same tab
as shown below.
Since these rules are set at the TESS UI, we need to send an xml file to the TIM
as well stating the above conditions so that it can filter the transactions against the
conditions in this file. Any transaction which fails to satisfy the minimum conditions is
considered to be defect and stored in a defect file as discussed earlier.
The synchronization of the monitors can be done just on click of button labeled
synchronize all monitors. Once the synchronization is done the TIM is configured to
report the defects and even TESS is ready to collect the defects file from TIM.
To watch the defects which are generated by the TIM whenever a client request a
particular application which we are monitoring, we go to the TESS UI, under cem tab we
find incidents under which we get a tab for defects.
On clicking the defects tab, all the defects get listed which have been captured by
TIM as shown below.
As one can see the defects are listed in a tabular format with all the information
related to the defect. One of the defects we captured can be seen as marked with a red
rectangle in the figure 3.9.
.
.
The UI are so simple that any naive user can understand the application and make
use of it. On the other hand it provides sensible information which a developer can use to
rectify the problem in the application being monitor. Hence the scope for users lies from
Naïve to high end developers.
4.3 Conclusion:
The APM provides a large number of functionalities for the service providers to
manage their applications and to come up to the solution without affecting the users at
large.
Both the products under APM are of high use from the business point of view to
monitor the applications at two different locations. One at the implementation level using
Introscope and the other at network level using the CEM.
.
.
References
1. Wily Introscope guide from CA Technologies.
INDEX
T
TESS, 16
TIM, 14
Connection, 15
Collection Service, 16
Transaction
Identifying, 17-18
Promoting, 18-19
Recording, 17
Types of metrics, 8
V
Viewing of metrics, 9
W
What is APM? , 1
Working
CEM, 14
Introscope, 6-12
Work Station, 5-6, 10-11