private void processJVMMemoryMetrics(long processId, long startMillis, long stopMillis) { MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage nonHeapMem = memoryMXBean.getNonHeapMemoryUsage(); MemoryUsage heapMem = memoryMXBean.getHeapMemoryUsage(); memoryMetricsProcessor.beforeProcess(processId, startMillis, stopMillis); try { memoryMetricsProcessor.process(new JvmMemoryMetrics(nonHeapMem, heapMem), processId, startMillis, stopMillis); } finally { memoryMetricsProcessor.afterProcess(processId, startMillis, stopMillis); } }