mat*_*bob 2 spring-boot prometheus micrometer
Springboot 应用程序中的 Prometheus 插件正在发送大量数据,我没有发现从导出器获得的内容有任何突出的含义:
1) What does "jvm_gc_memory_allocated_bytes_total" mean?
2) What does "jvm_gc_memory_promoted_bytes_total" mean?
Run Code Online (Sandbox Code Playgroud)
我需要的是 Java 垃圾收集器的实际内存使用情况,因此我期望一个始终低于 2GB(最大内存大小)的值,但目前为 8GB 并且仍在增加。
"jvm_gc_memory_allocated_bytes_total"
Run Code Online (Sandbox Code Playgroud)
和
"jvm_gc_memory_promoted_bytes_total"
Run Code Online (Sandbox Code Playgroud)
是从导出器传递的唯一两个与垃圾收集器相关的变量。
为了回答您的问题,每个公开的指标都以 Prometheus 说明格式提供了帮助文本:
# HELP jvm_gc_memory_allocated_bytes_total Incremented for an increase in the size of the young generation memory pool after one GC to before the next
# HELP jvm_gc_memory_promoted_bytes_total Count of positive increases in the size of the old generation memory pool before GC to after GC
这些指标累积了年轻代中分配的字节以及在垃圾收集中幸存下来的提升字节,因此它们被提升到老年代。(非常简化)
从你的问题来看,我认为你实际上并不是在寻找“Java 垃圾收集器的内存使用情况”,而是实际上在寻找 JVM 的托管内存使用情况。这些托管片段在第一层被分为“堆”和“非堆”(标签area),并且可以通过标签进一步深入id。
以下是您可能正在寻找的指标:
jvm_memory_used_bytes{area="heap|nonheap" id="<depends-on-gc-and-jvm>"}
jvm_memory_committed_bytes{area="heap|nonheap" id="<depends-on-gc-and-jvm>"}
jvm_memory_max_bytes{area="heap|nonheap" id="<depends-on-gc-and-jvm>"}
Run Code Online (Sandbox Code Playgroud)
因此,如果您想获取当前使用的堆,则需要使用以下 PromQL 将堆区域指标相加:
sum(jvm_memory_used_bytes{job="myjob", instance="myhost", area="heap"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14747 次 |
| 最近记录: |