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)....
Partager