使用 StatsFactory 创建定制 PMI

可以更新应用程序,以调用使用 Stats/PMI(性能监控基础结构)模板、资源束、Stats/PMI 模块和方法定义的方法,从而更新定制统计信息。

关于此任务

可以更新应用程序,以调用使用 Stats/PMI 模板、资源束、Stats/PMI 模块和方法定义的方法,从而更新定制统计信息。要使用定制 PMI 检测组件,需要执行以下过程:
  • 定义 Stats/PMI 模板(XML 文件)。
  • 定义资源束(属性文件)。
  • 定义 Stats/PMI 模块,并使用 StatsFactory 创建 Stats/PMI 对象。
  • 定义应用程序将用于更新定制统计信息的方法。
  • 更新应用程序以对(上述步骤中定义的)方法进行相应的调用。
  • 访问应用程序。
  • 连接至 Tivoli Performance Viewer (TPV) 并查看定制 PMI 统计信息。

过程

  1. 定义 Stats/PMI 模板。 StatsFactory 使运行时组件可以使用 XML 模板来创建定制 Stats/PMI 模块。该模板应遵循 DTD com/ibm/websphere/pmi/xml/stats.dtd。以下是样本应用程序中使用的模板的示例。
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE Stats SYSTEM "stats.dtd">
    
    <Stats type="com.stats.MyStats">
       <description>MyStats.desc</description>
       <resourceBundle>com.stats.MyStatsResourceBundle</resourceBundle>
    
      <CountStatistic ID="1" name="MyStats.NumRequests">
        <level>low</level>
        <unit>MyStats.unit.none</unit>
        <description>MyStats.NumRequests.desc</description>   
        <statisticSet>basic</statisticSet>             
      </CountStatistic>
    
      <BoundedRangeStatistic ID="2" name="MyStats.expensiveStat ">
        <level>high</level>
        <unit>MyStats.unit.none</unit>
        <description>MyStats.expensiveStat.desc</description>
        <updateOnRequest>true</updateOnRequest>        
      </BoundedRangeStatistic>    
    </Stats>
  2. 定义资源束 资源束使您可以用适当的语言/措辞来定义统计信息的名称及其描述。样本资源束一般类似于以下内容:
    MyStats.desc=My View PMI Module
    
    MyStats.NumRequests=Request Count
    MyStats.NumRequests.desc=Total number of My view requests served. 
    MyStats.unit.none=None
    
    MyStats.expensiveStat = Expensive Stat
    MyStats. expensiveStat.desc = Number of Expensive stats 
    
    MyStats.Group= My Group
    MyStats.Instance=My Instance 
  3. 定义 Stats/PMI 模块,并使用 StatsFactory 创建 Stats/PMI 对象。
    1. 创建扩展 StatisticActions 的类
      public class MyStatisticsModule extends StatisticActions 
    2. 声明类型为 SPI* 的计数变量,例如 SPICountStatistc 和 SPIBoundedRangeStatistic。
      private SPICountStatistic           numReqs;
      		private SPIBoundedRangeStatistic    expensiveStat;
    3. 创建类型为 StatsGroup 的 StatsGroup 以及类型为 StatsInstance 的 StatsInstance。
      private static StatsGroup stocksStatisticsGroup = null;
      		private StatsInstance stocksStatistics = null;
      
      MyStatisticsGroup = StatsFactory.createStatsGroup("MyStats.Group", template, null);
      MyStatistics = StatsFactory.createStatsInstance("MyStats.Instance”,MyStatisticGroup,null,this);
      其中 template 是应用程序中 XML 文件所在的路径;例如:
      String template = "/com/stats/MyStats.xml";
  4. 在 StatsInstance 中创建统计信息后,将调用 statisticCreated 以指示已在 Stats 实例中创建统计信息。可以将先前声明的统计信息指定给相应的统计信息;例如:
    public void statisticCreated (SPIStatistic s) {
      // Called when the Statistics are created in the Stats Instance
    
      	if (s.getId() == MyStats.NUMREQS)
      {
        	numReqs = (SPICountStatistic)s;	   // Assign Statistic 
      }
    }
  5. 定义应用程序将用于更新定制统计信息的方法。
    public void onRequestArrival(){
      	if (numReqs != null)
      {
        numReqs.increment();   // Increment/Decrement Statistic as per Req
      }
    }
  6. 还可以实现 updateStaisticRequest 方法,以更新客户机或任何其他监视应用程序的特定请求的相关统计信息。
    public void updateStatisticOnRequest (int dataId) {
      if (dataId == MyStats.expensiveStat)
      {
        		expensiveStat.set(xxxxx);        
      }
    }	
    在先前的例中,dataId 是将更新的统计信息的标识。
  7. 更新应用程序以对(先前步骤中定义的)方法进行相应的调用。
  8. 访问应用程序。
  9. 连接 Tivoli Performance Viewer 并查看定制 PMI 统计信息。
    避免故障 避免故障: 在 Network Deployment 环境中实现定制 PMI 时,可能无法查看定制 PMI 计数器,因为 Stats/PMI.xml 文件和资源束属性文件对于 WebSphere Application Server 类装入器来说不可视。Stats/PMI.xml 文件和资源束属性文件存在于应用程序中。需要将 Stats/PMI.xml 文件和资源束属性文件放入类路径中,才能查看定制 PMI 计数器。
    要使定制 PMI 计数器可视,请使用下列文件结构创建包含 Stats/PMI.xml 文件和资源束属性文件的 JAR 文件,并将其放入 WAS_HOME\lib\ext 文件夹。定制 PMI 计数器即对类装入器可视。
    com/ibm/app/temp/tempstats.xml        --- path of the Stats/PMI.xml
    com/ibm/app/temp/resourcebundle.props --- path of the resource bundle property file
    gotcha

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprf_stats_pmi
文件名:tprf_stats_pmi.html