The Uptime Infrastructure Monitor WebSphere performance servlet uses WebSphere's Performance Monitor Interface (PMI) infrastructure to retrieve performance information from a WebSphere web application server, which it then saves to an XML file.

By default, PMI is enabled on the WebSphere server and set to collect the performance metrics used by UIM. However, before UIM can start collecting information from a WebSphere server, the performance servlet must be deployed in the WebSphere directory that contains your web application. 

Metrics collected per EJB

The following metrics are collected per Enterprise JavaBean (EJB) on a WebSphere server.

MetricDescriptionModule
CreateCountNumber of times that the Enterprise JavaBeans that are running on the server were created.beanModule.creates
RemoveCountNumber of times that the EJBs were removed.beanModule.removes
PassivateCountNumber of times that EJBs were removed from the cache. Note that passivation preserves the state of the EJBs on the disk.beanModule.passivates
MethodCallCountTotal number of method calls made to the EJBs.beanModule.activates
MethodResponse TimeAverage response time, in milliseconds, on the bean methods.beanModule.avgMethodRt

Metrics collected per connection pool

The following metrics are collected per connection pool on a WebSphere server.

MetricDescriptionModule
ConnectionPoolSizeSize of the connection pool to the data source.connectionPoolModule.poolSize
FreePoolSizeNumber of free connections in the pool.connectionPoolModule.freePoolSize
PercentUsedPercentage of the connection pool currently in use.connectionPoolModule.percentUsed
WaitTimeAverage time, in milliseconds, that a connection is used. The average time is the difference between the time at which the connection is allocated and the time at which it is returned.    connectionPoolModule.avgWaitTime
CloseCountTotal number of connections closed.connectionPoolModule.numDestroys
ConnectionPoolCountTotal number of connections created.connectionPoolModule.numDestroys
WaitingThreadCountNumber of threads currently waiting for a connection.
UseTimeAverage time, in milliseconds, that a connection is used. The average use time is the difference between the time at which the connection is allocated and the time at which it is returned.    module.useTime

Metrics collected by other means

The following metrics are collected from the WebSphere system, the Java Virtual Machine, the thread pool, or servlets.

MetricDescriptionModule
CPUUsagePercent of CPU resources used since the last query.systemModule.avgCpuUtilization
HeapSizeTotal amount of memory available for the Java Virtual Machine (JVM).jvmRuntimeModule.totalMemory
UsedMemoryAmount of memory used by the JVM.jvmRuntimeModule.usedMemory
ActiveCountNumber of currently active threads.threadPoolModule.activeThreads
CommittedCountTotal number of committed global transactions.transactionModule.globalTransCommitted
RolledBackCountTotal number of global transactions rolled back.transactionModule.globalTransRolledBack
LiveCountNumber of servlet sessions currently cached in memory.servletSessionsModule.liveSessions
TimeSinceLastActivatedDifference, in milliseconds, between the previous and current access time stamps of a servlet session. This counter does not include session time out values.servletSessionsModule.timeSinceLastActivated
ServletPoolSizeAverage number of threads in the servlet connection thread pool.

To deploy the performance servlet

  1. On the WebSphere server, locate the following file:
    [install_root]/perfServletApp.ear
    where [install_root] is the directory under which WebSphere is installed.
  2. Copy the perfServletApp.ear file to the directory in which your web application is installed. For example:
    [install_root]/installedApps/
    [cell_name]/DefaultApplication.ear/DefaultApplication.war/WEB-INF/classes
    where:
    1. [install_root] is the directory under which WebSphere is installed.
    2. [cell_name] is the name of the WebSphere node under which your Web application is installed.

The above steps must be completed for each Web application server that you want monitored by UIM.

If you are using WebSphere Application Server version 6, you will need to change two settings in the WebSphere management console to avoid an Access Denied error when UIM attempts to connect to the servlet to collect metrics:

  1. In the WebSphere management console, modify the following settings:
    1. Under Security - Secure administration, applications, and infrastructure. Turn on Application Security.
    2. Under Enterprise Applications - perfServletApp - Security role to user / group mapping. Turn off Everyone.
  2. Restart the server. UIM should now be able to connect to the servlet and gather performance metrics.
  • No labels