Как среда выполнения Flink получает метрики JVM диспетчера задач, такие как «Status.JVM.Memory.Heap.Used»? - PullRequest
0 голосов
/ 16 января 2020

Было несколько постов в блогах, в которых рассказывалось о высоком уровне системы отчетности по метрикам Flink. Однако мне все еще неясно, как собираются метрики, связанные с JVM, такие как Status.JVM.Memory.Heap.Used.

Я пытался найти это в исходном коде Flink. MemoryLogger. java, кажется, выполняет определенную работу по получению метрик, связанных с JVM. https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/MemoryLogger.java#L88. Однако до сих пор не ясно, как метрики возвращаются в MetricsRegistry. Любые указатели на это будут оценены.

1 Ответ

1 голос
/ 16 января 2020

Flink имеет выделенный поток для сбора системных метрик для каждого менеджера задач.

Системные метрики собираются SystemResourcesCounter

Метрики памяти JVM доступны через ManagementFactory.getMemoryMXBean().getHeapMemoryUsage()

Код для получения метрик, связанных с JVM, находится в MetricUtils. java в flink-runtime модуле.

...