提问人:Ashwin 提问时间:11/14/2023 更新时间:11/14/2023 访问量:47
了解 Prometheus JVM 指标
Understanding Prometheus JVM metrics
问:
我有兴趣跟踪 JVM 中的两个指标 - 每分钟的 GC 数量和每分钟的 GC 花费的时间。我有指标,并且可以在仪表板上使用,但我对它们的含义有点困惑。
第一个指标似乎与测量时间有关,但仔细阅读它,我相信它是从时间开始(应用程序启动时)调用 GC 的次数。jvm_gc_collection_seconds.count
jvm_gc_collection_seconds.sum
jvm_gc_collection_seconds.count
- 这是对的吗?
- 如果是这样,为什么指标名称中有“秒”一词?
- 会给我每分钟的 GC 调用次数吗?
jvm_gc_collection_seconds.count/1 minute
我认为的第二个指标是从时间开始执行 GC 活动所花费的总时间(以秒为单位)。jvm_gc_collection_seconds.sum
- 是吗?
- 会给我在 1 分钟的时间窗口内进行 GC 活动所花费的时间(以秒为单位)吗?
jvm_gc_collection_seconds.sum/1 minute
答:
1赞
markalex
11/14/2023
#1
jvm_gc_collection_seconds
是一个汇总指标。
基本指标名称为 的摘要在抓取期间公开多个时间序列:
<basename>
- 观察事件的流式φ分位数 (0 ≤ φ ≤ 1),公开为
<basename>{quantile="<φ>"}
- 所有观测值的总和,显示为
<basename>_sum
- 已观察到的事件计数,公开为
<basename>_count
因此,自应用程序启动以来发生的 GC 事件的总值数。以及 - 所有这些事件所花费的总秒数。jvm_gc_collection_seconds_count
jvm_gc_collection_seconds_sum
要获取每分钟的 GC 调用次数,可以使用 .同样,对于花费的时间: .increase(jvm_gc_collection_seconds_count [1m])
increase(jvm_gc_collection_seconds_sum [1m])
此外,您可能会在 Brian Brazil 的这篇文章中找到一些关于垃圾回收的 JVM 指标的有用提示。
评论
0赞
Ashwin
11/14/2023
“因此jvm_gc_collection_seconds_count自应用程序启动以来发生的 GC 事件的总值数。jvm_gc_collection_seconds_count - 所有这些事件所花费的总秒数。 - 你是说其他指标吗?您用“jvm_gc_collection_seconds_count”来描述这两种情况。
0赞
markalex
11/14/2023
@Ashwin,哎呀,对不起,复制粘贴错误。
0赞
Ashwin
11/15/2023
明白了。“increase(jvm_gc_collection_seconds_count [1m])” 这是否意味着相隔 1 分钟的指标的两个值之间的差值?
0赞
markalex
11/15/2023
@Ashwin,是的(自动处理 conter 复位)。但这是一个 promql 查询,我现在才注意到您正在使用 datadog。我不熟悉它,所以不知道如何用它的语言写它。
评论
/metrics
jvm_gc_collection_seconds
_sum
_count
quantile