jmx_exporter 未发回 jvm_ 指标

问题描述 投票:0回答:2

所以我正在开发一个项目,我需要建立一个 Grafana 仪表板,我发现了一些,但我感兴趣的仪表板(JMX 概述 3457)调用了以下

jvm_memory_bytes_used{instance=~"$instance"}

问题是指标“jvm_memory_bytes_used”不存在,以“jvm_”开头的指标都没有返回。如果它们以“jmx_”或“java_lang”开头,则会返回它们。我在 Github 上找到了它,

https://github.com/prometheus/jmx_exporter

我意识到“jvm_”指标是计算出来的,但我不知道在哪里说“请提供‘jvm_’指标”。我无法使用 javaagent 启动。我只能使用“jmx_prometheus_httpserver”,因为它是一个我无法控制的嵌入式jetty服务器;除了将 JMX 参数添加到 shell 脚本启动选项的启动之外。这个 Github 项目允许我调用 jmxUrl 并获取指标,但由于某种原因指标达不到要求。

当然,在其他项目中我使用 javaagent 并且所有指标都会显示。仅当使用“jmx_prometheus_httpserver”时,它们才不会显示。

我在独立模式下这样称呼它:

java -Djava.util.logging.config.file=logging.properties -cp collector/target/collector*.jar io.prometheus.jmx.JmxScraper service:jmx:rmi:///jndi/rmi://192.168.150.13:5472/jmxrmi

我称之为用jmxUrl配置的:

http://192.168.150.13:54502/metrics

但相同的结果没有“jvm_”指标。带有基本配置文件:

startDelaySeconds: 0
ssl: false
lowercaseOutputName: true
lowercaseOutputLabelNames: true

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

prometheus grafana jmx jmx-exporter
2个回答
2
投票

嗯,坏消息是 jvm_ 指标似乎只有在使用 javaagent 时才可用。 GitHub 上的项目并没有告诉你这一点。我找到了这个问题的答案。我正在链接到它,以防万一有人先来这里。

https://stackoverflow.com/questions/51372578/no-kafka-metrics-in-grafana-prometheus

不好的部分是我不知道我要做什么,因为我有一个嵌入式 Jetty 服务器,我需要它的指标,但我无法控制构建调用以启动它。我到处都使用“Embedded Jetty add javaagent”进行查找,但什么也没有。如果有人遇到此问题的解决方案,请发布。


0
投票

根据他们的文档检查这一点,

“此导出器旨在作为 Java 代理运行,公开 HTTP 服务器并提供本地 JVM 的指标。它也可以作为独立的 HTTP 服务器运行并抓取远程 JMX 目标,但这有各种缺点,例如更难配置并且无法公开进程指标(例如内存和 CPU 使用情况)。”

所以,是的,像 jvm 指标这样的内存和 CPU 使用情况不适用于 HTTP 服务器

© www.soinside.com 2019 - 2024. All rights reserved.