【问题标题】:Prometheus metrics wont show for Java classPrometheus 指标不会显示 Java 类
【发布时间】: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


【解决方案1】:

原来在底层代码中调用了一个嵌入式 Jetty 服务器,因此我需要这些指标的实际速度。现在来弄清楚如何从嵌入式码头获取指标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2017-09-14
    相关资源
    最近更新 更多