使用 prometheus jmx 导出器缺少 JVM 指标

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

我正在尝试将 jvm 指标集成到我的 akka 应用程序中。我使用了prometheus jmx导出器。我没有使用整个应用程序并将其作为 java 代理运行,而是仅使用导出器并集成到我现有的 prometheus 注册表中

import io.prometheus.jmx.JmxCollector

val jmxCollector: JmxCollector = new JmxCollector(getClass.getResourceAsStream("jmx-config.yaml"))
jmxCollector.register(prometheusRegistry)

我能够看到指标,但与将导出器作为 java 代理运行的其他应用程序相比,以前缀 jvm 开头的指标很少丢失。就像缺少的线程指标

# HELP jvm_threads_state Current count of threads by state
# TYPE jvm_threads_state gauge
jvm_threads_state{state="TERMINATED",} 0.0
jvm_threads_state{state="RUNNABLE",} 10.0
jvm_threads_state{state="TIMED_WAITING",} 11.0
jvm_threads_state{state="WAITING",} 37.0
jvm_threads_state{state="NEW",} 0.0
jvm_threads_state{state="BLOCKED",} 0.0

我的指标配置是最低限度的,在两个应用程序中看起来都是这样的

---
startDelaySeconds: 10
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

您能否帮助我了解导致此问题的差异可能是什么。

java scala jvm prometheus jmx-exporter
1个回答
0
投票

这是预期的行为

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

“无法公开流程指标”是对

jvm_*
指标的微妙引用,例如

  • jvm_classes_loaded
    /
    jvm_classes_loaded_total
  • jvm_threads_current
  • jvm_threads_daemon
  • jvm_memory_bytes_used
  • jvm_memory_pool_bytes_used
  • jvm_memory_pool_allocated_bytes_total
  • jvm_memory_pool_bytes_committed
  • jvm_memory_pool_bytes_init
  • jvm_memory_pool_bytes_max
  • jvm_memory_pool_bytes_used
  • jvm_memory_pool_collection_committed_bytes
  • jvm_memory_pool_collection_init_bytes
  • jvm_memory_pool_collection_max_bytes
  • jvm_memory_pool_collection_used_bytes
  • jvm_threads_deadlocked
  • jvm_threads_deadlocked_monitor
  • jvm_threads_peak
  • jvm_threads_started_total
  • jvm_threads_state
  • jvm_memory_pool_allocated_bytes_created

使用 httpserver 时,所有这些指标仍然可用,但名称不同,与实际值所在的 JMX MBean 匹配。

例如,javagent 中相当于

jvm_classes_loaded
/
jvm_classes_loaded_total
的是
java_lang_ClassLoading_LoadedClassCount

而在httpserver中相当于

jvm_threads_current
的是
java_lang_Threading_ThreadCount
。等等...

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