package com.codahale.metrics.jvm;

import com.codahale.metrics.Gauge;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricSet;

import java.lang.management.ClassLoadingMXBean;
import java.lang.management.ManagementFactory;
import java.util.HashMap;
import java.util.Map;

A set of gauges for JVM classloader usage.
/** * A set of gauges for JVM classloader usage. */
public class ClassLoadingGaugeSet implements MetricSet { private final ClassLoadingMXBean mxBean; public ClassLoadingGaugeSet() { this(ManagementFactory.getClassLoadingMXBean()); } public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) { this.mxBean = mxBean; } @Override public Map<String, Metric> getMetrics() { final Map<String, Metric> gauges = new HashMap<>(); gauges.put("loaded", (Gauge<Long>) mxBean::getTotalLoadedClassCount); gauges.put("unloaded", (Gauge<Long>) mxBean::getUnloadedClassCount); return gauges; } }