不是从$ JMETER_HOME / bin运行时,Jmeter无法从Prometheus JMX代理启动

问题描述

尝试为Jmeter配置Prometheus JMX代理,但遇到以下问题-当我在 $ JMETER_HOME / bin 文件夹之外启动Jmeter时-失败,并出现错误

java.lang.Throwable: Could not access null/lib
        at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:105)
java.lang.Throwable: Could not access null/lib/ext
        at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:105)
java.lang.Throwable: Could not access null/lib/junit
        at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:105)
java.lang.classNotFoundException: org.apache.jmeter.JMeter
        at java.net.urlclassloader.findClass(urlclassloader.java:382)
        at java.lang.classLoader.loadClass(ClassLoader.java:418)
        at java.lang.classLoader.loadClass(ClassLoader.java:351)
        at org.apache.jmeter.NewDriver.main(NewDriver.java:250)
JMeter home directory was detected as: null

启动命令:

java -Dcom.sun.management.jmxremote.port=12021 -Dcom.sun.management.jmxremote.rmi.port=12021 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dgroovy.use.classvalue=true -javaagent:/apps/injector/apache-jmeter/bin/jmx_prometheus_javaagent-0.13.0.jar=8778:/apps/injector/apache-jmeter/bin/prometheus_config.yaml -jar /apps/injector/apache-jmeter/bin/ApacheJMeter.jar -n -t /apps/injector/apache-jmeter/extras/Test.jmx

如果我从 $ JMETER_HOME / bin 文件夹运行该命令,该命令也可以正常工作。 看来这本身并不是Jmeter的问题,因为我可以在任何地方运行相同的命令,并且在删除 -javaagent 选项的情况下也不会导致错误

有人可以帮助我配置Prometheus JMX代理以使其与Jmeter一起正常工作。

解决方法

添加到JMeter的java选项:

-Djmeter.home = $ JMETER_HOME

按照您的bugzilla票证:

致谢JMeter团队的Felix S.成员