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.
PMI is, by default, enabled on the WebSphere server and set to collect the performance metrics used by Uptime Infrastructure Monitor. However, before Uptime Infrastructure Monitor can start collecting information from a WebSphere server, the performance servlet must be deployed in the WebSphere directory that contains your web application.
Per EJB
The following metrics are collected per Enterprise JavaBean (EJB) on a WebSphere server:
Metric | Explanation | Module |
CreateCount | The number of times that the Enterprise JavaBeans that are running on the server were created. | beanModule.creates |
RemoveCount | The number of times that the EJBs were removed. | beanModule.removes |
PassivateCount | The number of times that EJBs were removed from the cache. Note that passivation preserves the state of the EJBs on the disk. | beanModule.passivates |
MethodCallCount | The total number of method calls that were made to the EJBs. | beanModule.activates |
MethodResponseTime | The average response time, in milliseconds, on the bean methods. | beanModule.avgMethodRt |
Per Connection Pool
The following metrics are collected per connection pool on a WebSphere server:
ConnectionPoolSize | The size of the connection pool to the data source. | connectionPoolModule.poolSize |
FreePoolSize | The number of free connections in the pool. | connectionPoolModule.freePoolSize |
PercentUsed | The percentage of the connection pool that is currently in use. | connectionPoolModule.percentUsed |
WaitTime | The average 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 |
CloseCount | The total number of connections that were closed. | connectionPoolModule.numDestroys |
ConnectionPoolCount | The total number of connections that were created. | connectionPoolModule.numDestroys |
WaitingThreadCount | The number of threads that are currently waiting for a connection. | |
UseTime | The average 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 that time at which it is returned. | Module.useTime |
Other
The following metrics are collected from the WebSphere system, the Java Virtual Machine, the thread pool, or servlets:
CPUUsage | The percent of CPU resources that were used since the last query. | systemModule.avgCpuUtilization |
HeapSize | The total amount of memory that is available for the Java Virtual Machine (JVM). | jvmRuntimeModule.totalMemory |
UsedMemory | The amount of memory that is being used by the JVM. | jvmRuntimeModule.usedMemory |
ActiveCount | The number of threads which are concurrently active. | threadPoolModule.activeThreads |
CommittedCount | The total number of global transactions that have been committed. | transactionModule.globalTransCommitted |
RolledBackCount | The total number of global transactions that have been rolled back. | transactionModule.globalTransRolledBack |
LiveCount | The number of servlet sessions that are currently cached in memory. | servletSessionsModule.liveSessions |
TimeSinceLastActivated | The difference, 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 |
ServletPoolSize | The average number of threads in the servlet connection thread pool. |
To deploy the performance servlet:
On the WebSphere server, locate the following file:
[install_root]/perfServletApp.ear
Where:
[install_root]
is the directory under which WebSphere is installed.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:
[install_root]
is the directory under which WebSphere is installed.[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 to be monitored by Uptime Infrastructure Monitor.
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 Uptime Infrastructure Monitor attempts to connect to the servlet to collect metrics:
- In the WebSphere management console, modify the following settings:
- Under Security - Secure administration, applications, and infrastructure: turn Application Security on.
- Under Enterprise Applications - perfServletApp - Security role to user / group mapping: turn Everyone off.
- Restart the server. Uptime Infrastructure Monitor should now be able to connect to the servlet and gather performance metrics.