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.
Metric | Description | Module |
---|---|---|
CreateCount | Number of times that the Enterprise JavaBeans that are running on the server were created. | beanModule.creates |
RemoveCount | Number of times that the EJBs were removed. | beanModule.removes |
PassivateCount | 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 | Total number of method calls made to the EJBs. | beanModule.activates |
MethodResponse Time | Average 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.
Metric | Description | Module |
---|---|---|
ConnectionPoolSize | Size of the connection pool to the data source. | connectionPoolModule.poolSize |
FreePoolSize | Number of free connections in the pool. | connectionPoolModule.freePoolSize |
PercentUsed | Percentage of the connection pool currently in use. | connectionPoolModule.percentUsed |
WaitTime | 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 | Total number of connections closed. | connectionPoolModule.numDestroys |
ConnectionPoolCount | Total number of connections created. | connectionPoolModule.numDestroys |
WaitingThreadCount | Number of threads currently waiting for a connection. | |
UseTime | 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 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.
Metric | Description | Module |
---|---|---|
CPUUsage | Percent of CPU resources used since the last query. | systemModule.avgCpuUtilization |
HeapSize | Total amount of memory available for the Java Virtual Machine (JVM). | jvmRuntimeModule.totalMemory |
UsedMemory | Amount of memory used by the JVM. | jvmRuntimeModule.usedMemory |
ActiveCount | Number of currently active threads. | threadPoolModule.activeThreads |
CommittedCount | Total number of committed global transactions. | transactionModule.globalTransCommitted |
RolledBackCount | Total number of global transactions rolled back. | transactionModule.globalTransRolledBack |
LiveCount | Number of servlet sessions currently cached in memory. | servletSessionsModule.liveSessions |
TimeSinceLastActivated | 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 | Average number of threads in the servlet connection thread pool. |
To deploy the performance servlet
- On the WebSphere server, locate the following file:where [install_root] is the directory under which WebSphere is installed.
[install_root]/perfServletApp.ear
- Copy the perfServletApp.ear file to the directory in which your web application is installed. For example:where:
[install_root]/installedApps/ [cell_name]/DefaultApplication.ear/DefaultApplication.war/WEB-INF/classes
- [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 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:
- In the WebSphere management console, modify the following settings:
- Under Security - Secure administration, applications, and infrastructure. Turn on Application Security.
- Under Enterprise Applications - perfServletApp - Security role to user / group mapping. Turn off Everyone.
- Restart the server. UIM should now be able to connect to the servlet and gather performance metrics.