Creación de una PMI personalizada mediante StatsFactory

Puede actualizar la aplicación para que llame a los métodos definidos utilizando una plantilla Stats/PMI (Performance Monitoring Infrastructure), un paquete de recursos, un módulo Stats/PMI y métodos para actualizar las estadísticas personalizadas.

Acerca de esta tarea

Puede actualizar la aplicación para que llame a los métodos definidos utilizando una plantilla Stats/PMI, un paquete de recursos, un módulo Stats/PMI y métodos para actualizar las estadísticas personalizadas. El proceso siguiente es necesario para instrumentar un componente utilizando una PMI personalizada:
  • Defina una plantilla Stats/PMI (archivo xml).
  • Defina un paquete de recursos (archivo de propiedades).
  • Defina un módulo Stats/PMI y crea un objeto Stats/PMI utilizando StatsFactory.
  • Defina los métodos que utilizará la aplicación para actualizar las estadísticas personalizadas.
  • Actualice la aplicación para que llame a métodos (definidos en el paso anterior) correctamente.
  • Acceda a la aplicación.
  • Conéctese a Tivoli Performance Viewer (TPV) y consulte las estadísticas de la PMI personalizada.

Procedimiento

  1. Defina la plantilla Stats/PMI. StatsFactory permite que un componente de ejecución crea un módulo Stats/PMI personalizado mediante una plantilla XML. La plantilla debería seguir la DTD com/ibm/websphere/pmi/xml/stats.dtd. A continuación se muestra un ejemplo de una plantilla utilizada en una aplicación de muestra.
    <?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. Defina el paquete de recursos El paquete de recursos le permite definir el nombre de las estadísticas y su descripción en el texto/idioma adecuados. A continuación se muestra un paquete de recursos de ejemplo:
    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. Defina un módulo Stats/PMI y crea un objeto Stats/PMI utilizando StatsFactory.
    1. Crea una clase que amplíe StatisticActions
      public class MyStatisticsModule extends StatisticActions 
    2. Declare las variables de recuento del tipo SPI*, por ejemplo SPICountStatistc y SPIBoundedRangeStatistic.
      private SPICountStatistic           numReqs;
      		private SPIBoundedRangeStatistic    expensiveStat;
    3. Cree un grupo de estadísticas del tipo StatsGroup y una instancia de estadísticas del tipo 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);
      La plantilla (template) es la vía de acceso a la aplicación donde se encuentra el archivo xml; por ejemplo:
      String template = "/com/stats/MyStats.xml";
  4. Una vez que se hayan creado las estadísticas en la instancia de estadísticas, se llama a statisticCreated para indicar que se ha creado una estadística en la instancia de estadísticas (Stats). Puede asignar estadísticas citadas anteriormente a la estadística adecuada; por ejemplo:
    public void statisticCreated (SPIStatistic s) {
      // Se llama cuando se crean estadísticas en la instancia de estadísticas
    
      	if (s.getId() == MyStats.NUMREQS)
      {
        	numReqs = (SPICountStatistic)s;	   // Asignar estadísticas
      }
    }
  5. Defina los métodos que utilizará la aplicación para actualizar las estadísticas personalizadas.
    public void onRequestArrival(){
      	if (numReqs != null)
      {
        numReqs.increment();   // Aumentar/reducir estadísticas por solicitud
      }
    }
  6. También puede implementar el método updateStaisticRequest para actualizar las estadísticas de una solicitud concreta que haya realizado un cliente o cualquier otra aplicación de supervisión.
    public void updateStatisticOnRequest (int dataId) {
      if (dataId == MyStats.expensiveStat)
      {
        		expensiveStat.set(xxxxx);        
      }
    }	
    En el ejemplo anterior, dataId sería el ID de las estadísticas que se actualizarán.
  7. Actualice la aplicación para que llame a métodos (definidos en los pasos anteriores) correctamente.
  8. Acceda a la aplicación.
  9. Conéctese a Tivoli Performance Viewer y consulte las estadísticas de la PMI personalizada.
    Avoid trouble Avoid trouble: Cuando un PMI personalizado se implementa en un entorno de despliegue de red, es posible que no pueda ver los contadores de PMI personalizados porque el archivo Stats/PMI xml y el archivo de propiedades de paquete de recursos no son visibles para el cargador de clases de WebSphere Application Server. El archivo Stats/PMI.xml y el archivo de propiedades de paquete de recursos están presentes dentro de la aplicación. Para poder ver los contadores de PMI personalizados, debe colocar el archivo Stats/PMI.xml y el archivo de propiedades de paquete de recursos en la vía de acceso de clase.
    Puede hacer que los contadores de PMI personalizados sean visibles mediante creando un archivo jar con la estructura de archivos siguiente del archivo Stats/PMI.xml y el archivo de propiedades de paquete de recursos y colocándolos en la carpeta WAS_HOME\lib\ext . A continuación, los contadores de PMI personalizados están visibles para el cargador de clases.
    com/ibm/app/temp/tempstats.xml        --- vía de acceso al archivo Stats/PMI.xml
    com/ibm/app/temp/resourcebundle.props --- vía de acceso al archivo de propiedades del paquete de recursos
    gotcha

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprf_stats_pmi
File name: tprf_stats_pmi.html