Activation de PMI à l'aide de l'outil wsadmin
Utilisez cette page pour apprendre comment activer PMI (Performance Monitoring Infrastructure) avec la ligne de commande au lieu de la console d'administration.
Pourquoi et quand exécuter cette tâche
Procédure
Les opérations suivantes effectuées dans Perf MBean peuvent être lancées dans wsadmin :
/** Récupérer les données des statistiques de performances */
public void getConfig (ObjectName mbean);
/** Récupérer l'ensemble de statistiques en cours */
public void getStatisticSet ();
/ ** Activer les données PMI utilisant les jeux de statistiques prédéfinis.
Les valeurs valides de l'ensemble de statistiques sont "basic", "extended", "all" et "none" */
public void setStatisticSet (String statisticSet);
/ ** Retourne la spécification d'ensemble personnalisé en cours sous forme d'une chaîne */
public void getCustomSetString ();
/ ** Personnalisation des données PMI activées par un contrôle détaillé.
Cette méthode permet d'activer ou de désactiver des statistiques sélectivement.
Le format de la chaîne de spécification de l'ensemble personnalisé est STATS_NAME=ID1,ID2,ID3 séparé par ":", STATS_NAME et ID sont définis dans les interfaces WS*Stat du module com.ibm.websphere.pmi.stat.
Utilisez * pour activer toutes les statistiques du module PMI donné. Par exemple, pour activer toutes les statistiques de la JVM ainsi que la taille du pool des unités d'exécuter, indiquez jvmRuntimeModule=*:threadPoolModule=3,4.
La chaîne jvmRuntimeModule est la valeur de la constante WSJVMStats.NAME, tandis que threadPoolModule est la valeur de WSThreadPoolStats.NAME.
*/
public void setCustomSetString (String customSpec, Boolean recursive);
/** Récupérer les données d'un MBean */
public void getStatsObject (ObjectName mbean, Boolean recursive);
/** Définissez le niveau d'instrumentation avec le format String
Pour faciliter le traitement de String, le scriptage doit être utilisé.
La chaîne de niveaux est une liste moduleName=Level connectée par ":".
REMARQUE : L'utilisation de cette méthode est déconseillée dans la version 6.0
*/
public void setInstrumentationLevel(String levelStr, Boolean recursive);
/** Obtenez le niveau d'instrumentation dans String pour tous les modules de niveau supérieur
Pour faciliter le traitement de String, le scriptage doit être utilisé.
REMARQUE : L'utilisation de cette méthode est déconseillée dans la version 6.0
*/
public String getInstrumentationLevelString();
/** Renvoyez les données PMI dans String
REMARQUE : L'utilisation de cette méthode est déconseillée dans la version 6.0
*/
public String getStatsString(ObjectName on, Boolean recursive);
/** Renvoyez les données PMI dans String
Utilisé pour les modules/sous-modules PMI sans mappages de MBean directs.
REMARQUE : L'utilisation de cette méthode est déconseillée dans la version 6.0
*/
public String getStatsString(ObjectName on, String submoduleName, Boolean recursive);
/** Le cas échéant, renvoyez les noms de sous-module pour le MBean
REMARQUE : L'utilisation de cette méthode est déconseillée dans la version 6.0
*/
public String listStatMemberNames(ObjectName on);
/** Récupérer les données des statistiques de performances */
public void getConfig (ObjectName mbean);
/** Récupérer l'ensemble de statistiques en cours */
public void getStatisticSet ();
/ ** Activer les données PMI utilisant les jeux de statistiques prédéfinis.
Les valeurs valides de l'ensemble de statistiques sont "basic", "extended", "all" et "none" */
public void setStatisticSet (String statisticSet);
/ ** Retourne la spécification d'ensemble personnalisé en cours sous forme d'une chaîne */
public void getCustomSetString ();
/ ** Personnalisation des données PMI activées par un contrôle détaillé.
Cette méthode permet d'activer ou de désactiver des statistiques sélectivement.
Le format de la chaîne de spécification de l'ensemble personnalisé est STATS_NAME=ID1,ID2,ID3 séparé par ":", STATS_NAME et ID sont définis dans les interfaces WS*Stat du module com.ibm.websphere.pmi.stat.
Utilisez * pour activer toutes les statistiques du module PMI donné. Par exemple, pour activer toutes les statistiques
de la JVM ainsi que la taille du pool d'unités d'exécution, indiquez jvmRuntimeModule=*:threadPoolModule=3,4.
La chaîne jvmRuntimeModule est la valeur de la constante WSJVMStats.NAME, tandis que threadPoolModule est la valeur de WSThreadPoolStats.NAME.
*/
public void setCustomSetString (String customSpec, Boolean recursive);
/** Récupérer les données d'un MBean */
public void getStatsObject (ObjectName mbean, Boolean recursive);
/** Définissez le niveau d'instrumentation avec le format String
Pour faciliter le traitement de String, le scriptage doit être utilisé.
La chaîne de niveaux est une liste moduleName=Level connectée par ":".
REMARQUE : L'utilisation de cette méthode est dépréciée dans une version antérieure. */
public void setInstrumentationLevel(String levelStr, Boolean recursive);
/** Obtenez le niveau d'instrumentation dans String pour tous les modules de niveau supérieur
Pour faciliter le traitement de String, le scriptage doit être utilisé.
REMARQUE : L'utilisation de cette méthode est dépréciée dans une version antérieure. */
public String getInstrumentationLevelString();
/** Renvoyez les données PMI dans String
REMARQUE : L'utilisation de cette méthode est dépréciée dans une version antérieure.
*/
public String getStatsString(ObjectName on, Boolean recursive);
/** Renvoyez les données PMI dans String
Utilisé pour les modules/sous-modules PMI sans mappages de MBean directs.
REMARQUE : L'utilisation de cette méthode est dépréciée dans une version antérieure.
*/
public String getStatsString(ObjectName on, String submoduleName, Boolean recursive);
/** Le cas échéant, renvoyez les noms de sous-module pour le MBean
REMARQUE : L'utilisation de cette méthode est dépréciée dans une version antérieure.
*/
public String listStatMemberNames(ObjectName on);
- DynaCache
- EJBModule
- EntityBean
- JDBCProvider
- J2CResourceAdapter
- JVM
- MessageDrivenBean
- ORB
- Server
- SessionManager
- StatefulSessionBean
- StatelessSessionBean
- SystemMetrics
- ThreadPool
- TransactionService
- WebModule
- Servlet
- WLMAppServer
- WebServicesService
- WSGW
Exemple
Utilisez les exemples de commande Jacl suivants avec l'outil wsadmin pour obtenir les données PMI :
wsadmin>set perfName [$AdminControl completeObjectName type=Perf,*]
wsadmin>set perfOName [$AdminControl makeObjectName $perfName]
Appelez l'opération getStatisticSet
Cette méthode permet de rechercher l'ensemble de statistiques actuellement en vigueur :
wsadmin> $AdminControl invoke $perfName getStatisticSet
Cette méthode retourne l'une des valeurs suivantes : basic, extended, all, none.
Appelez l'opération setStatisticSet
Cette méthode permet d'activer la surveillance utilisant un ensemble de statistiques.
Les valeurs correctes de l'ensemble de statistiques sont basic, extended, all, none.
wsadmin>set params [java::new {java.lang.Object[]} 1]
wsadmin> $params set 0 [java::new java.lang.String extended]
wsadmin>set sigs [java::new {java.lang.String[]} 1]
wsadmin>$sigs set 0 java.lang.String
wsadmin> $AdminControl invoke_jmx $perfOName setStatisticSet $params $sigs
Appelez l'opération getConfig
Cette méthode permet de rechercher des informations sur les statistics d'un composant donné.
wsadmin> set jvmName [$AdminControl completeObjectName type=JVM,*]
wsadmin>set params [java::new {java.lang.Object[]} 1]
wsadmin> $params set 0 [java::new javax.management.ObjectName $jvmName]
wsadmin>set sigs [java::new {java.lang.String[]} 1]
wsadmin> $sigs set 0 javax.management.ObjectName
wsadmin> $AdminControl invoke_jmx $perfOName getConfig $params $sigs
Cette commande renvoie ce qui suit :
Stats type=jvmRuntimeModule, Description=Données de performances émanant du contexte d'exécution de la JVM. {name=UpTime, ID=4, type=CountStatistic, description=Durée d'exécution de la JVM (exprimée en secondes)., unit=SECOND, level=low, statisticSet=basic, resettable=false, aggregatable=true} {name=UsedMemory, ID=3, type=CountStatistic, description=Quantité de mémoire utilisée dans le contexte d'exécution de la JVM (exprimée en Ko), unit=KILOBYTE, level=low, statisticSet=basic, resettable=false, aggregatable=true} {name=FreeMemory, ID=2, type=CountStatistic, description=Mémoire libre dans le contexte d'exécution de la JVM (exprimée en Ko), unit=KILOBYTE, level=low, statisticSet=all, resettable=false, aggregatable=true} {name=HeapSize, ID=1, type=BoundedRangeStatistic, description=Mémoire totale dans le contexte d'exécution de la JVM (exprimée en Ko), unit=KILOBYTE, level=high, statisticSet=basic, resettable=false, aggregatable=true}
Appelez l'opération getCustomSetString
Cette opération fournit la spécification de surveillance actuelle dans un format chaîne :
wsadmin> $AdminControl invoke $perfName getCustomSetString
On obtient un résultat similaire :
jvmRuntimeModule=4,3,1:systemModule=2,1:threadPoolModule=4,3:thread PoolModule>HAManager.thread.pool=4,3:threadPoolModule>MessageListenerTh readPool=4,3:threadPoolModule>ORB.thread.pool=4,3:threadPoolModule>Serv let.Engine.Transports=4,3:threadPoolModule>TCS_DEFAULT=4,3:transactionM odule=4,19,16,18,3,7,6,1,14
La sortie indique que les valeurs 1, 3 et 4 de l'ID statistique sont activées dans le composant JVM. La description des ID statistiques s'obtient à l'aide de l'opération getConfig décrite précédemment ou dans la documentation de l'API. La sortie indique la spécification de surveillance actuelle du serveur. Les différents modules sont séparés les uns des autres par le signe deux-points (:), alors que le chevron simple (>) est employé comme séparateur dans le module.
Appelez l'opération setCustomSetString
Cette opération permet d'activer ou de désactiver des statistiques sélectivement. Dans la commande suivante, les ID statistiques 1, 2, 3 et 4 sont activées pour le module JVM. Pour activer tous les ID statistiques, utilisez l'astérisque (*).
wsadmin> set params [java::new {java.lang.Object[]} 2]
wsadmin> $params set 0 [java::new java.lang.String jvmRuntimeModule=1,2,3,4]
wsadmin> $params set 1 [java::new java.lang.Boolean false]
wsadmin>set sigs [java::new {java.lang.String[]} 2]
wsadmin>$sigs set 0 java.lang.String
wsadmin>$sigs set 1 java.lang.Boolean
wsadmin> $AdminControl invoke_jmx $perfOName setCustomSetString $params $sigs
Appelez l'opération getStatsObject
Cette opération permet d'extraire les statistiques d'un MBean donné. L'exemple suivant récupère les statistiques de la JVM :
wsadmin> set jvmName [$AdminControl completeObjectName type=JVM,*]
wsadmin> set params [java::new {java.lang.Object[]} 2]
wsadmin> $params set 0 [java::new javax.management.ObjectName $jvmName]
wsadmin> $params set 1 [java::new java.lang.Boolean false]
wsadmin>set sigs [java::new {java.lang.String[]} 2]
wsadmin> $sigs set 0 javax.management.ObjectName
wsadmin>$sigs set 1 java.lang.Boolean
wsadmin> $AdminControl invoke_jmx $perfOName getStatsObject $params
$sigs
Stats name=jvmRuntimeModule, type=jvmRuntimeModule#
{
name=HeapSize, ID=1, description=Mémoire totale (en Ko) dans
le contexte d'exécution de la machine virtuelle Java, unit=KILOBYTE, type=BoundedRangeStatistic, lowWaterMark=51200,
highWaterMark=263038, current=263038, integral=2.494158617766E12, lowerBound
=51200, upperBound=262144
name=FreeMemory, ID=2, description=Mémoire disponible (en Ko) dans
le contexte d'exécution de la machine virtuelle Java, unit=KILOBYTE, type=CountStatistic,
count=53509
name=UsedMemory, ID=3, description=Quantité de mémoire utilisée (en Ko) dans
le contexte d'exécution de la machine virtuelle Java, unit=KILOBYTE,
type=CountStatistic, count=209528
name=UpTime, ID=4, description=Exprimée en secondes, durée
d'exécution de la machine virtuelle Java, unit=SECOND,
type=CountStatistic, count=83050
}
Appelez l'opération getInstrumentationLevelString
Utilisez invoke car il n'a pas de paramètre.
wsadmin>$AdminControl invoke $perfName getInstrumentationLevelString
beanModule=H:cacheModule=H:connectionPoolModule=H:j2cModule=H:jvmRu ntimeModule=H:orbPerfModule=H:servletSessionsModule=H:systemModule= H:threadPoolModule=H:transactionModule=H:webAppModule=H
- Définissez des paramètres ("pmi=l" est le moyen le plus simple de définir tous les modules au niveau inférieur).
wsadmin>set params [java::new {java.lang.Object[]} 2]
wsadmin>$params set 0 [java::new java.lang.String pmi=l] wsadmin>$params set 1 [java::new java.lang.Boolean true]
- Définissez des signatures.
wsadmin>set sigs [java::new {java.lang.String[]} 2]
wsadmin>$sigs set 0 java.lang.String wsadmin>$sigs set 1 java.lang.Boolean
- Appelez la méthode. Utilisez invoke_jmx car il n'a pas de paramètre.
wsadmin>$AdminControl invoke_jmx $perfOName setInstrumentationLevel $params $sigs
Appelez getStatsString(ObjectName, Boolean)
If you know the MBean ObjectName, you can invoke the method by passing the correct parameters. JVM MBean est utilisé ici à titre d'exemple.
- Extrayez la chaîne de requête MBean. Par exemple, JVM MBean.
wsadmin> set jvmName [$AdminControl completeObjectName type=JVM,*]
- Définissez des paramètres.
wsadmin>set params [java::new {java.lang.Object[]} 2]
wsadmin>$params set 0 [$AdminControl makeObjectName $jvmName] wsadmin>$params set 1 [java::new java.lang.Boolean true]
- Définissez des signatures.
wsadmin>set sigs [java::new {java.lang.String[]} 2] wsadmin>$sigs set 0 javax.management.ObjectName wsadmin>$sigs set 1 java.lang.Boolean
- Appelez la méthode.
wsadmin>$AdminControl invoke_jmx $perfOName getStatsString $params $sigs
{Description jvmRuntimeModule.desc} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type MODULE}}} {Level 7} {Data {{{Id 4} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.upTime} {Id 4} {Description jvmRuntimeModule.upTime.desc} {Level 1} {Comment {The amount of time in seconds the JVM has been running}} {SubmoduleName null} {Type 2} {Unit unit.second} {Resettable false}}} {Time 1033670422282} {Value {Count 638} }} {{Id 3} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.usedMemory} {Id 3} {Description jvmRuntimeModule.usedMemory.desc} {Level 1} {Comment {Used memory in JVM runtime}} {SubmoduleName null} {Type 2} {Unit unit.kbyte} {Resettable false}}} {Time 1033670422282} {Value {Count 66239} }} {{Id2} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.freeMemory} {Id 2} {Description jvmRuntimeModule.freeMemory.desc} {Level 1} {Comment {Free memory in JVM runtime}} {SubmoduleName null} {Type 2} {Unit unit.kbyte} {Resettable false}}} {Time 1033670422282} {Value {Count 34356} }} {{Id 1} {Descriptor{{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.totalMemory} {Id 1} {Description jvmRuntimeModule.totalMemory.desc} {Level 7} {Comment {Total memory in JVM runtime}} {SubmoduleName null} {Type 5} {Unit unit.kbyte} {Resettable false}}} {Time 1033670422282} {Value {Current 100596} {LowWaterMark 38140} {HighWaterMark 100596} {MBean 38140.0} }}}}
Appelez getStatsString (ObjectName, String, Boolean)
Cette opération qui prend un paramètre String supplémentaire est employée pour les modules PMI qui n'ont pas de MBean correspondant. Dans ce cas, le MBean parent est employé avec un nom de type String représentant le module PMI. Les noms String disponibles dans un MBean peuvent être trouvés à l'aide de listStatMemberNames. Par exemple, beanModule est un module logique qui agrège des données PMI sur tous les Enterprise JavaBeans ; il n'existe aucun MBean pour beanModule. Par conséquent, pour obtenir des données PMI dans beanModule, vous pouvez transmettre un paramètre ObjectName de MBean et un paramètre String (beanModule).
- Extrayez la chaîne de requête MBean. Par exemple, MBean de serveur :
wsadmin>set mySrvName [$AdminControl completeObjectName type=Server,name=server1,node=wenjianpc,*]
- Définissez des paramètres.
wsadmin>set params [java::new {java.lang.Object[]} 3]
wsadmin>$params set 0 [$AdminControl makeObjectName $mySrvName]
wsadmin>$params set 1 [java::new java.lang.String beanModule] wsadmin>$params set 2 [java::new java.lang.Boolean true]
- Définissez des signatures.
wsadmin>set sigs [java::new {java.lang.String[]} 3]
wsadmin>$sigs set 0 javax.management.ObjectName
wsadmin>$sigs set 1 java.lang.String wsadmin>$sigs set 2 java.lang.Boolean
- Appelez la méthode.
wsadmin>$AdminControl invoke_jmx $perfOName getStatsString $params $sigs
Appelez l'opération listStatMemberNames
- Extrayez la chaîne de requête MBean. Par exemple, Serveur :
wsadmin>set mySrvName [$AdminControl completeObjectName type=Server,name=server1,node=wenjianpc,*]
- Définissez un paramètre.
wsadmin>set params [java::new {java.lang.Object[]} 1] wsadmin>$params set 0 [$AdminControl makeObjectName $mySrvName]
- Définissez des signatures.
wsadmin>set sigs [java::new {java.lang.String[]} 1] wsadmin>$sigs set 0 javax.management.ObjectName wsadmin>$AdminControlinvoke_jmx $perfOName listStatMemberNames $params $sigs
beanModule connectionPoolModule j2cModule servletSessionsModule
threadPoolModule
webAppModule
print "\n---------------------------------------------------------------------- "
print "Obtain the Perf MBean ObjectName"
print "------------------------------------------------------------------------ "
perfName = AdminControl.completeObjectName ('type=Perf,*')
perfOName = AdminControl.makeObjectName (perfName)
print perfOName
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getStatisticSet operation "
print "------------------------------------------------------------------------ "
print AdminControl.invoke (perfName, 'getStatisticSet')
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke setStatisticSet operation"
print "------------------------------------------------------------------------ "
params = ['extended']
sigs = ['java.lang.String']
print AdminControl.invoke_jmx (perfOName, 'setStatisticSet', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getConfig operation"
print "------------------------------------------------------------------------ "
jvmName = AdminControl.completeObjectName ('type=JVM,*')
params = [AdminControl.makeObjectName (jvmName)]
sigs = ['javax.management.ObjectName']
print AdminControl.invoke_jmx (perfOName, 'getConfig', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getCustomSetString operation"
print "------------------------------------------------------------------------ "
print AdminControl.invoke (perfName, 'getCustomSetString')
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke setCustomSetString operation"
print "------------------------------------------------------------------------ "
params = ['jvmRuntimeModule=1,2,3,4', java.lang.Boolean ('false')]
sigs = ['java.lang.String', 'java.lang.Boolean']
print AdminControl.invoke_jmx (perfOName, 'setCustomSetString', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getStatsObject operation"
print "------------------------------------------------------------------------ "
jvmName = AdminControl.completeObjectName ('type=JVM,*')
params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('false')]
sigs = ['javax.management.ObjectName', 'java.lang.Boolean']
print AdminControl.invoke_jmx (perfOName, 'getStatsObject', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getInstrumentationLevelString operation"
print "------------------------------------------------------------------------ "
print AdminControl.invoke (perfName, 'getInstrumentationLevelString')
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke setInstrumentationLevel operation - enable/disable PMI counters "
print "------------------------------------------------------------------------ "
params = ['pmi=l', java.lang.Boolean ('true')]
sigs = ['java.lang.String', 'java.lang.Boolean']
print AdminControl.invoke_jmx (perfOName, 'setInstrumentationLevel', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getStatsString(ObjectName, Boolean) operation"
print "------------------------------------------------------------------------ "
jvmName = AdminControl.completeObjectName ('type=JVM,*')
params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('true')]
sigs = ['javax.management.ObjectName', 'java.lang.Boolean']
print AdminControl.invoke_jmx (perfOName, 'getStatsString', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke getStatsString (ObjectName, String, Boolean) operation"
print "------------------------------------------------------------------------ "
mySrvName = AdminControl.completeObjectName ('type=Server,name=server1,node=wcsNode,*')
params = [AdminControl.makeObjectName (mySrvName),
'beanModule',
java.lang.Boolean ('true')]
sigs = ['javax.management.ObjectName',
'java.lang.String',
'java.lang.Boolean')
print AdminControl.invoke_jmx (perfOName, 'getStatsString', params, sigs)
print "------------------------------------------------------------------------ \n"
print "\n---------------------------------------------------------------------- "
print "Invoke listStatMemberNames operation"
print "------------------------------------------------------------------------ "
mySrvName = AdminControl.completeObjectName ('type=Server,name=server1,node=wcsNode,*')
params = [AdminControl.makeObjectName (mySrvName)]
sigs = ['javax.management.ObjectName']
print AdminControl.invoke_jmx (perfOName, 'listStatMemberNames', params, sigs)
print "------------------------------------------------------------------------ \n"