【发布时间】:2021-05-20 23:17:57
【问题描述】:
好的,这个问题把我逼疯了,我不明白为什么 Prometheus 不提供指标。我到了 192.168.2.13:8534/metrics 但我得到的只是与端口联系的微调器。我在容器内本地转到“wget http://localhost:8055”,我得到了
“正在连接到 localhost (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
Prometheus 不会提供度量标准但 JMX 工作正常,这怎么可能?我的配置文件很简单。
startDelaySeconds: 0
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
port: 8055
我已经尝试了所有我能想到的。
- 8/9 更改了 JVM
- 更改了操作系统。 diff docker images Ubuntu 16/18/20
- 经过验证的路径
- 权限
- 尝试了不同的端口并验证它们是可访问的。
- 试过不同的“jmx_prometheus_javaagent-”jars
任何帮助将不胜感激。
【问题讨论】:
-
当您在 prometheus 仪表板上打开目标时,它是否已关闭?同时,当您在浏览器上点击指标终点时,您可以看到指标吗?如果您使用的是 prometheus+docker 并且您的 java 应用程序不在同一个网络上(我的意思是,没有在 docker 上运行),他们就看不到对方...
标签: prometheus javaagents