Prometheus度量不会为Java类显示

Prometheus度量不会为Java类显示,prometheus,javaagents,Prometheus,Javaagents,好吧,这个问题把我逼上了绝路,我不明白为什么普罗米修斯不为我们服务。我得到了192.168.2.13:8534/metrics,但我得到的只是连接端口的微调器。我去“wget”http://localhost:8055“在容器内部局部,我得到 正在连接到本地主机(localhost)| 127.0.0.1 |:8055…已连接。已发送HTTP请求,正在等待响应 Docker指向8543->8055 我调用我的应用程序启动,它只不过是一个带有Main方法的类。通过下面的通话,我的班级应用程序启动并

好吧,这个问题把我逼上了绝路,我不明白为什么普罗米修斯不为我们服务。我得到了192.168.2.13:8534/metrics,但我得到的只是连接端口的微调器。我去“wget”http://localhost:8055“在容器内部局部,我得到

正在连接到本地主机(localhost)| 127.0.0.1 |:8055…已连接。已发送HTTP请求,正在等待响应

Docker指向8543->8055

我调用我的应用程序启动,它只不过是一个带有Main方法的类。通过下面的通话,我的班级应用程序启动并完美响应。我还打开了JVisualVM和JMX,它们完美地显示了所有JVM信息和度量。我可以附加一个调试器,没有问题

java -javaagent:"/pro/prometheus/jmx_prometheus_javaagent-0.13.0.jar=8055:/pro/prometheus/config_prometheus.yaml" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=31787 -Dcom.sun.management.jmxremote.rmi.port=31787 -Djava.rmi.server.hostname=192.168.2.13 -cp $LIBS service.core2.BootStrap
普罗米修斯怎么会不使用服务器度量,但JMX工作正常呢?我的配置文件非常简单

startDelaySeconds: 0
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
port: 8055
我已经尝试了我能想到的一切

  • 更改JVM 8/9
  • 改变了操作系统。diff docker images Ubuntu 16/18/20
  • 验证路径
  • 权限
  • 尝试了不同的端口并验证了它们是可访问的
  • 尝试了不同的“jmx_prometheus_javaagent”-jars

如果有任何帮助,我们将不胜感激。

在底层代码中,我们调用了一个嵌入式Jetty服务器,这就是我需要度量的实际速度。现在来了解如何从嵌入式jetty获取指标。

当您打开普罗米修斯仪表板上的目标时,它是否已关闭?同时,当您在浏览器上点击度量终点时,您可以看到度量?如果您使用的是prometheus+docker,而您的java应用程序不在同一个网络上(我的意思是,不在docker上运行),那么他们就无法看到对方。。。