private void processJVMGCMetrics(long processId, long startMillis, long stopMillis) { gcMetricsProcessor.beforeProcess(processId, startMillis, stopMillis); try { List<GarbageCollectorMXBean> garbageCollectorMxBeans = ManagementFactory.getGarbageCollectorMXBeans(); for (GarbageCollectorMXBean bean : garbageCollectorMxBeans) { JvmGCMetrics gcMetrics = new JvmGCMetrics(bean); gcMetricsProcessor.process(gcMetrics, processId, startMillis, stopMillis); } } finally { gcMetricsProcessor.afterProcess(processId, startMillis, stopMillis); } }