我无法让JMeter PerfMon Metrics Collector侦听器收集JMX数据。我已经启动了“serverAgent”。我已经使用以下参数启动了远程JBoss服务器,如插件主页https://code.google.com/p/jmeter-plugins/wiki/PerfMon中所述:
java -Dcom.sun.management.jmxremote.port=4711 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.ssl=false
然后我配置JMeter Perf Mon侦听器以从端口“5444”收集数据,Metric收集“JMX”和度量参数“gc-time”。在配置中,我已将JMX连接参数定义为“localhost”和端口“4711”。
当我启动JMeter测试时,“serverAgent”会丢失,并显示以下错误:
INFO 2013-03-22 16:16:06.682 [kg.apc.p] (): Starting measures: jmx:gc-time cpu:
ERROR: java.lang.NoSuchMethodError: method java.lang.String.isEmpty with signature ()Z was not found.
*** Problem's technical details go below ***
Exception in thread "main" java.lang.NoSuchMethodError: method java.lang.String.isEmpty with signature ()Z was not found.
at kg.apc.perfmon.metrics.JMXMetric.<init>(JMXMetric.java:35)
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.7rh)
at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:150)
如果我只收集CPU和内存,那么JMeter可以解决所有问题。只有在收集JMX时才会收到此异常。有任何想法吗?谢谢!
答案 0 :(得分:0)
直到JDK 1.6才添加isEmpty()方法。我的猜测是你使用的是JDK 1.5或更早版本。
答案 1 :(得分:0)
现在jmeter插件中有一个独立的JMX指标收集器(从1.1.2版开始)
虽然它很新(并且可能充满了bug,因为我写了:),也许你可以试试那个?