Collecter les métriques JMX avec JMeter plugin
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:
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:
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 ,:ccool:
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)....