15
http://www.iaeme.com/IJMET/index.asp 572 [email protected] International Journal of Mechanical Engineering and Technology (IJMET) Volume 9, Issue 1, January 2018, pp. 572586, Article ID: IJMET_09_01_062 Available online at http://www.iaeme.com/IJMET/issues.asp?JType=IJMET&VType=9&IType=1 ISSN Print: 0976-6340 and ISSN Online: 0976-6359 © IAEME Publication Scopus Indexed JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING AND RESOURCE MGMT TOOLKIT Shashank Kumar Mishra, Manjula R Computer Science Department VIT University, Vellore, Tamil Nadu, India ABSTRACT This paper describes “Java Application Performance Monitoring and Resource Management Toolkit” (JAPMRMT), which is developed for monitoring the application as well as taking corrective action to reduce the human intervention and make sure the environment to be healthy and functional always. The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about the impacted component/system but doesn’t have the capability to take corrective measures. On the other hand, JAPMRMT monitors the application-performance parameters and OS components, where it observes the behavior and take proactive-action when any of the strange pattern get acknowledge. JAPMRMT monitors the application and OS components through event traces, where each event symbolizes the occurrence of any issue in the environment for eg. Application-performance downgrade/high response-time/high volume of load or high resource-utilization etc. JAPMRMT is an open toolkit, its event trace API can be used to analyze the availability/performance-matrix of application and OS components. Tool-Overhead w.r.t OS resource utilization is also reduced by categorizing the applications in groups i.e. Platinum (most critical), gold (core, business hours) and silver (less risky), where each group has different monitoring-mechanism and time-window. The primary purpose of JAPMRMT is to explore the new dimension of administrative-approach of APM monitoring-tools to make it more powerful and reliable in order to recognize as well as rectify the problem simultaneously. Key words: JAPMRMT, JAVA, Resource Mgmt Toolkit, APM Cite this Article: Shashank Kumar Mishra, Manjula R, JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit, International Journal of Mechanical Engineering and Technology 9(1), 2018, pp. 572586. http://www.iaeme.com/IJMET/issues.asp?JType=IJMET&VType=9&IType=1

JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

http://www.iaeme.com/IJMET/index.asp 572 [email protected]

International Journal of Mechanical Engineering and Technology (IJMET)

Volume 9, Issue 1, January 2018, pp. 572–586, Article ID: IJMET_09_01_062

Available online at http://www.iaeme.com/IJMET/issues.asp?JType=IJMET&VType=9&IType=1

ISSN Print: 0976-6340 and ISSN Online: 0976-6359

© IAEME Publication Scopus Indexed

JAPMRMT: JAVA APPLICATION

PERFORMANCE MONITORING AND

RESOURCE MGMT TOOLKIT

Shashank Kumar Mishra, Manjula R

Computer Science Department VIT University,

Vellore, Tamil Nadu, India

ABSTRACT

This paper describes “Java Application Performance Monitoring and Resource

Management Toolkit” (JAPMRMT), which is developed for monitoring the application

as well as taking corrective action to reduce the human intervention and make sure

the environment to be healthy and functional always.

The limitation of the existing Application Monitoring (APM) tools follow reactive

approach that provides information about the impacted component/system but doesn’t

have the capability to take corrective measures. On the other hand, JAPMRMT

monitors the application-performance parameters and OS components, where it

observes the behavior and take proactive-action when any of the strange pattern get

acknowledge.

JAPMRMT monitors the application and OS components through event traces,

where each event symbolizes the occurrence of any issue in the environment for eg.

Application-performance downgrade/high response-time/high volume of load or high

resource-utilization etc.

JAPMRMT is an open toolkit, its event trace API can be used to analyze the

availability/performance-matrix of application and OS components. Tool-Overhead

w.r.t OS resource utilization is also reduced by categorizing the applications in

groups i.e. Platinum (most critical), gold (core, business hours) and silver (less risky),

where each group has different monitoring-mechanism and time-window.

The primary purpose of JAPMRMT is to explore the new dimension of

administrative-approach of APM monitoring-tools to make it more powerful and

reliable in order to recognize as well as rectify the problem simultaneously.

Key words: JAPMRMT, JAVA, Resource Mgmt Toolkit, APM

Cite this Article: Shashank Kumar Mishra, Manjula R, JAPMRMT: Java Application

Performance Monitoring and Resource Mgmt Toolkit, International Journal of

Mechanical Engineering and Technology 9(1), 2018, pp. 572–586.

http://www.iaeme.com/IJMET/issues.asp?JType=IJMET&VType=9&IType=1

Page 2: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 573 [email protected]

1. INTRODUCTION

Application Performance Monitoring (APM) tools changed a lot over a period of time in order

to monitor and provide accurate-data/ reports for distributed/cloud platform but scope of

improvements never end. It‟s a challenging area, where tools should be more flexible to adopt

rapid changing technologies.

Many customized reports can be generated through APM-tool like OS-Resource

Utilization/ Application thread Pool Report, Costly-query report from DB etc. as per the

business requirement.Moreover,it gives the flexibility to create the customized-dashboard and

alert-utility.

APM tools are very robust and accurate on monitoring perspective but a severe-problem

may arise when the application having zero-tolerance regarding downtime becomes

unavailable due to some irregularity or defect.

Is there any methodology to avoid or get buffer time before issue occurred?

For example, CPU utilization for platinum/gold category application-server goes beyond

critical limit and all the JVM‟s running in that application-server experience the “CPU

starvation” or “Thread scheduling got delayed” . Due to this end customer experience the

slowness or request-timeout which may lead JVM crash situation if it is not fixed ASAP. In

this situation, tools will generate the critical alert and notify an administrator to take

appropriate action but cannot prevent the outage as time consumed by APM tool and

administrator reaction.

In the scenarios mentioned above, JAPMRMT tool would be useful as it uses four phase

approach starting from identify the issue where tool pick the critical event trace, then analyze

the problem, refers to current utilization vs allocation and trigger the additional vCPU request

to global zone, later implementation and verification phase, On-fly global zone assign the

requested vCPU to local zone, and monitor the situation of application server to make sure it

would be better and utilization goes down. In final step notify the administrator to find out the

reason for same.

JAPMRMT tool is having capabilities to filter the problematic event traces, interpret them

and take action against them based on defined rules and historical action pattern; in such a

way it reduced the application availability risk by 6% and capability to capture the logs during

the problematic time window by 9%. In the toolkit, customize rule creation option is also

available , through that thread and core dump can be generated based on rule for example,

generate the core and thread dump if application thread pool got stuck and more than 30% of

threads will be in hung state.

There are many ways to verify the performance, such as load/stress testing of application

components or application response time during peak hours. In this paper, we are assuming

that load/stress testing of implementation components already done. Here we are

concentrating on the performance of deployed application based on response time.

2. LITERATURE SURVEY

This section analyzes the research relating to enhancement of open source APM tool. The

implemented tool in the study is JAPMRMT. The study examines the various open sources

APM monitoring tool available for application performance and availability.

Page 3: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 574 [email protected]

According to the report by (Tom, 2017), the following includes available tools for APM

monitoring. Nagios is one good example from the story. It is fast, trustworthy and extremely

customizable. Nagios is used worldwide to monitor the complex infrastructure and very

flexible to modify based on infra setup, but it‟s hard to implement, non-user friendly GUI,

Lack of automatic device discovery. The second is Icinga. Which is a public open source

monitoring system, it is used to verify the hosts and availability of the services, it is similar to

Nagios, but it has some better functionality as compare to Nagios like, more rapid

development cycle, but it also has configuration and runtime limitations.

The third APM tool from the report is Observium is a Linux-based, command-line driven

product with a web-based observing GUI. It collects the data from different devices using

SNMP and displays those data in graphical pattern using web interface. It is flexible enough

to integrate with third-party applications and the ability to write your custom application

modules to gather the data and report from use.it defines the full range of monitoring entities,

it generates the alert or triggers the alarm based on it. It is having the excellent user interface

with new skins and useful reporting mechanism but another hand; it is not having direct

export or reporting capabilities. (Dowling & Ben, 2009).

Stage monitor is also APM monitoring tool java based open source monitoring solution; it

is built to support during development, quality assurance, and production. A single instance of

surveillance agent can monitor all your applications, instances and hosts. It is extendable, so

the user can write an own plugin, track own metrics and create customize dashboard. It

supports the cluster monitoring also, but it has limitation to not providing the suggestions

based on historical data, unable to capture traces and dump during issue arisen.

Sensu also includes APM monitoring tool which is programmed with Ruby which uses

RabbitMQ. It is the one of the best cloud monitoring solution. RabbitMQ is a central server

which monitors the incoming and out coming flow request. Carbon takes the data from

RabbitMQ and puts it into the graph. Sensu is very simple to use and easy to scalable for

cloud infrastructure, but the main drawback is difficulty to implement and alerting is not as

advanced as it is in another tool like DataDog or Scout.

3. OVERVIEW AND MAIN FEATURES

Most of the available monitoring tools are either doing the event or time-driven based

measuring, but this tool is the combination of both. This tool is working as a time-driven tool

for gold and silver applications, where it monitors the utilization of resources and response

time along with notifying the administrator if any abnormal behavior will be observed during

the production hours.

Event based monitoring tools applies mostly on platinum application, where it monitors

implementation in full time. The administrator is notified if any service goes down and also

when the following happens: hardware consumptions goes above the threshold value, Java

application related issues occurred like thread hung, CPU/Memory starvation and crashing of

JVM. Also adding and subtraction of the hardware resources on-fly if is required.

Page 4: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 575 [email protected]

Figure 1 Overview of monitoring tool

The tool is having s/w agent, which takes care of application specific monitoring. It covers

the standard application control along with client specified additional parameters. Application

control parameters might vary from one server to another based on customer requirements.

On the other hand, we have h/w agent; it is working to monitor the OS parameters, which

should be identical in all the monitored servers.

Below is the step by step process to configure the monitoring using toolkit

1. Categorize the application based on metal classification, either it is decided by client or

based on the functionality or criticality of application.

2. If the application comes under platinum class, then monitor the application 24*7, below are

the s/w agent monitoring parameters outline:

Monitoring based on application specific parameters like application processes, web container

thread utilization, and DB connection Usage.

Monitoring based on patterns and keywords like, CPU starvation, Memory starvation, hung

threads and out of memory etc. is the few sample keywords which are monitored by this tool.

Moreover, it generates the alert after X occurrence of pattern/keyword in Y time of interval.

In the case of any application issue, it will generate the thread dump and copy the application

logs for further analysis and notify the administrator for further investigation.

It can generate the reports based on user requirements, for example, application performance

report, recent configuration change report and application deployment report.

Below is given the h/w agent monitoring parameters outline

Monitoring based on OS specific parameters like CPU and memory utilization, I/O rate and

file system utilization etc.

In case of any OS component issue, tool tries to investigate the issue primarily, and based on

analysis it can assign OS resources on the go (increase file system or memory or swap) to

local zone.

3. If application comes under the gold class, then the tool will be monitoring the application

during the business hours only. However, the monitoring parameters and the resolution would

be the same.

4. If application comes under Silver class, then monitoring rules are identical to gold

application but it will not perform the intelligent task on behalf of administrator like increase

Page 5: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 576 [email protected]

the OS resources on-fly or generate the dumps and collect the logs during problematic time

interval.

So, this tool is the combination of both event and time driven monitoring. It is more than a

monitoring tool which can perform the basic middleware administrative task. It is very simple

to implement and it is flexible enough to modify as per client requirements.

4. ARCHITECTURE AND COMPONENT OF TOOLKIT

The System described in this paper includes five central monitoring components. The

Observer deployed on each VM monitors the application and OS parameters. The Monitor

Manager takes the input from each Observer in the form of XML and stores in the file system.

The Analyzer fetches the stored information, analyzed it and based on the output shares the

information with Dashboard, and if anything is critical from OS perspective, then, it notifies

to Resource Manager. The Dashboard represents the scenic view of application performance

and availability as well as it prompts for any major outage or issue. Lastly, the Resource

Manager comes in the picture if utilization goes beyond the critical limit.

Figure 2 Framework of toolkit

Resource manager is the part of global zone and the multiple zone while the Controller is

a fundamental component of the resource manager. The Controller assists any OS parameter

addition request for a particular local area. The observer is used to demand resources then

send it to Analyzer where application is evaluated and forwarded to the fund manager.

Observer check whether the resource utilization is under the threshold value or not, raises the

flag if it goes beyond limit. The Analyzer inform fund manager if multiple resource use

breaches alerts come for the same local zone in the specified time interval. Analyzer sends the

resource request in the form of xml, which contains the local area name, OS parameter name,

Page 6: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 577 [email protected]

Current Utilization, etc. The controller assigns the resources as per request to make sure the

availability of the system is 24*7.

In the tool, administrator can monitor the application availability, utilization of resources

and fetch the multiple reports using command line utility. It is easy to design, more secure and

fast to access the information, apart from fetching the information, tool notify the alerts to

administrator using mail utility.

In each VM, we need to install the observer which contains two agents, one for

application monitoring and another one is for OS. Below mentioned diagram (Figure 3) shows

the components of Observer and how they communicate with each other to make the tool

functional.

Figure 3 Components of Observer

S/W agent represents the application specific monitoring; it communicates with multiple

modules to gather the application specific control data. For example, fault module monitors

the application related processes and keywords. On the other hand, performance modules

control the response time of implementation and overall performance of a system.

Configuration module monitors the recent configuration changes done in the environment

and so on.

On the other hand, H/W agent represents the OS-specific monitoring; it‟s mainly focused

on primary O.S level control parameters.

4.1. Observer

Observer plays a vital role in our monitoring toolkit. It is a primarily focused on application

monitoring part along with OS resource monitoring. Under application control module or s/w

agent, we have different modules, and each module is having a set of responsibility. The

below points given the brief details for same

4.1.1. Fault

It is a key monitoring module which checks the availability of services and resources. It also

does keyword-based monitoring like full GC/out-of-memory/CPU or memory starvation

errors in logs, based on occurrences. APM tools available as open source generate the alert on

single events, but our tool generates the signal based on “number of incidents”

Page 7: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 578 [email protected]

For example,

Figure 4 Snipped for application monitoring rule

We have FDM which works on client or application specific requirement like taking the

thread /heap dump and clean the file system based on defined rules. For example, if any

JVM goes down after multiple CPU/Thread starvation, then generally administrator gets the

alert for it, and it might be possible that JVM got crashed before capturing the data for

analysis purpose. To avoid such situation, we have FDA, which works on defined rules and

capture the required data for analysis.

4.1.2. Performance

In a web-based application, how to set the performance? In general terms, the response time

of implementation describes the performance. Ideally, the response time of implementation

should lie between 1- 3 sec, but it may vary if load/error rate will be high. If application

performance goes down, then administrator needs to identify the layer which is causing the

poor application performance on multi-layer architecture. Our tool will help to verify the

performance at the middleware layer. It checks the performance of application server

regarding application threads and OS resources like CPU/Memory or swap. Moreover, it will

test the response time from the backend system.

We have PDM, which works on platinum and gold application servers. If OS resource

utilization goes beyond the threshold value and if the pattern remains the same, then based on

rules defined in the tool, it will request for funds from the global zone. On the fly, OS

resources will be assigned from Global zone to Local zone to make sure availability of

application all the time.

PDM send the statistics to Observer and further same will be communicated to the

controller. It is an essential component of resource manager, which manages the OS resources

for global and local zone. Whenever the observer request for an additional resource(s), it send

the Local zone and resource name as prerequisite for the Controller to assign the same.

The controller has the rule to increase the requested resource(s) by 10% by default and

notify the administrator to investigate it further. It is helpful to prevent the outage of

application due to OS resource crunch.

4.1.3. Configuration

To investigate the application related issues, first we need to verify the recent changes that

have been implemented in the environment which might be the reason for the problem. Our

tool scans the application and middleware related configuration files during less traffic hours

on a daily basis.

Page 8: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 579 [email protected]

Another challenge is consistency, how to ensure the changes that have been replicated to

all the nodes of application in distributed environment. There is a possibility that change is

done on one of the nodes and might be failed on other nodes due to h/w or network

unavailability issue. This might lead to the intermittent application related issues.

Through this module, we are achieving two things, first to fetch the recent change report,

that has been performed in the environment and another to make sure that changes have been

done on all the nodes.

4.1.4. Climate Audit Report

Available open source APM tools will not provide the report for review purpose. In any

project, it is critical to maintaining the inventory report as per current infrastructure. In the

current IT world, it is necessary to sustain the latest inventory report which is required to

calculate the support cost/license value. To a great distributed environment, the Infrastructure

changes are frequent, so it is tough to maintain it manually. Our tool will update the inventory

report on weekly basis. Additionally, it will upgrade the OS resources information, server

wise. Apart from application related information, the tool contains the backend system

information and basic network related stuff like VLAN details.

All this information is helpful, while performing disaster recovery (DR) or any

maintenance activity related to application or network.

For example, if network team need to perform any maintenance activity then application

support person should easily find out the impacted applications. It will help to calculate the

risk factor.

Another use of these reports is to calculate the cost of support. Most of the vendors are

having the contract based on some applications or numbers of VM´s are in support.

4.1.5. Security

Before the license expires it is critical to get alert for raising request for a new certificate.

Our tool will help us in achieving this goal by proactively monitoring the license

expiration dates and provide us a weekly report for the same.

4.1.6. Reporting

In this module, the tool generates various reports based on custom requirements. This module

works in conjunction with all the modules as mentioned earlier, and whenever any request got

initiated, based on input, the module will fetch the information from database.

Reports are mainly split into two categories:

a) Daily news: In this module, reports will be carried on a regular basis and send to the

administrator for verification. For example, health checks report or performance report.

b) Ad hoc reporting: In this module, reports get generated based on custom requirement like

particular date range, monitoring module etc. For example, needs to verify the changes

performed in last month.

4.1.7. H/W Agent

It is common for all categories of applications. It checks the OS resource utilization and

communicates to monitor/resource manager based on the output. If resource utilization is

continuously beyond the threshold value, then our tool will trigger the alarm which a resource

manager will review, based on that it will increase the OS resources on-fly.

Page 9: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 580 [email protected]

Ideally, h/w agent monitors the CPU/Memory/file system utilization, disk I/O, system

load average and its usage.

Our tool is very useful to identify the processes consuming more h/w resources and based

on report; it would be easy to determine the process whether it is application owned or OS

process.

5. IMPLEMENTATION OF TOOLKIT

In this section, we are trying to explain the step by step process followed by the tool to

implement the monitoring, capture the traces and further displayed on the dashboard.

Figure 5 Flow of Tool

5.1. Configuration

Firstly, we need to identify the application‟s category, i.e. platinum, gold or silver. In each

server we mentioned two agents; one for s/w and another for hardware. Based on application

category, s/w agent will internally communicate with multiple modules of agents and work

based on Client/application-defined specific rules. For Example, for platinum applications, the

agent will communicate with all the modules of the observer.

The current available open source APM tools can inform the administrator about the

fault/error, but unable to capture the required logs for further analysis purpose. In some

scenarios, the issue might be intermittent and need the manual intervention of administrator to

monitor the logs all the time and capture it when the problem re-occurs. To avoid such

situations, our tool is very helpful. It will obtain the required records based on occurrences of

faults/errors.

Below is given the set of application monitoring components along with threshold value.

Page 10: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 581 [email protected]

Table 1 Configuration directives

5.2. Event Traces

In this section, we describe the personal readable event logs which are getting generated from

the toolkit and stored in flat files for historical purpose.

In any large distributed financial environment, we face two major issues:

1. How to create the single event log for application, which is deployed on distributed

environment.

2. In the distributed environment, how to ensure that timestamp is same on all the servers.

Module Monitoring criteria Applicable Matric Threshold

Fault VM Availability Ping all the VM´s UP/Down

Application processes

Availability

Monitor the processes UP/Down

Keywords based

monitoring on server and

Application logs

Capture the occurrences of

each keywords

Generate alerts if occurred

more than X times in Y

minutes

File System Availability of file space >85% , Generate alerts

DB Connection Make Test Connections UP/Down/Error

Web Application Running STARTED/STOPPED

SMF processes Running Enable/Disable/Maintenanc

e

Performance Network latency Ping between application

server to other component

UP/Down/SNMP Traps

CPU Utilization Check Utilization of All

servers

Generate alerts if

continuous Y minutes

Memory Utilization Check Utilization of All

servers

Generate alerts if

continuous Y minutes

Paging/Swapping Check Utilization of All

servers

Generate alerts if

continuous Y minutes

Configuration Recent changes on

application Config files

Check the application

specific Config files

Generate alert for any

difference

Check for any ownership or

permission miss configured

check the Owner and

permission of Config Files

Generate alert for any

difference

Controller On fly add the OS

resources

Add the OS resources on

fly to make sure the

availability of application

server always

Perform action if

Utilization of resources

>95% for last X mins and

Generate alert also.

Page 11: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 582 [email protected]

In our toolkit, all the monitoring data will be updated in the XML file with a proper time

stamp, and we have the separate file system to store the control data date wise. We have a

different type of records to store the data based on utilization.

Below is an example for data categorization based on the memory utilization

• H/W_<Server Name>_UtilizationReport.xml: All the data.

• H/W_<Server Name>_EventUtilizationReport.xml: Data between 85% and 95%

• H/W_<Server Name>_ControllerReport.xml: Data above 95%

So that if continuous usage is beyond 95%, then controller takes action to prevent any

outage.

5.3. Combined Event Traces

After getting the log instance wise, need to combine them application wise in distributed

environment. To evaluate the application performance, we are collecting the records from

different cases and make the master file in XML for each application. This XML contains the

event information along with performance data.

The XML has two sections, one for overall system information and another one that gives

information instance wise, which is very useful. For example, In Distributed Environment if

any one node is faulty and impacting the overall application performance, then this tool will

analyze the performance parameters, instance wise, and try to find out the failed node.

Below is the snippet of master XML file for ABC application

Figure 5 Snippet of Master Event file

5.4. Event Evaluator

A parser is developed for XML files for application purposes SHELL and PERL scripts is

used to generate the parser.

It reviewed the application performance parameter and based on the logic it will decide

whether the application is healthy or does it require any attention. Apart from checking the

health status, it creates a pattern based on request count and response time. Verifying the

statistics is useful. It is helpful to check any abnormal behavior in the request count and

response time.

Page 12: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 583 [email protected]

Based on historical data, it will create the pattern where it shows the days when some

application load is high on the system. Moreover, it will highlight the days when we need to

put extra precaution based on previous years‟ experience. For example, during the end of the

financial year.

This module is very powerful as all the logic, and pattern identifier works within this and

gives suggestions and application health status application wise.

5.5. Dashboard

The panel takes the data from event evaluator and makes data logs easier for IT staff; it

displays the one liner output to depict the health of the application. To derive the health of an

application, the tool has matrix which consists of both application and OS components. For

different parts, we have the separate rule to calculate the performance.

In the main page itself, it gives the performance report for platinum and gold applications,

but a client can change dashboard data based on requirement. On the other hand, the tool

provides the suggestions /abnormal behavior alert which will attract the administrator‟s

attention.

6. EXAMPLE: MONITORING THROUGH JAPMRMT

In this section, we briefly illustrate how the tool has been used to study performance behavior

of Java based web application. To demonstrate the device‟s functionality, we have taken 5

VM‟s, where we installed the Middleware product along with DB. Results presented are

obtained from experiments in a clustered environment of JBoss to achieve the high

availability. To make the 3 tier architecture it uses the Apache Http Server as a web server

and MySQL as a backend database. On OS parameter perspective, we have taken 2 CPU

cores for each local zone, 2 GB file system dedicated to storing the monitoring data

temporarily along with 4 GB physical memory and 8 GB swap for each local region.

Table 2 Resource Matrix per VM

To verify the monitoring and resource allocation functionality of the tool, we have created

multiple scripts. With the help of shell and Perl scripting language, Multiuser session script is

set up to put more load on the system and verify the performance and bottleneck.

To demonstrate the functionality of Controller, we have simulated the bad programming

or scripting concept, wherein we have created some scripts which will utilize more OS

resources.

Below are the given the statistics of VM resources utilization, when all the scripts

triggered simultaneously.

Resource Zone-wise allocation

CPU 2 Cores

Memory 4 GB

Swap 8 GB

File system 2 GB

Page 13: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 584 [email protected]

Figure 7 Snippet of Master Event file

Above Figure 7 represents the resource management capability of the tool, where it

demonstrate how device checks the utilization of resources and increase it on-demand to make

the functionality available all the time. To simulate this scenario, I have executed some scripts

locally on VM to make resource utilization high. Each line in the graph represents one OS

parameter, and whenever any usage goes beyond the critical threshold, it informs to the

controller for the increment. In above sample data, it depicts that two different OS settings

utilization extends beyond the threshold limit at the same time, and then Controller gets the

request for two separate OS parameters to increment at the same time. The Controller can get

the multiple applications either from the same Local zone or different Local zone at the same

time.

From the Figure 7, we can conclude that using this tool; we can manage the resources for

all local area fall under the same global zone, where this device is deployed.

7. COMPARISON WITH EXISTING TOOLS

Over the last decade, Open source APM tools are improved a lot and become matured enough

to monitor the complex and distributed environments along with real-time monitoring. Like,

financial institutes are distributed geographically and use multi-technology environment and

having hundreds of interfaces which communicates with each other and provide the solution

for customer query. It is always challenging to implement the monitoring for the financial

institute, first of all, we need to understand the interdependency between different interfaces

and then need to place the control for it. Another major challenge is to implement the

monitoring for those modules, which can‟t afford the downtime for example online banking,

trading applications, etc.

There is always a scope to improve the existing monitoring tools, as technologies are

changing quietly rapidly, for instance, m-APM (Mobile application performance monitoring)

and cloud monitoring, this kind of new control requirements always create a possibility to

improve the existing monitoring tools.

Existing open source APM tools are efficient enough to notify the administrator if any

error or fault occurred in the system. Moreover, it highlights if business transactions are

responding slowly. The tool, however, can´t perform the basic admin tasks on behalf of the

administrator. Now, this is a time to move ahead and enhance the tool which works as a

Page 14: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

JAPMRMT: Java Application Performance Monitoring and Resource Mgmt Toolkit

http://www.iaeme.com/IJMET/index.asp 585 [email protected]

combination of observer and executor which means, apart from monitoring it will perform

basic administrator tasks.

In the current scenario, the available APM tools do not have the functionality to generate

the audit report. Our tool has this new feature to maintain the server list along with hardware

resource information and application instances per server. By this function, the device will

eliminate the human error and the manual efforts for maintaining these dynamic reports as

and when required.

8. CONCLUSIONS

Open source APM tools are important research area where scope for improvements are

always possible, as software technologies are changing very fast and there is a parallel need to

enhance the monitoring tools, as well as, to provide more comprehensive and robust control

solution.

Now, it‟s the time to create the fusion of monitor, evaluator, and executor to address the

application related concerns in more structured manner. To achieve the evaluator and executor

slice, we have implemented some new components to make the same, i.e. audit report,

certificate renewal report and configuration change report, etc.

It is the flinch to mark the application monitoring tools more controlling and intelligent to

start restorative the use issues by own.

Making things better and more users friendly is of great importance; our toolkit is

developed on Linux (OS) and having S/W and H/W limitations. Also, the tool didn‟t have a

mobile interface and the cloud solution which we take care in future releases. I will try to

make the machine intact with the new technologies so that the tool will be at par.

REFERENCES

[1] ComLab Website (2006) „Tools for modeling the user-traffic‟ [Online], Available:

[2] http://www.comlab.uni-rostock.de/research/tools.html [Accessed August 2006]

[3] Gaglio, S., Gatani, L., Lo Re, G. and Urso, A. (2006) „A Logical Architecture for Active.

[4] Network management‟ Journal of Network and Systems Management, vol. 14, No. 1,

pp127-146.

[5] Marcel Harkema, Dick Quartel, Rob van der Mei and Bart Gijsen (2003) „JPMT: A Java

Performance Monitoring Tool‟[Online],

Available:www.researchgate.net/publication/228794149.

[6] Liska, A. (2003) The Practice of Network Security: Deployment Strategies for Production.

[7] Environments, Prentice Hall, New Jersey, ISBN: 0-13-046223-3.

[8] V.C.Asiwe and P.S.Dowland(2007) „Implementing Network Monitoring Tools‟

[9] Tom Demers (2014) „Application Performance Management Tools‟[Online], Available:

[10] https://blog.profitbricks.com/application-performance-management-tools/

[11] Object Management Group, The Common Object Request Broker: Architecture and

Specification, revision 2.5, OMG document formal/2001-09-01, 2001.

[12] 8). R, Jain, The Art of Computer Systems Performance Analysis: Techniques for

Experimental Design, Measurement, Simulation, and Modeling, John Wiley & Sons,

1991.

Page 15: JAPMRMT: JAVA APPLICATION PERFORMANCE MONITORING …€¦ · The limitation of the existing Application Monitoring (APM) tools follow reactive approach that provides information about

Shashank Kumar Mishra, Manjula R

http://www.iaeme.com/IJMET/index.asp 586 [email protected]

[13] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, W.G. Griswold, An Overview

of

[14] AspectJ, 15th European Conference on Object-Oriented Programming (ECOOP), 2001.

[15] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J. Loingtier, J. Irwin,

[16] Aspect-Oriented Programming, 11th European Conference on Object-Oriented

Programming

[17] (ECOOP), 1997.

[18] http://sandhill.com/article

[19] http://www.nagios.com

[20] http://shalb.com/en/spae/spae_features/

[21] http://www.infoworld.com/article/2683857/network-monitoring/article.html#slide3

[22] https://en.wikipedia.org/wiki/Icinga

[23] http://www.observium.org/

[24] https://vaadin.com/blog/-/blogs/monitoring-your-vaadin-apps-with-stagemonitor

[25] https://sensuapp.org/

[26] http://rancher.com/comparing-monitoring-options-for-docker-deployments/