(Dist) Example: Implementing custom PMI
The following diagram shows the custom PMI environment:
The following steps are required to instrument an application using Custom PMI:
- Define a Stats module template. An XML document is used to define a set of statistics for a given application component. This XML document is used as a template to create the PMI data. The XML document should follow the DTD WAS_HOME/plugins\com.ibm.ws.runtime.jar\com\ibm\websphere\pmi\xml\perf.dtd file.
- Create a Stats object using StatsFactory. The StatsFactory is used to create an instance (StatsInstance) or group (StatsGroup) of the Stats template. The StatsInstance object represents a single instance of the Stats template and contains all the statistics defined in the template. The StatsGroup is a logical collection of similar Stats instances. Custom PMI provides the flexibility to arrange the groups and instances in a tree structure.
The previous illustration shows two instances of stock applications that are grouped under a StockAppStats group. The StockAppStats group can have multiple Stock applications, and each Stock application instance can have a StockBroker group. In this case, the StockAppStats group aggregates the statistics from StockApp1 and StockApp2, and the StockBroker group aggregates the statistics from all the StockBroker instances in their respective groups.
- Instrument the application by updating the Stats object. To instrument, the application should call the Stats module for PMI service to maintain the raw counts. For example, to instrument the number of sells processed by the Stock application, create a Stats module with a statistic of type CountStatistic. When a sell transaction is processed, increment the number of sells statistic by calling: NumSellsCountStatistic.increment ();
Use command-line tools