Configure PMI using wsadmin
Use wsadmin.sh to configure the Performance Monitoring Infrastructure (PMI) in the environment. PMI enables the server to collect performance data from various product components. PMI provides information about average system resource usage statistics, with no correlation between the data across different components.
There are two ways to perform this task. Complete the steps in this topic to use the AdminConfig object to modify the server configuration. Alternatively, we can use the configurePerformanceMonitoringService Jython script in the AdminServerManagement script library to configure PMI. The wsadmin tool automatically loads the script when the tool starts. Use the following syntax to configure PMI settings using the configurePerformanceMonitoringService script:
AdminServerManagement.configurePerformanceMonitoringService(nodeName, serverName, enable, initialSpecLevel, otherAttributeList)
For additional information and argument definitions, see the documentation for the AdminServerMananagment script library.
- Start the wsadmin scripting tool.
- Identify the application server of interest.
Use the AdminConfig object and the getid command to retrieve the configuration ID of the application server of interest, and assign it to the s1 variable:
- Jacl:
set s1 [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
- Jython:
s1 = AdminConfig.getid('Cell:mycell/Node:mynode/Server:server1/')
Example output:
Element Description set Jacl command s1 Variable name $ Jacl operator for substituting a variable name with its value AdminConfig Object representing the product configuration getid AdminConfig command Cell Attribute mycell Value of the Cell attribute Node Attribute mynode Value of the Node attribute Server Attribute server1 Value of the Server attribute server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
- Identify the PMI service that belongs to the server.
Use the AdminConfig object and the list command to identify the PMI service, and assign it to the pmi variable:
- Jacl:
set pmi [$AdminConfig list PMIService $s1]
- Jython:
pmi = AdminConfig.list('PMIService', s1) print pmi
Example output:
Element Description set Jacl command pmi Variable name $ Jacl operator for substituting a variable name with its value AdminConfig Object that represents the application server configuration list AdminConfig command PMIService AdminConfig object s1 Evaluates to the ID of the application server of interest (cells/mycell/nodes/mynode/servers/server1|server.xml#PMIService_1)
- Modify the PMI configuration attributes.
Use the AdminConfig object and the modify command to modify the PMI configuration attributes:
- Jacl:
$AdminConfig modify $pmi {{enable true} {statisticSet all}}
- Jython:
AdminConfig.modify(pmi, [['enable', 'true'], ['statisticSet','all']]
This example enables PMI service and sets the specification levels for all of the components in the server.
Important: The specification levels are case-sensitive values.
of specification levels. The following specification levels
Specification level Description none No statistics are enabled. basic Statistics specified in Java Enterprise Edition (Java EE), as well as top statistics like CPU usage and live HTTP sessions are enabled. This set is enabled out-of-the-box and provides basic performance data about runtime and application components. (iseries)(dist) extended Basic set plus key statistics from various application server components like WLM, and dynamic caching are enabled. This set provides detailed performance data about various runtime and application components. (zos) extended Basic set plus key statistics from various application server components like dynamic caching are enabled. This set provides detailed performance data about various runtime and application components. all All statistics are enabled. custom Enable or disable statistics selectively.
- Save the configuration changes.
Use the following command example to save the configuration changes:
AdminConfig.save()
- In a network deployment environment only, synchronize the node.
Use the syncActiveNode or syncNode scripts in the AdminNodeManagement script library to propagate the configuration changes to node or nodes.
- Use the syncActiveNodes script to propagate the changes to each node in the cell:
AdminNodeManagement.syncActiveNodes()
- Use the syncNode script to propagate the changes to a specific node:
AdminNodeManagement.syncNode("myNode")
Related tasks
Enable PMI using the administrative console Use the wsadmin scripting AdminConfig object for scripted administration
Performance Monitoring Infrastructure settings Server settings configuration scripts Node administration scripts Commands for the AdminConfig object