protected void pushVmMetrics(long epoch) { sendGauge("jvm.memory.heap_usage", vm.heapUsage(), epoch); sendGauge("jvm.memory.non_heap_usage", vm.nonHeapUsage(), epoch); for (Entry<String, Double> pool : vm.memoryPoolUsage().entrySet()) { String gaugeName = String.format("jvm.memory.memory_pool_usage[pool:%s]", pool.getKey()); sendGauge(gaugeName, pool.getValue(), epoch); } pushGauge("jvm.daemon_thread_count", vm.daemonThreadCount(), epoch); pushGauge("jvm.thread_count", vm.threadCount(), epoch); pushCounter("jvm.uptime", vm.uptime(), epoch); sendGauge("jvm.fd_usage", vm.fileDescriptorUsage(), epoch); for (Entry<Thread.State, Double> entry : vm.threadStatePercentages() .entrySet()) { String gaugeName = String.format("jvm.thread-states[state:%s]", entry.getKey()); sendGauge(gaugeName, entry.getValue(), epoch); } for (Entry<String, VirtualMachineMetrics.GarbageCollectorStats> entry : vm .garbageCollectors().entrySet()) { pushGauge("jvm.gc.time", entry.getValue().getTime(TimeUnit.MILLISECONDS), epoch); pushCounter("jvm.gc.runs", entry.getValue().getRuns(), epoch); } }
private void printVmMetrics() { printDoubleField("jvm.memory.heap_usage", vm.heapUsage(), "jvm"); printDoubleField("jvm.memory.non_heap_usage", vm.nonHeapUsage(), "jvm"); for (Map.Entry<String, Double> pool : vm.memoryPoolUsage().entrySet()) { printDoubleField("jvm.memory.memory_pool_usages." + pool.getKey(), pool.getValue(), "jvm"); } printDoubleField("jvm.daemon_thread_count", vm.daemonThreadCount(), "jvm"); printDoubleField("jvm.thread_count", vm.threadCount(), "jvm"); printDoubleField("jvm.uptime", vm.uptime(), "jvm"); printDoubleField("jvm.fd_usage", vm.fileDescriptorUsage(), "jvm"); for (Map.Entry<Thread.State, Double> entry : vm.threadStatePercentages().entrySet()) { printDoubleField("jvm.thread-states." + entry.getKey().toString().toLowerCase(), entry.getValue(), "jvm"); } for (Map.Entry<String, VirtualMachineMetrics.GarbageCollectorStats> entry : vm.garbageCollectors().entrySet()) { printLongField("jvm.gc." + entry.getKey() + ".time", entry.getValue().getTime(TimeUnit.MILLISECONDS), "jvm"); printLongField("jvm.gc." + entry.getKey() + ".runs", entry.getValue().getRuns(), "jvm"); } }
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()); } }
/** * Returns a map of garbage collector names to garbage collector information. * * @return a map of garbage collector names to garbage collector information */ public Map<String, GarbageCollectorStats> garbageCollectors() { final Map<String, GarbageCollectorStats> stats = new HashMap<String, GarbageCollectorStats>(); for (GarbageCollectorMXBean gc : garbageCollectors) { stats.put(gc.getName(), new GarbageCollectorStats(gc.getCollectionCount(), gc.getCollectionTime())); } return Collections.unmodifiableMap(stats); }
private Map<String,Long> getLongMetrics(VirtualMachineMetrics virtualMachineMetrics) { final Map<String,Long> metrics = new HashMap<>(); metrics.put(MetricNames.JVM_UPTIME, virtualMachineMetrics.uptime()); for (Map.Entry<String,VirtualMachineMetrics.GarbageCollectorStats> entry : virtualMachineMetrics.garbageCollectors().entrySet()) { final String gcName = entry.getKey().replace(" ", ""); final long runs = entry.getValue().getRuns(); final long timeMS = entry.getValue().getTime(TimeUnit.MILLISECONDS); metrics.put(MetricNames.JVM_GC_RUNS + "." + gcName, runs); metrics.put(MetricNames.JVM_GC_TIME + "." + gcName, timeMS); } return metrics; }