protected void printVmMetrics(long epoch) {
sendFloat(epoch, "jvm.memory", "heap_usage", vm.heapUsage());
sendFloat(epoch, "jvm.memory", "non_heap_usage", vm.nonHeapUsage());
for (Entry<String, Double> pool : vm.memoryPoolUsage().entrySet()) {
sendFloat(epoch, "jvm.memory.memory_pool_usages", sanitizeString(pool.getKey()), pool.getValue());
}
sendInt(epoch, "jvm", "daemon_thread_count", vm.daemonThreadCount());
sendInt(epoch, "jvm", "thread_count", vm.threadCount());
sendInt(epoch, "jvm", "uptime", vm.uptime());
sendFloat(epoch, "jvm", "fd_usage", vm.fileDescriptorUsage());
for (Entry<State, Double> entry : vm.threadStatePercentages().entrySet()) {
sendFloat(epoch, "jvm.thread-states", entry.getKey().toString().toLowerCase(), entry.getValue());
}
for (Entry<String, VirtualMachineMetrics.GarbageCollectorStats> entry : vm.garbageCollectors().entrySet()) {
final String name = "jvm.gc." + sanitizeString(entry.getKey());
sendInt(epoch, name, "time", entry.getValue().getTime(TimeUnit.MILLISECONDS));
sendInt(epoch, name, "runs", entry.getValue().getRuns());
}
}