Bonjour à tous,

J'essaye de collecter les métriques jmx avec le jmeter plugin. J'ai installé l'agent (serverAgent) sur un centos qui contient mon serveur tomcat (Cf 192.168.104.70 dans les logs d'erreur). Quand je lance les tests, voilà l'erreur qui apparaît au moment de collecter les infos JMX (Le premier test qui collecte des métrique de CPU et de mémoire est OK , mais le suivant sur les mesures JMX plante):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
INFO    2012-08-27 10:45:34.022 [kg.apc.p] (): Binding UDP to 4444
INFO    2012-08-27 10:45:35.021 [kg.apc.p] (): Binding TCP to 4444
INFO    2012-08-27 10:45:35.022 [kg.apc.p] (): JP@GC Agent v2.1.1 started
INFO    2012-08-27 10:45:53.024 [kg.apc.p] (): Connecting new UDP client
INFO    2012-08-27 10:45:53.029 [kg.apc.p] (): Yep, we received the 'test' command
INFO    2012-08-27 10:45:53.030 [kg.apc.p] (): Starting measures: memory:unit=mb:used   memory:unit=mb:free
INFO    2012-08-27 10:46:06.653 [kg.apc.p] (): Client disconnected
INFO    2012-08-27 10:46:55.993 [kg.apc.p] (): Connecting new UDP client
INFO    2012-08-27 10:46:55.993 [kg.apc.p] (): Yep, we received the 'test' command
INFO    2012-08-27 10:46:55.994 [kg.apc.p] (): Starting measures: jmx:url=192.168.104.70\:8888:unit=mb:memory-usage
ERROR: java.lang.NoClassDefFoundError: javax.management.remote.JMXServiceURL
*** Problem's technical details go below ***
Home directory was detected as: /tmp/serverAgent
Exception in thread "main" java.lang.NoClassDefFoundError: javax.management.remote.JMXServiceURL
   at kg.apc.perfmon.metrics.jmx.JMXConnectorHelper.getJMXConnector(JMXConnectorHelper.java:37)
   at kg.apc.perfmon.metrics.jmx.JMXConnectorHelper.getServerConnection(JMXConnectorHelper.java:25)
   at kg.apc.perfmon.metrics.JMXMetric.<init>(JMXMetric.java:39)
   at kg.apc.perfmon.metrics.AbstractPerfMonMetric.createMetric(AbstractPerfMonMetric.java:65)
   at kg.apc.perfmon.PerfMonMetricGetter.setUpMetrics(PerfMonMetricGetter.java:138)
   at kg.apc.perfmon.PerfMonMetricGetter.processCommand(PerfMonMetricGetter.java:63)
   at kg.apc.perfmon.PerfMonMetricGetter.processNextCommand(PerfMonMetricGetter.java:101)
   at kg.apc.perfmon.PerfMonWorker.read(PerfMonWorker.java:210)
   at kg.apc.perfmon.PerfMonWorker.processCommands(PerfMonWorker.java:97)
   at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72)
   at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63)
   at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23)
   at java.lang.reflect.Method.invoke(libgcj.so.10)
   at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:150)

J'ai vu que le problème pouvait provenir de la version de java utilisée, notamment si elle est antérieure à 1.5. Hors ma version est 1.6u30. Pour info, voilà les les variables d'environnement dans TOMCAT_DIR/bin/setenv.sh :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
# JVM Tuning
APP_JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m -Xss1024k"
APP_JAVA_OPTS="$APP_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/share/apache-tomcat-7.0.23/logs"
APP_JAVA_OPTS="$APP_JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888"
APP_JAVA_OPTS="$APP_JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
 
#Recuperer l'adresse ip de l'interface en cours d'utilisation
APP_JAVA_OPTS="$APP_JAVA_OPTS "-Djava.rmi.server.hostname=$(ifconfig | grep "Bcast" | grep -v 127 | cut -d:  -f 2 | cut -d\  -f 1) ---->192.168.104.70
 
CATALINA_OPTS=$APP_JAVA_OPTS


Avez vous une idée pour résoudre ce problème? Ca fait de longues heures que je cherche, une aide serait pas de refus


Merci d'avance ,

Timo.


PS: Quelque chose est très bizarre: j'arrive à collecter les données JMX à partir de ma machine avec l'outil jvisualVM.exe (dispo dans les bin par défaut de java 1.6u30)....