简体   繁体   English

Flink 运行时如何获取任务管理器 JVM 指标,例如“Status.JVM.Memory.Heap.Used”?

[英]How does Flink runtime get task manager JVM metrics like 'Status.JVM.Memory.Heap.Used'?

There has been a few blog posts that give introduction on the high level design of Flink metrics reporting system.已经有一些博客文章介绍了 Flink 指标报告系统的高级设计。 However, it is still not clear to me how JVM related metrics like 'Status.JVM.Memory.Heap.Used' are collected.但是,我仍然不清楚“Status.JVM.Memory.Heap.Used”等与 JVM 相关的指标是如何收集的。

I have tried to find that in Flink source code.我试图在 Flink 源代码中找到它。 MemoryLogger.java seems do some work on getting JVM related metrics. MemoryLogger.java 似乎在获取 JVM 相关指标方面做了一些工作。 https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/MemoryLogger.java#L88 . https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/MemoryLogger.java#L88 However, it is still not clear how the metrics flows back to MetricsRegistry.但是,目前尚不清楚指标如何流回 MetricsRegistry。 Any pointers on that will be appreciated.对此的任何指示将不胜感激。

Flink has a dedicated thread to collect system related metrics for each task manager. Flink 有一个专门的线程来为每个任务管理器收集系统相关的指标。

System metrics are collected by SystemResourcesCounter系统指标由SystemResourcesCounter收集

JVM memory metrics can be accessed through ManagementFactory.getMemoryMXBean().getHeapMemoryUsage() JVM 内存指标可以通过ManagementFactory.getMemoryMXBean().getHeapMemoryUsage()

The code for getting JVM related metrics is in MetricUtils.java in flink-runtime module.获取 JVM 相关指标的代码在flink-runtime模块中的MetricUtils.java中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM