我正试图通过使用JMX导出器作为代理来获取现有java应用程序的JVM度量。在尝试启动应用程序时,我收到了以下错误。任何帮助都将不胜感激。
config.yaml
startDelaySeconds: 0
ssl: false
lowercaseOutputName: true
lowercaseOutputLabelNames: true
rules:
-pattern: ".*"
java -javaagent:./jmx_prometheus_javaagent-0.17.0.jar=13579:./config.yaml -jar sample-app.jar
错误:
线程中的异常";主";java.lang.reflect.InvocationTargetException位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native方法(位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62(位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43(位于java.base/java.lang.reflect.Method.ioke(Method.java:566(位于java.instrument/sun.instrument.InstrumentImpl.loadClassAndStartAgent(InstrumentationImpl.java:513(位于java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525(引起原因:java.lang.ClassCastException:类java.util.LinkedHashMap不能强制转换为类java.util.List(java.util.LinkedHashMap和java.util.List位于加载程序"bootstrap"的模块java.base中(位于io.protheus.jmx.JmxCollector.loadConfig(JmxCollector.java:211(位于io.prometheus.jmx.JmxCollector。(JmxCollector.java:91(位于io.prometheus.jmxJavaAgent.premain(JavaAgent.java:29(…还有6个***java.lang.instrument-ASSERTION失败***:";结果";消息代理加载/预调用在失败./src/java.instrument/share/native/liinstrument/JPLISAgent.c行:422本机方法中的致命错误:处理-javaagent失败,processJavaStart失败
您的配置中-
后面缺少一个空格。它应该是- pattern: ".*"
,而不是-pattern: ".*"
。