Création de PMI personnalisé à l'aide de StatsFactory

Vous pouvez personnaliser votre application pour appeler des méthodes définies à l'aide d'un modèle Stats/PMI (Performance Monitoring Infrastructure), d'un regroupement de ressources, d'un module Stats/PMI et de méthodes de mise à jour de statistiques personnalisées.

Pourquoi et quand exécuter cette tâche

Vous pouvez personnaliser votre application pour appeler des méthodes définies à l'aide d'un modèle Stats/PMI, d'un regroupement de ressources, d'un module Stats/PMI et de méthodes de mise à jour de statistiques personnalisées. Le processus suivant est requis pour instrumenter un composant à l'aide d'un PMI personnalisé :
  • Définissez un modèle Stats/PMI (fichier xml).
  • Définissez le regroupement de ressources (fichier de propriétés).
  • Définissez le module Stats/PMI et créez l'objet Stats/PMI à l'aide de StatsFactory.
  • Définissez des méthodes que votre application va utiliser pour mettre à jour les statistiques personnalisées.
  • Mettez à jour votre application pour appeler les méthodes (définies à l'étape précédente) de manière appropriée.
  • Accédez à l'application.
  • Connectez-vous à Tivoli Performance Viewer (TPV) et affichez les statistiques PMI personnalisées.

Procédure

  1. Définissez le modèle Stats/PMI. StatsFactory permet à un composant d'exécution de créer un module personnalisé Stats/PMI à l'aide d'un modèle XML. Le modèle doit suivre le fichier DTD com/ibm/websphere/pmi/xml/stats.dtd. L'exemple suivant présente un modèle utilisé dans un modèle d'application.
    <?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. Définissez le regroupement de ressources Le regroupement de ressources vous permet de définir le nom de la statistique et sa description en utilisant le langage/les mots appropriés. Un modèle de regroupement de ressources doit ressembler à ceci :
    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. Définissez le module Stats/PMI et créez l'objet Stats/PMI à l'aide de StatsFactory.
    1. Créez une classe qui étend StatisticActions
      public class MyStatisticsModule extends StatisticActions 
    2. Déclarez les variables de compteur du type SPI*, telles que SPICountStatistc et SPIBoundedRangeStatistic.
      private SPICountStatistic           numReqs;
      	private SPIBoundedRangeStatistic    expensiveStat;
    3. Créez un groupe StatsGroup de type StatsGroup et une instance StatsInstance de type 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);
      Le modèle correspond au chemin dans l'application dans lequel se trouve le fichier XML. Par exemple :
      String template = "/com/stats/MyStats.xml";
  4. Une fois que les statistiques sont créées dans StatsInstance, statisticCreated est appelé pour indiquer qu'une statistique est créée dans l'instance Stats. Vous pouvez affecter les statistiques déclarées précédemment à la statistique appropriée ; par exemple :
    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. Définissez des méthodes que votre application va utiliser pour mettre à jour les statistiques personnalisées.
    public void onRequestArrival(){
      if (numReqs != null)
      {
        numReqs.increment();   // Increment/Decrement Statistic as per Req
      }
    }
  6. Vous pouvez également implémenter la méthode updateStaisticRequest pour mettre à jour les statistiques sur une demande spécifique effectuée par le client ou toute autre application de contrôle.
    public void updateStatisticOnRequest (int dataId) {
      if (dataId == MyStats.expensiveStat)
      {
        expensiveStat.set(xxxxx); 
      }
    }	
    Dans l'exemple b, dataId représente l'ID de la la statistique qui doit être mise à jour.
  7. Mettez à jour votre application pour appeler les méthodes (définies aux étapes précédentes) de manière appropriée.
  8. Accédez à l'application.
  9. Connectez Tivoli Performance Viewer et affichez les statistiques personnalisées.
    Eviter les incidents Eviter les incidents: Lorsqu'une infrastructure PMI personnalisée est implémentée dans un environnement de déploiement réseau, il est possible que vous ne puissiez pas afficher les compteurs de l'infrastructure PMI personnalisée du fait que le fichier XML Stats/PMI et le fichier de propriétés de bundle de ressources ne sont pas visibles au chargeur de classe WebSphere Application Server. Le fichier Stats/PMI.xml et le fichier de propriétés de bundle de ressources sont présents dans l'application. Pour pouvoir afficher les compteurs de l'infrastructure PMI personnalisée, vous devez placer le fichier Stats/PMI.xml et le fichier de propriétés de bundle de ressources dans le chemin d'accès aux classes.
    Pour que les comptes de l'infrastructure PMI personnalisée soient visibles, créez un fichier JAR avec la structure de fichier suivante du fichier XML Stats/PMI.xml et du fichier de propriétés de bundle de ressources et en le plaçant dans le dossier WAS_HOME\lib\ext. Les compteurs de l'infrastructure PMI personnalisée sont alors visibles pour le chargeur de classe.
    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

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprf_stats_pmi
Nom du fichier : tprf_stats_pmi.html