JMeter PerfMon Metrics Collector插件,可与JMX配合使用

时间:2013-03-22 14:25:42

标签: jmeter jmx jmeter-plugins

我无法让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时才会收到此异常。有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

直到JDK 1.6才添加isEmpty()方法。我的猜测是你使用的是JDK 1.5或更早版本。

答案 1 :(得分:0)

现在jmeter插件中有一个独立的JMX指标收集器(从1.1.2版开始)

虽然它很新(并且可能充满了bug,因为我写了:),也许你可以试试那个?